当前位置: 首页 > 面试题库 >

是否可以通过CSS将输入字段设置为只读?

章丰茂
2023-03-14
问题内容

我知道通过应用readonlyboolean属性将输入元素设为只读,并且该属性不受CSS的影响。

另一方面,我的情况似乎非常适合CSS,因此我希望可以使用某种CSS技巧来实现。我的表格上有 可打印的版本
超链接。单击它会显示文档的可打印版本。它主要是CSS东西,我的print.css看起来像这样:

html.print {
    width: 8.57in;
}

.print body {
    font: 9pt/1.5 Arial, sans-serif;
    margin: 0 1in;
    overflow: auto;
}

.print #header, .print #footer {
    display: none;
}

.print .content {
    background-color: white;
    overflow: auto;
}

.print .fieldset > div.legend:first-child {
    background: white;
}

.print ::-webkit-input-placeholder {
    /* WebKit browsers */
    color: transparent;
}

.print :-moz-placeholder {
    /* Mozilla Firefox 4 to 18 */
    color: transparent;
}

.print ::-moz-placeholder {
    /* Mozilla Firefox 19+ */
    color: transparent;
}

.print :-ms-input-placeholder {
    /* Internet Explorer 10+ */
    color: transparent;
}

.print .check-mark {
    display: inline;
}

.print input[type=checkbox] {
    display: none;
}

.print .boolean-false {
    display: none;
}

还有一些javascript片段,例如:

  • print类添加到html元素
  • 显示没有滚动条的表
  • 其他一些小事情,例如隐藏任何弹出窗口叠加层。

我当前的问题是输入字段。它们应该是只读的,但是,我不知道如何以最少的代码更改来做到这一点。CSS可能是一个完美的解决方案。

有任何想法吗?


问题答案:

仅使用CSS?使用user-select:none以下命令可以在文本输入上实现:

.print {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;          
}

值得注意的是,这在不支持CSS3或不支持user-selectproperty的浏览器中将不起作用。readonly理想情况下,应将该属性提供给希望将其设置为只读的输入标记,但这确实可以作为CSS的替代方法。

使用JavaScript:

document.getElementById("myReadonlyInput").setAttribute("readonly", "true");

编辑: CSS方法在Chrome(29)中不再起作用。-webkit-user-select现在,该属性似乎在输入元素上被忽略。



 类似资料:
  • 我有以下代码: 可以用代码设置吗?如果是,怎么做? 我想按代码设置,因为我想解决另一个问题,请单击此处 一个人告诉我使用lookup get selector,但它返回null。 下面的代码就是我所做的?你能告诉我怎么了吗? 任何帮助都将不胜感激。

  • 问题内容: 如果将对象引用传递给方法,是否可以将对象“只读”到该方法? 问题答案: 不严格地说。即,不能将对象突变的引用不能转换为不能对象的引用。另外,除了使用约定外,没有其他方法可以表示类型是不可变的或可变的。 确保某种形式的不变性的唯一功能就是字段-一旦写入,就不能修改。 也就是说,有一些方法可以设计类,从而 防止不必要的变异 。这里有一些技巧: 防御复制 。传递对象的副本,这样,如果该对象被

  • 问题内容: 我知道可以偏斜,但我看不到以特定角度偏斜每个角的方法。 这是我正在从事的项目: 专门查看菜单中的标签。现在,我正在使用图像,我想针对功能强大的浏览器进行更改。 我知道可以创建CSS trapazoid,但是使用没有内容的边框。最终结果还需要一些圆角。 问题答案: 这可能是一个大概的想法:

  • 问题内容: 是否可以使用CSS选择器来定位具有特定值的输入? 示例:如何根据 问题答案: 动态值(哦,不!D;) 正如npup在他的回答中解释的那样,一个简单的css规则将仅针对该属性,这意味着它不覆盖html节点的实际值。 原始答案 是的,很有可能,使用css属性选择器,您可以按以下方式通过输入的值来引用输入: 从参考 [att]当元素设置“ att”属性时匹配,无论该属性的值如何。 [att

  • 如何在JavaScript中设置form文本字段的默认值?

  • 问题内容: Java中是否可以通过反射访问私有字段str?例如获取该字段的值。 问题答案: 是。 然后,使用字段对象获取类实例上的值。 请注意,方法通常会使人们感到困惑。你有该字段,但没有该对象的实例。你必须将其传递给方法