CSS :read-only伪类选择器用于匹配任何不可以被用户编辑的元素。
可以被用户编辑的元素包括:
- 任何不带read-only属性,并且不是disabled类型的<input>元素。
- 任何不带read-only属性,并且不是disabled类型的<textarea>元素。
- 除了<input>元素和<textarea>元素之外,带contenteditable属性的任何其它元素。
:read-only伪类选择器可以匹配除上面列出的任何其它元素。
例如,下面的元素可以被:read-only伪类选择器选择:
<input type="text" disabled> <input type="number" disabled> <input type="number" readonly> <textarea name="nm" id="id" cols="30" rows="10" readonly> </textarea> <!-- 不带 contenteditable 属性的普通元素 --> <div class="random"> </div>
下面的元素不能被:read-only伪类选择器选择,它们可以被:read-write伪类选择器匹配。
<input type="text"> <input type="number"> <textarea name="nm" id="id" cols="30" rows="10"> </textarea> <div class="random" contenteditable> </div>
示例代码
下面都是有效的:read-only规则。
.element:read-only:after {
    content: "Subscribe!";
    /* ... */
}
input:read-only {
    background-color: #aaa;
    border: 1px solid #888;
}
textarea:read-only:hover {
    cursor: not-allowed;
}
在线演示
在下面的例子中,如果你的浏览器支持:read-write伪类选择器,那么可编辑的元素的边框会显示为绿色。如果你的浏览器支持:read-only伪类选择器,那么可编辑的元素的边框会显示为橙色。
下面的input都是可编辑的,它们会被:read-write选择器匹配,边框变为绿色。
下面的input元素是disabled状态,不会被:read-write选择器匹配。
下面的input元素设置了read-only属性,是只读状态,它们会被:read-only选择器匹配。
下面的div元素带有contenteditable属性,它们会被:read-write选择器匹配。
    Content Editable div
  
  下面的div元素不带有contenteditable属性,它们会被:read-only选择器匹配。
    Regular div
  
  浏览器支持
目前只有Chrome, Safari 和 Opera 14+ 以及 iOS支持:read-only伪类选择器。
Firefox浏览器需要添加-moz-前缀。
IE和Android不支持:read-only伪类选择器。
 
                                    
                                     
                                    
                                     
                                    
                                    