Css3选择器
来自CloudWiki
伪类和伪元素
css3选择器重点在于能够区分伪类和伪元素,
伪元素::两个冒号,伪类一个: 伪元素个数较少,出去伪元素都是伪类。 伪类就是假的类,伪元素就是假的元素, 伪类其实是弥补了CSS选择器的不足,用来更方便地获取信息。 而伪元素本质上是创建了一个虚拟容器(元素),我们可以在其中添加内容或样式。
源代码
<div class="list"> <div class="box">box</div> <p>这是box前的段落标签</p> <div class="con">con</div> <p>这是段落标签1</p> <div class="conMain">conMain</div> <div class="boxCon">boxCon</div> <p>这是段落标签2</p> <header>这是头部标签</header> <p>这是段落标签3</p> <div class="main"> <p>您好</p> <p> </p> <span>span</span> <span>span</span> </div> 禁用<input type="text" disabled><br> 可用<input type="text"><br> <a href="#news1">新闻1</a> <a href="#news2">新闻2</a> <div id="news1">新闻1新闻1新闻1新闻1新闻1</div> <div id="news2">新闻2新闻2新闻2新闻2新闻2新闻2</div> </div>
兄弟选择器
.box~p: .box所有的p都会被选择,且这些元素和第一个元素拥有同一个父元素(两个元素之间不一定要相邻)
.box~p{ background-color: green; }
属性选择器
E[attribute^=value] 用于选取带有以指定值开头的属性值的元素
E[attribute$=value] 用于选取属性值以指定值结尾的元素
E[attribute*=value] 用于选取属性值中包含指定值的元素,位置不限,也不限制整个单词
div[class^=c]{ font-size: 40px; color:red; } div[class$=on]{ border:5px solid pink; } div[class*=o]{ background-color: #000; }
伪类选择器
- root 选择文档的根元素,HTML 里,永远是<html>元素
- last-child 向元素添加样式,且该元素是它的父元素的最后一个子元素
- nth-child(n) 向元素添加样式,且该元素是它的父元素的第 n 个子元素
- nth-last-child(n) 向元素添加样式,且该元素是它的父元素的倒数第 n 个子 元素
- only-child 向元素添加样式,且该元素是它的父元素的唯一子元素
- first-of-type 向元素添加样式,且该元素是同级同类型元素中第一个元 素
- last-of-type 向元素添加样式,且该元素是同级同类型元素中最后一个 元素
- nth-of-type(n) 向元素添加样式,且该元素是同级同类型元素中第 n 个元 素
- nth-last-oftype(n)向元素添加样式,且该元素是同级同类型元素中倒数第 n 个元素
- only-of-type 向元素添加样式,且该元素是同级同类型元素中唯一的元素
- empty 向没有子元素(包括文本内容)的元素添加样式
:root{ background-color: pink; } .list div:last-child{ background-color: red; } .list div:nth-child(2n){ border:4px solid blue; } .list p:only-child{ color:red; } .list p:first-of-type{ color:green; } .list span:only-of-type{ font-size: 100px; } .list :empty{ width: 100px; height:100px; border:2px solid red; }
伪元素选择器
- enabled 向当前处于可用状态的元素添加样式,通常用于定义表单的样式或者超链接的样式
- disabled 向当前处于不可用状态的元素添加样式,通常用于定义表单的 样式或者超链接的样式
- not(selector) 向不是 selector 元素的元素添加样式
- target 向正在访问的锚点目标元素添加样式
.list :enabled{ border:1px solid red; } .list :disabled{ border:1px solid green; } :target{ border:10px solid blue; }
源代码
<!DOCTYPE html> <html> <head> <title>css3选择器</title> <meta charset="utf-8"> <style> .box~p{ background-color: green; } /*div[class^=c]{ font-size: 40px; color:red; } div[class$=on]{ border:5px solid pink; } div[class*=o]{ background-color: #000; }*/ :root{ background-color: pink; } .list div:last-child{ background-color: red; } .list div:nth-child(2n){ border:4px solid blue; } .list p:only-child{ color:red; } .list p:first-of-type{ color:green; } .list span:only-of-type{ font-size: 100px; } .list :empty{ width: 100px; height:100px; border:2px solid red; }*/ .list :enabled{ border:1px solid red; } .list :disabled{ border:1px solid green; } :target{ border:10px solid blue; } </style> </head> <body> <div class="list"> <div class="box">box</div> <p>这是box前的段落标签</p> <div class="con">con</div> <p>这是段落标签1</p> <div class="conMain">conMain</div> <div class="boxCon">boxCon</div> <p>这是段落标签2</p> <header>这是头部标签</header> <p>这是段落标签3</p> <div class="main"> <p>您好</p> <p> </p> <span>span</span> <span>span</span> </div> 禁用<input type="text" disabled><br> 可用<input type="text"><br> <a href="#news1">新闻1</a> <a href="#news2">新闻2</a> <div id="news1">新闻1新闻1新闻1新闻1新闻1</div> <div id="news2">新闻2新闻2新闻2新闻2新闻2新闻2</div> </div> 兄弟选择器 .box~p: .box所有的p都会被选择,且这些元素和第一个元素拥有同一个父元素(两个元素之间不一定要相邻) 属性选择器: E[attribute^=value] 用于选取带有以指定值开头的属性值的元素 E[attribute$=value] 用于选取属性值以指定值结尾的元素 E[attribute*=value] 用于选取属性值中包含指定值的元素,位置不限,也不限制整个单词 伪类选择器 :root 选择文档的根元素,HTML 里,永远是<html>元素 :last-child 向元素添加样式,且该元素是它的父元素的最后一个子元素 :nth-child(n) 向元素添加样式,且该元素是它的父元素的第 n 个子元素 :nth-last-child(n) 向元素添加样式,且该元素是它的父元素的倒数第 n 个子 元素 :only-child 向元素添加样式,且该元素是它的父元素的唯一子元素 :first-of-type 向元素添加样式,且该元素是同级同类型元素中第一个元 素 :last-of-type 向元素添加样式,且该元素是同级同类型元素中最后一个 元素 :nth-of-type(n) 向元素添加样式,且该元素是同级同类型元素中第 n 个元 素 :nth-last-oftype(n)向元素添加样式,且该元素是同级同类型元素中倒数第 n 个元素 :only-of-type 向元素添加样式,且该元素是同级同类型元素中唯一的元素 :empty 向没有子元素(包括文本内容)的元素添加样式 伪元素选择器 :enabled 向当前处于可用状态的元素添加样式,通常用于定义表单的样式或者超链接的样式 :disabled 向当前处于不可用状态的元素添加样式,通常用于定义表单的 样式或者超链接的样式 :not(selector) 向不是 selector 元素的元素添加样式 :target 向正在访问的锚点目标元素添加样式 <!-- css3选择器重点在于能够区分伪类和伪元素, 伪元素::两个冒号,伪类一个: 伪元素个数较少,出去伪元素都是伪类。 伪类就是假的类,伪元素就是假的元素, 伪类其实是弥补了CSS选择器的不足,用来更方便地获取信息。 而伪元素本质上是创建了一个虚拟容器(元素),我们可以在其中添加内容或样式。 --> </body> </html>