基本选择器
*
p
<p>
.nav
class="nav"
的元素#wrapper
id="wrapper"
的元素a[data-url]
data-url
属性的 <a>
的元素a[data-url='http']
data-url="http"
属性的 <a>
的元素a[data-url~='http']
data-url
属性包含 http
的 <a>
元素a[data-url^='http']
data-url
属性以 http
开头的 <a>
元素a[data-url$='http']
data-url
属性以 http
结尾的 <a>
元素a[data-url*='http']
data-url
属性包含 http
的 <a>
元素p p
<p>
元素下所有 <p>
元素p p
<p>
元素下所有子 <p>
元素label + input
<label>
元素同级的第一个 <input>
元素label ~ input
<label>
元素同级的所有 <input>
元素label,input
<label>,<input>
元素伪类和伪元素
??伪类(Pseudo-classes)用于指定选择器的某种特定状态或条件,伪类在 DOM 中并不存在,但对用户却是可见的。
动态伪类(Dynamic pseudo-classes)
??动态伪类对除了其名称、属性或内容之外的特性的元素进行分类,不会显示在文档源或文树中。
a:link
a:visited
a:hover
a:active
input:focus
目标伪类(The target pseudo-classes)
??目标伪类指定当前活动的锚,使用目标伪类可以为活动的锚设置样式。
#tab1:target
语言伪类(The language pseudo-classes)
??语言伪类向带有指定 lang
属性元素添加样式。
#p:lang(en)
lange="en"
的 <p>
元素UI元素状态伪类(The UI element states pseudo-classes)
??UI元素状态伪类主要用于指定表单中的元素状态。
input:enabled
input:disabled
input:checked
display
和visibility
属性对于UI元素状态伪类匹配enabled/disabled
状态没有影响。
结构性伪类(Structural pseudo-classes)
??结构性伪类用于指定文档的特定结构。
:root
:nth-child(n)
:nth-last-child(n)
:nth-of-type(n)
:nth-last-of-type(n)
:first-child
:last-child
:last-child
:first-of-type
:first-of-type
:only-child
:only-child
:empty
:nth-child(n)
、:nth-last-child(n)
、:nth-of-type(n)
、:nth-last-of-type(n)
中 n 是从 0 开始的整数,表达式可写成an+b
, a 和 b 是 0 或正整数,表达式的写法相当于把每 a 个子元素分成一组,取每组的第 b 个元素;取第奇数、偶数个子元素可写表达式为2n+1 或 even
、2n 或 odd
。
??否定伪类是用来选择所有非指定类型元素的其他元素。
input:not([type="text"])
伪元素
??伪元素(Pseudo-elements)是指不存在与文档树中的抽象。
::first-line
::first-letter
::before
::after
在 CSS 1 和 CSS 2 中,伪类选择器中只有一个 ":",而 CSS 3 变为两个 "::",是为了区分伪类与伪元素,目前这两个写法效果一致。
::before
与::after
必须设置content
属性,否则元素不能生效。
优先级和权重
?? CSS 中的权重分别为 4 个等级:
内联样式(HTML 文档中的 style 属性)
ID 选择器
类、伪类、属性选择器
元素、伪类元素
这 4 个等级由高到低代表不同的优先级,!important
写在 CSS 规则后,可以将对应的规则提升到最高权重。
相关推荐:
css选择器实例分享
CSS选择器的新用法详解
CSS选择器字段解析的实现方法
以上就是CSS选择器的优先级和权重分析的详细内容,更多请关注php中文网其它相关文章!