一、属性选择器

其特点是通过属性来选择元素,具体有以下5种形式:

1、E[attr] 表示存在attr属性即可;

   div[class]

2、E[attr=val] 表示属性值完全等于val

   div[class=mydemo]

3、E[attr*=val] 表示的属性值里包含val字符并且在“任意”位置;

     div[class*=mydemo]

4、E[attr^=val] 表示的属性值里包含val字符并且在“开始”位置;

      div[class^=mydemo]

5、E[attr$=val] 表示的属性值里包含val字符并且在“结束”位置;

  div[class$=demos]

二、伪类选择器

除了以前学过的:link、:active、:visited、:hover,CSS3又新增了其它的伪类选择器。

1、以某元素相对于其父元素或兄弟元素的位置来获取无素的结构伪类。

重点理解通过E来确定元素的父元素

  • E:first-child   第一个子元素
  • E:last-child    最后一个子元素
  • E:nth-child(n)   第n个子元素,计算方法是E元素的全部兄弟元素;

  div>ul>li:nth-child(3){  //选中第三个li 
           color: deeppink;

}  

E:nth-last-child(n)E:nth-child(n) 相似,只是倒着计算;

div>ul>li:last-child(2){  //选中倒数第二个li
         color: deeppink;

}

2、 n遵循线性变化,其取值0、1、2、3、4、... 但是当n<=0时,选取无效。

(1) 选中所有的奇数的li

   li:nth-child(2n-1){
       color: red;
   }

(2)选中所有的7 的倍数的li

li:nth-child(7n){
      color: red;
    }
 (3)  选中前面五个
   li:nth-child(-n+5){
       color: red;
   }
  (4) 选中后面五个
   li:nth-last-child(-n+5){

 color: red;
   }
   (5)所有的偶数
   li:nth-child(even){
      color:red
   }
  (6) 所有的奇数
   li:nth-child(odd){
      color:blue;
   }

注意:

n可是多种形式:nth-child(2n)nth-child(2n+1)nth-child(-1n+5)等;

E:empty 选中没有任何子节点的E元素;(使用不是非常广泛)

没有任何的子元素,包括空格.

3、目标伪类

E:target 结合锚点进行使用,处于当前锚点的元素会被选中

<li><a href="#title1">CSS (层叠样式表)</a></li>

<h2 id="title1">CSS (层叠样式表)</h2>

 h2:target{

    color:red;

  }

三、nth选择器

  1. :first-child  选择某个元素的第一个子元素;
  2. :last-child  选择某个元素的最后一个子元素;
  3. :nth-child()  选择某个元素的一个或多个特定的子元素;
  4. :nth-last-child()  选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
  5. :nth-of-type()  选择指定的元素;
  6. :nth-last-of-type()  选择指定的元素,从元素的最后一个开始计算;
  7. :first-of-type  选择一个上级元素下的第一个同类子元素;
  8. :last-of-type  选择一个上级元素的最后一个同类子元素;
  9. :only-child  选择的元素是它的父元素的唯一一个了元素;
  10. :only-of-type  选择一个元素是它的上级元素的唯一一个相同类型的子元素;
  11. :empty  选择的元素里面没有任何内容。

四、伪元素选择器

重点:E::before、E::after

是一个行内元素,需要转换成块元素

E:after、E:before 在旧版本里是伪类,在新版本里是伪元素,新版本下E:after、E:before会被自动识别为E::after、E::before,按伪元素来对待,这样做的目的是用来做兼容处理。

E::first-letter   文本的第一个字母或字(如中文、日文、韩文等);

案例:首字下沉

E::first-line 文本第一行;  文本第一行高亮..

E::selection 可改变选中文本的样式;

":""::" 区别在于区分伪类伪元素

  关于beforeafter
      CSS2中 E:before或者E:after,是属于伪类的,并且没有伪元素的概念
      CSS3中 提出伪元素的概念 E::beforeE::after,并且归属到了伪元素当中,伪类里就不再存在E:before或者   E:after伪类;

第91天:CSS3 属性选择器、伪类选择器和伪元素选择器的更多相关文章

  1. css3类选择器之结合元素选择器和多类选择器

    css3类选择器之结合元素选择器和多类选择器用法: <!DOCTYPE html> <html lang="en"> <head> <me ...

  2. 前端(六)—— 伪类选择器:a标签的伪类、内容伪类、索引伪类、取反伪类

    a标签的伪类.内容伪类.索引伪类.取反伪类 一.a标签的四大伪类 :link:未访问状态 :hover:悬浮状态 :active:活跃状态 :visited:已访问状态 四大伪类也可用于其他标签 &l ...

  3. 关于伪类“:pseudo-class”和伪元素“::pseudo-element”的常见应用

    伪类用于指定要选择的元素的特殊状态,向其添加特殊的效果,比如: input { width: 515px; height: 50px; padding: 10px 20px; border: 1px ...

  4. CSS伪类与CSS伪元素的区别及由来

    关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...

  5. 转贴:CSS伪类与CSS伪元素的区别及由来具体说明

    关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...

  6. CSS 伪类(下)结构性伪类\UI伪类\动态伪类和其他伪类 valid check enable child required link visit

      伪类选择器汇总伪类选择器有4种, 结构性伪类\UI伪类\动态伪类和其他伪类. 具体如下 结构性伪类选择器结构性伪类选择器它能够根据元素在文档中的位置选择元素, 这类元素都有个前缀":&q ...

  7. css3基本选择器+属性选择器+动态伪类+UI状态伪类+结构类

    后代选择器 祖先元素 后代元素{ } 子元素选择器(直接子元素选择器) 父元素>子元素{ } 兄弟选择器 元素+兄弟元素(紧邻该元素之后的下一个兄弟元素) 所有兄弟元素选择器 元素~兄弟元素(该 ...

  8. css---3链接伪类与动态伪类

    链接伪类link:表示作为超链接,并指向一个未访问的地址的所有锚 链接伪类不可以加在div上 <!DOCTYPE html> <html> <head> <m ...

  9. CSS中的伪类和为伪元素

    伪类: 伪元素:

  10. css3选择器的比较(三) -- 元素选择器 (+, ~)

    元素选择器中w3cschool中有些翻译不太准确 比如 +:其实是与element1元素同级,位于element1元素之后的第一个element2元素 ~:其实是与element1元素同级,位于ele ...

随机推荐

  1. 20155212 ch03 课下作业

    T4 题目 通过输入gcc -S -o main.s main.c 将下面c程序"week0603学号.c"编译成汇编代码 int g(int x){ return x+3; } ...

  2. 20155224聂小益 2016-2017-2 《Java程序设计》第1周学习总结

    20155224聂小益 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 第一章 第一章内容不是很多,主要介绍了Java发展历程与Java的使用平台. JVM: ...

  3. 与虚拟机和linux的初次接触

    初次接触虚拟机 根据老师所给的资源和教程,虚拟机安装的过程十分顺利. 接下来是在虚拟机上安装linux操作系统我下载了破解版的Ubuntu,也是十分顺利 接下来就是安装虚拟机增强功能,命令有些繁琐,在 ...

  4. 20155334 2016-2017-2 《Java程序设计》第一周学习总结

    20155334 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章主要讲了Java的前世今生以及Java的三大平台(Java SE.Java EE.Ja ...

  5. GDAL中通过GDALDriver类的Create函数实现图像的保存

    GDAL中除了读取各种类型的图像外,也可以实现对各种图像的保存操作,具体实现测试代码如下: int test_gadl_GDALDataset_write() { const char* image_ ...

  6. python的种类

    Cpython     Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton   ...

  7. [flex 布局]——flex教程

    简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...

  8. 二、Django用户认证之cookie和session

    1.cookie原理 Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制.目前Cookie已经成为标准,所有的主流浏览器如IE.Netscape.Firefox.O ...

  9. 廖雪峰git笔记

    查看本地机子的在Git上的名字和邮箱:git config user.namegit config user.email 对所有仓库指定相同的用户名和Email地址:git config --glob ...

  10. Redis的数据类型以及每种数据类型的使用场景

    人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题Redis的数据类型以及每种数据类型的使用场景是什么? 是不是觉得这个问题很基础?我也这么觉 ...