CSS3的选择器

Posted 互联网IT信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS3的选择器相关的知识,希望对你有一定的参考价值。


1CSS3选择器分类


    1.基本选择器

    2.属性选择器

    3.伪类选择器


2CSS3基本选择器


1、通配符选择器(*)

通配符选择器是用来选择所有元素,也可以选择某个元素下的所有元素。

  *{

  margin: 0;

  padding: 0;

  font-size: 12px;

  }

  div *{

  color: red;

  }

效果图如下:

2、元素选择器(E)

元素选择器,是css选择器中最常见而且最基本的选择器。元素选择器其实就是文档的元素,如html,body,p,div等。 

a{

  color: goldenrod;

  }

效果图如下:

CSS3的选择器

3、类选择器(.className)

类选择器是以一独立于文档元素的方式来指定样式,使用类选择器之前需要在html元素上定义类名,换句话说需要保证类名在html标记中

.import{

  background-color: pink;

  } 

<h1 class="import">类选择器</h1>

效果图如下:

CSS3的选择器

4、id选择器(#ID)

ID选择器和上面说的类选择器是很相似的,在使用ID选择器之前也需要先在html文档中加注ID名称,这样在样式选择器中才能找到相对应的元素,不同的是ID选择器是一个页面中唯一的值,我们在类使用时是在相对应的类名前加上一个“.”号(.className)而id选择器是在名称前使用"#"如(#id)

#box{

  width: 200px;

  height: 100px;

  border: solid #663300 1px;

  }

<div id="box"></div>

效果图如下:

CSS3的选择器

5、后代选择器(E F)

后代选择器也被称作包含选择器,所起作用就是可以选择某元素的后代元素,比如说:E F,前面E为祖先元素,F为后代元素,所表达的意思就是选择了E元素的所有后代F元素,请注意他们之间需要一个空格隔开。这里F不管是E元素的子元素或者是孙元素或者是更深层次的关系,都将被选中。

.parent p{

  font-size: 20px;

  color: green;

  }

<div class="parent">

  <p>后代选择器</p>

  </div>

效果图如下:

CSS3的选择器

6、子元素选择器(E>F)

子元素选择器只能选择某元素的子元素,其中E为父元素,而F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。这和后代选择器(E F)不一样,在后代选择器中F是E的后代元素,而子元素选择器E > F,其中F仅仅是E的子元素而已。

div>div{

  background-color: #ABCDEF;

  width: 100px;

  height: 100px;

  }

<div>

  <div>

  子元素选择器

  </div>

  </div>

效果图如下:

CSS3的选择器

7、相邻兄弟元素选择器(E + F)

择器可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素,换句话说,EF两元素具有一个相同的父元素,而且F元素在E元素后面,而且相邻,这样我们就可以使用相邻兄弟元素选择器来选择F元素。

li+li{

  font-size: 30px;

  background-color: #000000;

  color: #fff;

  }

<ul>

  <li>兄弟1号</li>

  <li>兄弟2号</li>

  <li>兄弟3号</li>

  <li>兄弟4号</li>

  </ul>

效果图如下:

CSS3的选择器

8、通用兄弟选择器(E 〜 F)

通用兄弟元素选择器是CSS3新增加一种选择器,这种选择器将选择某元素后面的所有兄弟元素,他们也和相邻兄弟元素类似,需要在同一个父元素之中,换句话说,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E ~ F 选择器将选择中所有E元素后面的F元素。

div~a{

  background: #9E1CD5;

  }

<div>

             <div>

     <a>通用兄弟选择器</a>

     <a>通用兄弟选择器</a>

     </div>

     <a>通用兄弟选择器</a>

     <a>通用兄弟选择器</a>

   </div>

效果图如下:

CSS3的选择器

9、群组选择器(selector1,selector2,...,selectorN)

群组选择器是将具有相同样式的元素分组在一起,每个选择器之间使用逗号“,”隔开,如上面所示selector1,selector2,...,selectorN。这个逗号告诉浏览器,规则中包含多个不同的选择器,如果不有这个逗号,那么所表达的意就完全不同了,省去逗号就成了我们前面所说的后代选择器

span,h2,h3,h4,h5{

  color: bisque;

  background: #00FFFF;

  font-size: 20px;

  }

<h2>群组选择器-h2</h2>

   <h3>群组选择器-h3</h3>

   <h4>群组选择器-h4</h4>

   <h5>群组选择器-h5</h5>

   <span>群组选择器-span</span>

效果图如下:

CSS3的选择器

3CSS3属性选择器


1、E[attr]

E[attr]属性选择器是CSS3属性选择器中最简单的一种。如果你希望选择有某个属性的元素,而不论这个属性值是什么,你就可以使用这个属性选择器。

.active[title]{

  color: blue;

  }

<p class="active" title="属性选择">属性选择</p>

<p class="active" title="属性选择">属性选择</p>

<p class="active">属性选择</p>

效果图如下:

CSS3的选择器

2、E[attr="value"]

E[attr=“value”]选择器和E[attr]选择器,从字面上就能很清楚的理解出来,E[attr=“value”]是指定了属性值“value”,而E[attr]只是选择了有对应的属性,并没有明确指其对应的属性值“value”,这也是这两种选择器的最大区是之处。从而缩小了选择 围,更能精确选择自己需要的元素。

.active[title="name"]{

  color: #00FFFF;

  }

<p class="active" title="name">属性选择</p>

<p class="active" title="name">属性选择</p>

<p class="active">属性选择</p>

效果图如下:

CSS3的选择器

3、E[attr~="value"]

如果你想根据属性值中的词列表的某个词来进行选择元素,那么就需要使用这种属性选择器:E[attr~=“value”],这种属性选择器是属性值是一个或多个词列表,如果是列表时,他们需要用空格隔开,只要属性值中有一个value相匹配就可以选中该元素,而我们前面所讲的E[attr=“value”]是属性值需要完全匹配才会被选中,他们两者区别就是一个有“〜”号,一个没有“〜”号。

.active[href~="http://"] {

  background-color: red;

  }

<a href="http://" class="active">属性选择器</a>

<a href="http:// https://" class="active">属性选择器</a>

<a href="" class="active">属性选择器</a>

效果图如下:

CSS3的选择器

4、E[attr^="value"]

E[attr^=“value”]属性选择器,指的是选择attr属性值以“value”开头的所有元素.

[id^=div]{

  color: green;

  }

<div id="div1">div1</div>

<div id="div2">div2</div>

<div id="3div">div3</div>

效果图如下:

CSS3的选择器

5、E[attr$="value"]

E[attr$=“value”]属性选择器刚好与E[attr^=“value”]选择器相反,E[attr$=“value”]表示的是选择attr属性值以“value”结尾的所有元素

[id$=y]{

  color: yellow;

  }

<div id="my">my</div>

  <div id="my2">my2</div>

  <div id="my3">my3</div>

效果图如下:

CSS3的选择器

6、E[attr*="value”]

E[attr*=“value”]属性选择器表示的是选择attr属性值中包含子串“value”的所有元素。

[id*=text]{

  color: grey;

  }

<div id="1text">1text</div>

  <div id="text1">text1</div>

  <div id="tex">tex</div>

效果图如下:

CSS3的选择器

7、E[attr|="value"]

E[attr|=“value”]是属性选择器中的最后一种,在说这个选择器使用之前先提醒大家attr后面的是一个竖线“|”而不是l,小心搞错了。E[attr|=“value”]被称作为特定属性选择器。这个选择器会选择attr属性值等于value或以value-开头的所有元素.

[id|=laven]{

  color: lavender;

  }

<div id="laven">laven</div>

<div id="laven-a">laven-a</div>

 <div id="llaven">llaven</div>

效果图如下:

CSS3的选择器


4CSS3伪类选择器


1、动态伪类

动态伪类,因为这些伪类并不存在于HTML中,而只有当用户和网站交互的时候才能体现出来,动态伪类包含两种,第一种是我们在链接中常看到的锚点伪类,如“:link”,“:visited”;另外一种被称作用户行为伪类,如“:hover”,“:active”和“:focus”。

a:link {color:red;}

 a:visited{color:yellow;}

a:hover{color:blueviolet;}

a:active{color:orangered;}

<a href="www.baidu.com" class="link">link</a>

<a href="www.baidu.com" class="visited">visited</a>

<a href="www.baidu.com" class="hover">hover</a>

<a href="www.baidu.com" class="active">active</a>

2、UI元素状态伪类

我们把“:enabled”,“:disabled”,“:checked”伪类称为UI元素状态伪类,这些主要是针对于HTML中的Form元素操作,最常见的比如我们“type=”text“有enable和disabled两种状态,前者为可写状态后者为不可状态;

  另外”type=“radio”和“type=”checkbox“”

有“checked”和“unchecked”两种状态。

/*checked*/

  input[type="checkbox"]:checked{

  outline: 2px solid #E40F0F;

  }

  /*enabeld*/

  input[type="text"]:enabeld{

  background-color: #DE29E4;

  }

 

  /*disabled*/

  input[type="text"]:disabled{

  background-color: #23305C;

   }  

效果图如下:

CSS3的选择器

3、CSS3的:nth选择器

这节内容才是关键,也是CSS3选择器最新部分,有人也称这种选择器为CSS3结构类,下面我们通过实际的应用来具体了解他们的使用和区别,首先列出他具有的选择方法:

:first-child选择某个元素的第一个子元素;

:last-child选择某个元素的最后一个子元素;

:nth-child()选择某个元素的一个或多个特定的子元素;

:nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;

:nth-of-type()选择指定的元素;

:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;

:first-of-type选择一个上级元素下的第一个同类子元素;

:last-of-type选择一个上级元素的最后一个同类子元素;

:only-child选择的元素是它的父元素的唯一一个了元素;

:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;

:empty选择的元素里面没有任何内容。

效果图如下:

CSS3的选择器

4、否定选择器(:not)

否定选择器和jq中的:not选择器一模一样,就拿form中的元素来说明这个选择器的用法,比如你想对form中所有input加边框,但又不想submit也起变化,此时就可以使用:not为实现。

div:not([id="div3"]) {background: #0000FF;}

 <div id="div1">

     div1

   </div>

    <div id="div2">

     div2

   </div>

    <div id="div3">

     div3

   </div>

效果图如下:

5、伪元素

CSS中的伪元素大家以前看过::first-line,:first-letter,:before,:after;那么在CSS3中,他对伪元素进行了一定的调整,在以前的基础上增加了一个“:”也就是现在变成了“::first-letter,::first-line,::before,::after”另外他还增加了一个“::selection”,两个“::”和一个“:”css3中主要用来区分伪类和伪元素。

p::first-line {color: #87CEFA;}

效果图如下:


以上是关于CSS3的选择器的主要内容,如果未能解决你的问题,请参考以下文章

css3选择器怎样选择元素?

CSS3新增的选择器

CSS3样式,基础选择器,复合选择器

[CSS3] 学习笔记-CSS选择器

css3 选择器,选择第二个字母

CSS3中的选择器