属性选择器

属性选择器可以元素特定属性来进行选择,这样就可以不借助于类选择器或id选择器

选择符 简述
E[att] 选择具有att属性的E元素
E[att="val"]orE[att=val] 选择具有att属性且属性值为val的E元素
E[att="val"]orE[att=val] 选择具有att属性且属性值以val开头的E元素
E[att$="val"]orE[att$=val] 选择具有att属性且属性值以val结尾的E元素
E[att="val"]orE[att=val] 选择具有att属性且属性值种含有val的E元素
/*选取具有class属性的div*/
div[class]{
...
}
/*选取具有class属性且class=icon的div*/
div[class="icon"]{
...
}
/*选取具有class属性且class以icon开头的div 例如icon1、icon2...*/
div[class^="icon"]{
...
}
/*选取具有class属性且class以icon结尾的div 例如ficon、picon...*/
div[class$="icon"]{
...
}
/*选取具有class属性且class含有icon的div 例如 h-icon-1、icon1、ficon...*/
div[class*="icon"]{
...
}

属性选择器、类选择器、伪类选择器权重都是10

结构伪类选择器

结构伪类选择器可以根据元素在文档中所处的位置,来动态选择元素,从而减少HTML文档对ID或类的依赖,有助于保持代码干净整洁。

选择器 简述
E:first-child 选择父元素的第一个子元素E,相当于E:nth-child(1)
E:last-child 选择父元素的倒数第一个子元素E,相当E:nth-last-child(1)
E:nth-child(n) 选择父元素的第n个子元素,n从1开始计算
E:nth-last-child(n) 选择父元素的倒数第n个子元素,n从1开始计算
E:first-of-type 选择父元素下同种标签的第一个元素,相当于E:nth-of-type(1)
E:last-of-type 选择父元素下同种标签的倒数第一个元素,相当于E:nth-last-of-type(1)
E:nth-of-type(n) 与:nth-child(n)作用类似,用作选择使用同种标签的第n个元素

E:nth-child(n)会将所有兄弟盒子排序再检查类型是否匹配,而E:nth-of-type(n)会先选出所有类型匹配的盒子然后再排序。

注意,例如li:first-child表示选择父元素下的第一个子元素li,而不是选择li的第一个子元素!ul li:first-child表示选择ul下的li且li为ul第一个子元素。

对于E:nth-child(n) 其中n既可以是数字,也可以是关键字(even | old),也可以是公式,若n为公式,则从0开始计算且变量必须为n,常见公式如下

公式 取值
2n 2,4,....
2n+1 1,3,5,...
5n 5,10,15,...
n+5 选取第5个元素到最后一个元素
-n+5 选取前5个元素
ul li:nth-child(3n+1){
background-color:yellow;
}
ul li:nth-child(3n+2){
background-color:green;
}
ul li:nth-child(3n+3){
background-color:pink;
}
ul li:first-child{
background-color:white;
}
ul li:last-child{
background-color:black;
} ... <body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>

实现效果

伪元素选择器

伪元素选择器可以帮助我们利用CSS创建新标签,而不需要HTML标签,从而简化HTML结构。

选择符 简介
::before 在元素内部的前面插入内容
::after 在元素内部的后面插入内容
  • before和after创建一个新元素,但是属于行内元素
  • 新创建的这个元素在文档树中找不到,故称为伪元素
  • before和after必须有content属性
  • before在父元素内容的前面插入元素,after在父元素内容的后面插入元素
  • 伪元素选择器和标签选择器一样权重为1
  • ::before和::after必须配合content属性来使用,content用来定义插入的内容,content必须有值,至少是空。默认情况下,伪类元素的display是默认值inline,可以通过设置display:block来改变其显示。

    可以利用before和after清除浮动


    .clearfix:before,
    .clearfix:after {
    content: " ";
    display: table;
    }
    .clearfix:after {
    clear: both;
    }
    .clearfix {
    *zoom: 1;
    }

    CSS3 新添选择器的更多相关文章

    1. CSS系列:CSS3新增选择器

      1. CSS1定义的选择器 选择器 类型 说明 E 类型选择器 选择指定类型的元素 E#id ID选择器 选择匹配E的元素,且匹配元素的id为“id”,E选择符可以省略. E.class 类选择器 选 ...

    2. CSS3常用选择器(三)

      在CSS3的选择器中,除了结构性伪类选择器外,还有一种UI元素状态伪类选择器.这些选择器的共同特征: 指定的样式只有当元素处于某种状态时才起作用,在默认状态下不起作用. 1.hover.focus.a ...

    3. CSS3 ::selection选择器

      一.介绍 之前看到有些网站选中内容的颜色和背景色都不是平时看到的蓝色和白色.今天有兴趣查看了一下,原来是一个很简单的CSS3的选择器::selection的用法. 上例子: <style> ...

    4. CSS3属性选择器与(:not)选择器

      一:css3属性选择器: img[alt]{ border:2px dashed #000; } 这个选择器会匹配页面标签中任何一个含有alt属性的图片标签.   还可以通过设定属性值来缩小匹配范围: ...

    5. 【前端开发系列】—— CSS3属性选择器总结

      想想自己为什么要学CSS,作为一个开发过前端的人员来说,调试一个图片花了半天的时间,最后发现分隔符用错了,实在是一件很丢人的事情.因此,痛下决心来学习CSS,最近一周也会更新下相关的学习笔记. CSS ...

    6. CSS3之选择器

      总结了下CSS3新增的一些选择器. CSS3的选择器有基本选择器.属性选择器.伪类选择器几类. CSS3选择器 选择器 举例 例子描述 element1~element2 p~a 选择前面有 < ...

    7. CSS3 :nth-child() 选择器

      CSS3 :nth-child() 选择器 代码: <!DOCTYPE html> <html> <head> <style> p:nth-child( ...

    8. css3属性选择器总结

      前两节介绍了css3属性选择器与css2属性选择器中: 包含字符串和以字符串选择器开头的选择器的比较. 全部属性选择器: 包含字符串讲解对比实例讲解链接: http://www.cnblogs.com ...

    9. CSS3选择器02—CSS3部分选择器

      该部分主要为CSS3新增的选择器 接上一篇 CSS(CSS3)选择器(1) 一.通用兄弟选择器: 24:E ~ F,匹配任何E元素之后的同级F元素. div ~ p{ background-color ...

    随机推荐

    1. bzoj2296【POJ Challenge】随机种子*

      bzoj2296[POJ Challenge]随机种子 题意: 求一个≤10^16的数,使这个数包含123456789且为x的倍数.x≤1000000. 题解: 16-6刚好等于10.因此我们可以直接 ...

    2. P2070 刷墙 (洛谷)

      题目描述 Farmer John已经设计了一种方法来装饰谷仓旁边的长栅栏(把栅栏认为是一根一维的线).他把一只画刷绑在他最喜爱的奶牛Bessie身上,之后就去喝一杯冰水,而Bessie隔着栅栏来回走, ...

    3. IDEA 编译 Jmeter 5.0

      IDEA 编译 Jmeter 5.0 1.下载源码后解压,我这边下载的是最新的『apache-jmeter-5.0_src.tar』,解压. 2.解压后 修改下列两个文件 eclipse.classp ...

    4. 在Spring Bean的生命周期中各方法的执行顺序

      Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下十种: 通过实现 InitializingBe ...

    5. ContiPerf

      概述 ContiPerf 是一个轻量级的单元测试工具,基于JUnit 4二次开发,使用它基于注解的方式,快速在本地进行单元压测并提供详细的报告. Example 1. 新建 SpringBoot 工程 ...

    6. 跟老刘学运维day02~新手必须掌握的Linux命令(2)

      第2章 Linux命令 1.Shell 计算机硬件:由运算器.控制器.存储器.输入/输出设备等共同组成 Shell:人与硬件的翻译官,人要想使用硬件,需要服务程序 Bash四大好处: (1)通过上下方 ...

    7. 《Python编程第4版 上》高清PDF|百度网盘免费下载|Python基础编程

      <Python编程第4版 上>高清PDF|百度网盘免费下载|Python基础编程 提取码:8qbi  当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为 ...

    8. 简单了解InnoDB底层原理

      存储引擎 很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身.那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的? 其实存储引擎也很简单,我认为就是一种 ...

    9. windows异常-环境变量

      问题现象: 高级设置:windows 找不到文件 %windir%\systempropertiesadvanced.exe 请确定文件是否正确后,再试一次 基础信息: windows7 专业版 问题 ...

    10. docker容器dns之resolv.conf

      基础信息 操作系统:CentOS Linux release 7.2.1511 (Core) Docker版本:Server Version: 1.9.1 拉取基础镜像 Rhel:7.2 为直接从do ...