Home > Article > Web Front-end > Learn about CSS Selector
This article mainly introduces the relevant information of CSS Selector in CSS study notes. Friends who need it can refer to the selector defined in
##Type selector
body { /*对 body 元素定义样式*/ } body,p { /*同时选择多种标签元素*/ }
ID selector
is used to select the html element with the specified ID. Common usage methods are as follows:<p id="nav"> </p> <style> #nav { /*定义 ID 为 nav 的元素的样式*/ } </style>Because the rendering order of CSS is from right to left, and the ID is completely unique, the previous type selector can be omitted.
Class selector
is used to select html elements with specified class names. Common usage methods are as follows:<p class="nav"> </p> <style> .nav { /*定义 class 为 nav 的元素的样式*/ } </style>
Contains selectors
<p class="nav"> <p class="nav-tools"> </p> </p> <p class="nav"> <p> <p class="nav-tools"> </p> </p> </p> <style> .nav .nav-tools { /*定义元素的父级元素 class 包含 nav,且子元素class 包含 nav-tools 的元素*/ } </style>It should be noted that the inclusion selector does not care about the hierarchy, as long as the subsequent selector is included in the previous element. As in the above example, both nav-tools will be selected by the selector!
Pseudo-class selector
is used to define the style when the link is not visited. Common usage methods are as follows:
<p class="nav"> <p class="nav-tools"> <ul> <li><a href="#"></a></li> </ul> </p> </p> <style> a:link { text-decoration: none; color: blue; } </style>:visited— —Link pseudo-class selector
is used to define the visited link style. Common usage methods are as follows:
<style> a:visited { text-decoration: none; color: red; } </style>:active——User operation pseudo-class selector
is used to define the activated element style. Common usage methods are as follows:
<style> a:active { text-decoration: none; color: green; } </style>:hover——User operation pseudo-class selector
is used to define the style of the element when the mouse passes over it. Common usage methods are as follows:
<style> a:hover { text-decoration: none; background-color: #F4F4F4; } </style>:focus——User operation pseudo-class selector
is used to define the style of the element that receives focus. Common usage methods are as follows:
<style> input:focus { text-decoration: none; background-color: #F4F4F4; } </style>::first-line
is used to define the style of the first line of text within the element. Common usage methods are as follows:
<p class="doc"> <p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。</p> </p> <style> .doc { width: 360px; } .doc>p::first-line { color: red; } </style>::=first-letter
is used to define the style of the first character in the element. Commonly used The way is as follows:
<style> .doc { width: 360px; } .doc>p::first-letter { font-size: 2em; color: red; } </style>
Selector defined in CSS2
* ——The wildcard selector
is used to define the common style of all elements in the DOM. Common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> </p> </p> </p> <style> .nav * { margin: 0; } </style>
If you want to reset the default style, it is not recommended to use wildcard selectors
[attribute]——Attribute selector
is used for definition The element contains the style of the element whose attribute is attribute. Common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active>Menu</li> <li>Index</li> </ul> </p> </p> </p> <style> li[active] { color: red; } </style>[attribute="value"]——Attribute selector
is used to define the value of element attributes as the specified value style. Common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active="active">Menu</li> <li active>Index</li> </ul> </p> </p> </p> <style> li[active="active"] { color: red; } </style>[attribute ~="value"]——Attribute selector
is used to define attributes that contain specified values and separate attribute value elements with spaces. Common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active="test active">Menu</li> <li active="active-test">Index</li> </ul> </p> </p> </p> <style> li[active~="active"] { color: red; } </style>
As shown above, only the foreground color of the first li will be defined as red!
[attribute|="value"]——Attribute selectoris used to define attribute values that contain the specified value and are linked by a hyphen (-) , the common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active="test active">Menu</li> <li active="active-test">Index</li> </ul> </p> </p> </p> <style> li[active|="active"] { color: red; } </style>
As shown above: only the foreground color of the second li will be defined as red!
:first-child——structural pseudo-class selectoris used to define the style of the first element of the element. Common usage methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active="test active">Menu</li> <li active="active-test">Index</li> </ul> </p> </p> </p> <style> li:first-child { color: red; } </style>
Note: first-child is the first element that acts on the same level and has the same tag. As shown above, if you want to define the style of the first li, you need to use li:first-child instead of ul:first-child!
:lang(en)is used to define the element style with the attribute lang="en". Common usage methods are as follows:
<p> <p lang="en">Hello World</p> </p> <style> p:lang(en) { color: red; } </style>::before
is used to define the content and style before the element. Common usage methods are as follows:
<p> <a>World</a> </p> <style> a::before { content: "Hello "; } </style>::after
is used to define the content and style after the element. Common usage methods are as follows:
<p> <a>Hello</a> </p> <style> a::after { content: "World"; } </style>p > p
is used to define the style of the first-level sub-element of an element. Common methods are as follows:
<p class="nav"> <p> <p class="nav-tools"> <ul> <li active="test active">Menu</li> <li active="active-test">Index</li> </ul> </p> </p> </p> <style> .nav-tools > ul { background-color: red; } .nav-tools > li { /*这个不会生效,因为 li 不是 ul 的直接子元素*/ } </style>h1 p
is used to define the style of elements adjacent to elements. Common usage methods are as follows:
<p> <h1>CSS</h1> <p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。</p> </p> <style> h1 + p { color: red; } </style>
CSS3 新增属性选择器
[foo^="bar"]
用于定义元素属性以 bar 开头的元素的样式
<p> <a href="http://www.betterde.com">Betterde Inc.</a> <a href="https://www.betterde.com">Betterde Inc.</a> </p> <style> a[href^="https"] { color:green; } </style>
如上所示,标记 https 链接为绿色。
[foo$="bar"]
用于定义元素属性以 bar 结尾的元素的样式
<p> <a href="http://www.betterde.com/logo.png">logo.png</a> <a href="http://www.betterde.com/style.css">style.css</a> <a href="http://www.betterde.com/main.js">main.js</a> </p> <style> a[href$="png"] { background: url(system/filetype/png.png) no-repeat left center; padding-left: 18px; } a[href$="css"] { background: url(system/filetype/css.png) no-repeat left center; padding-left: 18px; } a[href$="js"] { background: url(system/filetype/js.png) no-repeat left center; padding-left: 18px; } </style>
如上所示,识别超链接的所链接的文件格式,并在前面添加文件类型图标!
[foo*="bar"]
用于定义元素属性中包含 bar 的元素的样式,需要注意的是,这里是包含,也就是说无论是什么样的组合,只要属性值还有这bar 这三个连续字母的都会被选中!
<p> <h1 class="title big full-right"></h1> <h2 class="title big full-right"></h1> <h1 class="big-title"></h1> </p> <style> a[class*="title"] { color: red; } </style>
如上所示:p 内的三个元素都将会被渲染为红色字体!
虽然 CSS3 中任然保留 CSS2 中定义的属性选择器,但是建议使用 CSS3 的属性选择器来替代!
结构伪类选择器
:root
用于定义 html 标签元素的样式
:nth-child(n)
用于定义子元素的样式,n 表示第几个子元素。n 可以是数字,或关键字odd、even或公式。常见使用方法如下:
<table> <tbody> <tr> <td>name</td> <td>gender</td> <td>age</td> </tr> <tr> <td>George</td> <td>Male</td> <td>23</td> </tr> <tr> <td>Kevin</td> <td>Male</td> <td>28</td> </tr> <tr> <td>Angule</td> <td>Male</td> <td>23</td> </tr> </tbody> </table> <style> tr:nth-child(even) { background-color: red; } </style>
:nth-last-child(n)
与 :nth-child(n)用法相同,只是排序方式是从后往前!
:nth-of-type(n)
用于定义相同元素的第 n 个元素的样式,常见使用方法如下:
<table> <tbody> <tr> <td>name</td> <td>gender</td> <td>age</td> </tr> <tr> <td>George</td> <td>Male</td> <td>23</td> </tr> <tr> <td>Kevin</td> <td>Male</td> <td>28</td> </tr> <tr> <td>Angule</td> <td>Male</td> <td>23</td> </tr> </tbody> </table> <style> tr:nth-of-type(even) { background-color: red; } </style>
:nth-last-of-type(n)
与 :nth-of-type(n)用法相同,只是排序方式是从后往前!
:last-child
用于定义最后一个元素的样式,常见使用方法如下:
<table> <tbody> <tr> <td>name</td> <td>gender</td> <td>age</td> </tr> <tr> <td>George</td> <td>Male</td> <td>23</td> </tr> <tr> <td>Kevin</td> <td>Male</td> <td>28</td> </tr> <tr> <td>Angule</td> <td>Male</td> <td>23</td> </tr> </tbody> </table> <style> tr:last-child { background-color: red; } </style>
:first-of-type
定义第一个元素相同类型元素的样式,与 :nth-of-type(1) 效果一样
:last-of-type
定义最后一个元素相同类型元素的样式,常见使用方法如下:
<table> <tbody> <tr> <td>name</td> <td>gender</td> <td>age</td> </tr> <tr> <td>George</td> <td>Male</td> <td>23</td> </tr> <tr> <td>Kevin</td> <td>Male</td> <td>28</td> </tr> <tr> <td>Angule</td> <td>Male</td> <td>23</td> </tr> </tbody> </table> <style> tr:last-of-type { background-color: red; } </style>
:only-child
用于定义子元素只有一个且与制定元素标签相同,常见使用方法如下:
<p> <h1>Hello</h1> </p> <style> h1:only-child { /*如果 p 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/ } </style>
:only-of-type
用于定义只包含一个制定的标签元素的样式,常见使用方法如下:
<p> <h1>Hello</h1> </p> <style> h1:only-of-type { /*如果 p 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/ } </style>
:empty
用于定义,一个元素中没有包含任何子元素的样式,常见使用方法如下:
<p> </p> <style> p:empty { display: none; } </style>
CSS3 新增的其他选择器
E ~ F
用于定义兄弟元素的样式,常见使用方法如下:
<p> <p>Hello</p> </p> <p>CSS</p> <style> p ~ p { color: red; } </style>
p 元素中的 p 不会被渲染为红色字体,只有跟 p 是同级的 p 才会被渲染为红色!
:not(s)
用于定义指定元素,并且过滤 s 所指定的选择器元素,常见使用方法如下:
<p> <p class="red">Hello</p> <p class="blue">World</p> <p>Welcome!</p> </p> <style> p:not(.red) { color: blue; } </style>
注意:s 是一个简单的结构选择器,不能使用复合选择器,该选择器只匹配第一个复合条件的元素。如上所示,最后一个 p 不会被渲染为蓝色!
:target
用于定义被访问的锚链样式,常见使用方法如下:
<p> <p id="text-one"> <p>这是第一个文本段</p> </p> <p id="text-two"> <p>这是第二个文本段</p> </p> </p> <style> p:target { color: red; } </style>
注意:当我们激活锚链时(url中包含 #text-one 或 #text-two),对应的 p 内的元素字体会被渲染为红色!
CSS3 UI 元素状态伪类选择器
:enabled
用于定义元素的 enabled 时的样式,常见使用方式如下:
<p> <input type="text"> </p> <style> input:enabled { background: #ffff00; } </style>
注意:元素默认状态为 enabled
:disabled
用于定义元素处于禁用状态时的样式,常见使用方法如下:
<p> <input type="text" disabled="disabled"/> </p> <style> input:disabled { background: #dddddd; } </style>
:checked
用于定义元素被选中时的样式,常见使用方式如下:
<p> <form> <input type="checkbox" /> </form> </p> <style> input:checked { color: green; } </style>
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
关于css3的动画效果animate的使用说明及浏览器兼容的介绍
关于css的background-attachment属性的使用
The above is the detailed content of Learn about CSS Selector. For more information, please follow other related articles on the PHP Chinese website!