我目前正在使用readonly =“readonly”来禁用字段。我现在正在尝试使用CSS设置属性的样式。我尝试过使用
input[readonly] {
/*styling info here*/
}
但由于某种原因它不起作用。我也试过了
input[readonly='readonly'] {
/*styling info here*/
}
也不起作用。
如何使用CSS设置readonly属性的样式?
答案 0 :(得分:195)
input[readonly]
{
background-color:blue;
}
https://curtistimson.co.uk/post/css/style-readonly-attribute-css/
答案 1 :(得分:69)
请注意textarea[readonly="readonly"]
如果您在HTML中设置readonly="readonly"
,但如果您将readOnly
- 属性设置为true
或"readonly"
,则readOnly
无效的JavaScript。
要使CSS选择器工作,如果您使用JavaScript设置textarea[readonly]
,则必须使用选择器textarea[readonly="readonly"], textarea[readonly] {
...
}
。
Firefox 14和Chrome 20中的行为相同。
为了安全起见,我使用两个选择器。
{{1}}
答案 2 :(得分:22)
为了安全起见,您可能想要同时使用...
input[readonly], input[readonly="readonly"] {
/*styling info here*/
}
readonly属性是一个“布尔属性”,可以是空白或“只读”(唯一有效的值)。 http://www.whatwg.org/specs/web-apps/current-work/#boolean-attribute
如果您使用的是jQuery的.prop('readonly', true)
函数,则最终需要[readonly]
,而如果您使用的是.attr("readonly", "readonly")
,那么您需要[readonly="readonly"]
。
<强>校正:强>
您只需要使用input[readonly]
。包括input[readonly="readonly"]
是多余的。见https://stackoverflow.com/a/19645203/1766230
答案 3 :(得分:18)
这里有很多答案,但我看不到我使用过的答案:
input[type="text"]:read-only { color: blue; }
请注意伪选择器中的破折号。如果输入为readonly="false"
,它也会捕获它,因为无论该值如何,此选择器都会捕获readonly的存在。技术上false
根据规格无效,但互联网不是一个完美的世界。如果你需要覆盖这种情况,你可以这样做:
input[type="text"]:read-only:not([read-only="false"]) { color: blue; }
textarea
的工作方式相同:
textarea:read-only:not([read-only="false"]) { color: blue; }
请注意,html现在不仅支持type="text"
,还支持一系列其他文字类型,例如number
,tel
,email
,date
,time
,url
等。每个都需要添加到选择器。
答案 4 :(得分:5)
有几种方法可以做到这一点。
第一种是使用最广泛的。它适用于所有主流浏览器。
input[readonly] {
background-color: #dddddd;
}
虽然上面的选项会选择附加readonly
的所有输入,但下面的选项将仅选择您想要的内容。确保将demo
替换为您想要的任何输入类型。
input[type="demo"]:read-only {
background-color: #dddddd;
}
这是第一个的替代品,但它并没有被大量使用:
input:read-only {
background-color: #dddddd;
}
Chrome,Opera和Safari支持:read-only
选择器。 Firefox使用:-moz-read-only
。 IE不支持:read-only
选择器。
您也可以使用input[readonly="readonly"]
,但根据我的经验,这与input[readonly]
几乎相同。
答案 5 :(得分:3)
input[readonly], input:read-only {
/* styling info here */
}
为只读输入字段覆盖所有案例 ......
答案 6 :(得分:2)
如果您按ID选择输入,然后在css中添加input[readonly="readonly"]
标记,例如:
#inputID input[readonly="readonly"] {
background-color: #000000;
}
那不行。您必须选择父类或id然后输入。类似的东西:
.parentClass, #parentID input[readonly="readonly"] {
background-color: #000000;
}
在等待工作新票时我的2美分:D
答案 7 :(得分:1)
使用以下方法在所有浏览器中使用:
var readOnlyAttr = $('.textBoxClass').attr('readonly');
if (typeof readOnlyAttr !== 'undefined' && readOnlyAttr !== false) {
$('.textBoxClass').addClass('locked');
}
答案 8 :(得分:1)
将Only的首字母大写
input[readOnly] {
background: red !important;
}
<input type="text" name="country" value="China" readonly="readonly" />