我正在尝试根据其type属性设置OL样式.所有UL和OL的列表样式属性之前已经被另一个我无法修改的CSS样式表消灭了,我需要重新设置列表样式,将类型考虑在内,即如果OL应该使用Roman人物或字母数字等
我想,这很容易;我将使用属性选择器根据type属性的值来定位OL.属性选择器区分大小写,所以这应该很简单,对吧?
错 – 至少在您尝试使用标准“类型”属性时.
这是一个例子(有效):
/* Remove default list style */
ul, ol { list-style:none; }
/* This works, using a non-standard foo attribute. The selector is case sensitive, so I can target 'i' and 'I' separately */
ol[foo='i'] {
list-style-type:lower-roman;
}
ol[foo='I'] {
list-style-type:upper-roman;
}
- Styled with lower case roman
- Styled with lower case roman
- Styled with uppercase roman
- Styled with uppercase roman
现在,用类型替换foo并再试一次:
/* Remove default list style */
ul, ol { list-style:none; }
/* Trying to use the standard type attribute, the selector is no longer case sensitive, so I cannot style 'i' and 'I' individually .... */
ol[type='i'] {
list-style-type:lower-roman;
}
ol[type='I'] {
list-style-type:upper-roman;
}
- Should be lower-case roman
- Should be lower-case roman
- Should be upper-case roman
- Should be upper-case roman
现在它就像选择器不再区分大小写,并且两个列表都受到影响,并且都使用大写罗马.
我无法找到任何关于这是否是正确行为的信息,也就是说,使用非标准属性(如’foo’)使用已知属性(如’type’v.s)时.在Chrome和Firefox中都会发生这种情况的事实让人相信它不是一个错误.
有任何想法吗?