那些被遗忘的选择器

在IE6~8“统治”网络世界的时代,CSS2版本曾经推出过几种选择器,而这几种选择器由于对IE6支持程度较差,使得前端开发工程师不得不将其舍弃。而今,IE6已逝,赶紧把这些方便快捷的选择器用在日常的开发当中吧!

1、伪类选择器 :first-child

2、子代选择器 .wrap > p

3、毗邻选择器 .con + p

伪类选择器 :first-child

说到:first-child,很多人会联想到:last-child,但是请务必注意::first-child和:last-child并非“师出同门”。

:first-child是CSS2版本时代提出的伪类选择器,得到了IE7及IE7以上的各个主流浏览器的支持;

:last-child是CSS3版本时代提出的伪类选择器,得到了IE9及IE9以上的各个主流浏览器的支持。

当IE6逝去,IE8还“苟延残喘”之时,:last-child这种CSS3选择器还不能够在PC平台施展拳脚。

:first-child的主要用途

替代传统的margin负值应用,解决“多个类似标签中,只有某个标签的边框或边距与其他不同”的需求。

:first-child的应用场景

:first-child代码实例

如上第一个场景的样式与结构代码:

.con {

padding: 20px;

border: 1px solid black;

}

.con div {

height: 50px;

border-top: 2px dashed red;

line-height: 50px;

}

.con div:first-child {

border: none;

}

HTML5学堂
原来技术可以通俗易懂
每周一周四与您分享技术文章
不定期更新“学堂闲谈”

如上第二个场景的样式与结构代码:

.box {

width: 340px;

border: 1px solid red;

}

.box div {

float: left;

width: 100px;

height: 100px;

margin-left: 20px;

background: #39f;

}

.box div:first-child {

margin: 0;

}

:first-child
便捷的伪类选择器
快快用起来

子代选择器 >

子代选择器也是使用多个选择器的组合来找到要控制的标签,不同的选择器之间使用大于号“>”分隔。整体的原理与后代选择器类似,所不同的是,子代选择器仅仅选择到的是一代,而非所有后代。得到了IE7及IE7以上的各个主流浏览器的支持。

子代选择器基本语法

选择器名1 > 选择器名2 > … > 选择器名n {

属性名: 属性值;

属性名: 属性值;

}

子代选择器的主要用途

起名字一直都是前端开发工程师的烦心事,子代选择器能够帮我们减少代码中的类名数量,同时,标签选择时的部分情况下,不需要刻意规避一些标签,选择起来更灵活。

子代选择器的应用场景

不采用子元素选择器时的结构代码

当不采用子元素选择器时,要考虑选择器的控制范围,由于在内容区域(类名为con的div)当中,会在此有可能出现h1~h6、p、ul、ol、div等各类标签,因此,针对“文章大标题”、“文字信息”以及“文章内容包含框”几个元素,就必须单独起类名,进行控制,使用“.arc .tit”“.arc .con”等后代选择器进行样式控制。

采用子元素选择器时的结构代码

当采用子代选择器的时候,类名为arc的div当中,第一层标签和第二层标签的样式,就可以进行单独控制,此时如果希望控制如上代码中第二级别的标签样式,只需要使用“.arc > h1”、“.arc > p”、“.arc > div”等选择器。如果希望控制第三级别甚至第四级别的标签样式,可以使用“.arc > div p”此类选择器来实现。

毗邻选择器 +

毗邻选择器,也称为相邻选择器。使用 + 号连接两个选择器。用于选择当前标签的下一个兄弟级元素。得到了IE7及IE7以上的各个主流浏览器的支持。

+(毗邻)与~(兄弟)

提到+(毗邻选择器),对CSS3比较熟悉的工程师有可能会想到~(通用兄弟选择器)。通用兄弟元素选择器是CSS3新增加的一种选择器,得到了IE9及IE9以上的各个主流浏览器支持。与毗邻选择器类似的地方在于:需要在同一个父元素之中。与毗邻选择器不同的地方在于:这种选择器将选择某元素后面的所有兄弟元素。

兄弟选择器语法

E ~ F {/* 样式代码 */}

代码含义:匹配任何在E元素之后的同级F元素。

毗邻选择器的主要用途

相对:first-child和子选择器而言,毗邻选择器的使用场景比较少,可以利用该选择器来减少类名的设置。内容较多的列表部分可以使用该选择器。

毗邻选择器应用场景

如果不采用毗邻选择器,对于“文章分类、发布时间”、“作者、阅读量”这两行,就需要通过类名进行区分,例如如下结构:

如果采用毗邻选择器,可以调整为如下结构:

对于第一个div,可以使用“.arc > h1 + div”选择器选取,对于第二个div,可以使用“.arc > p + div”这个选择器选取。

好啦,几种选择器介绍完了,赶紧在自己的开发当中把它用起来吧~!

HTML5学堂微信~欢迎扫码关注

html5子代选择器,伪类、子代、毗邻选择器 — IE6已逝,这些优秀的选择器你怎能不用?...相关推荐

  1. 03-高级选择器,属性选择器,伪类选择器

    高级选择器分为: 后代选择器 子代选择器 并集选择器 交集选择器 后代选择器 使用空格表示后代选择器.顾名思义,父元素的后代(包括儿子,孙子,重孙子) .container p{color: red; ...

  2. CSS3 属性选择器 伪类选择器 盒模型 圆角 阴影 CSS定位和浮动

    HTML是网页的裸框架,但是现在已经是2020年了,你再做出一个80年代的网页来,恐怕是没HR要你了.所以学习CSS的重要性可想而知,CSS用途很广,是一门独立的编程语言,能美化网页,也能进一步提高自 ...

  3. html5新增的伪类选择器有,CSS3新增了哪些选择器?(属性、结构伪类、伪元素选择器)...

    在css3提供的新选择器之前,选择一个元素需要借助id或者class,css3新增的选择器可以更灵活的去选择需要的元素,那css3提供了哪些好用的选择器呢? 首先就是属性选择器,我们可以通过属性选择器 ...

  4. 第7章-选择器+伪类

    一.选择器 1.基础选择器 通配符选择器 标签/元素选择器 类选择器 id选择器 2.高级选择器 E,F (多元素选择器) 同时匹配所有E元素或F元素,E和F之间用逗号分隔 eg: div,p{wid ...

  5. 前端 CSS的选择器 伪类选择器

    伪类选择器 常用的几种伪类选择器. 伪类选择器一般会用在超链接a标签中 没有访问的超链接a标签样式: a:link {color: blue; } <!DOCTYPE html> < ...

  6. css3-属性选择器 伪类:root :not() :first-of-type :first-child 伪元素 ::first-letter ::first-line ::selection等等

    用户代理(User Agent,简称UA)是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等 属性选择器 语法 E[a ...

  7. 【CSS 教程系列第 12 篇】什么是 CSS 中的伪类选择器

    这是[CSS 教程系列第 12 篇],如果觉得有用的话,欢迎关注专栏. CSS 的选择器有很多,常用的有 元素选择器.id 选择器.class 选择器.后代选择器.子代选择器.并集选择器.交集选择器. ...

  8. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡

    https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...

  9. css定位-css新增选择器(内减,属性,伪类,2d变换,过渡)

    目录 一.定位(重点) 1.静态定位 2.相对定位 3.绝对定位 4.固定定位 5.定位元素的层叠效果 二.css3和css2的区别 1.内减模式 2.新增属性选择器 3.新增伪类选择器 4. 2d变 ...

最新文章

  1. 新手必会的 9 个 Python 技巧!
  2. 《强化学习周刊》第37期:视觉深层框架、Transformer World模型、注意力增强强化学习...
  3. 【测试面试题】显示输入数字中的最大值
  4. CVPR 2021 involution:超越convolution和self-attention的神经网络新算子
  5. 在实践中使用延迟队列
  6. Ubuntu下apt-get命令详解(转)
  7. html生成pdf表格线加粗,iText 用 HTMLWorker 转换 HTML 为 PDF 时可设置表格列宽度
  8. struts2中action之间的一种跳转
  9. C++与Rust变量声明的比较
  10. robot framework接口自动化测试post请求
  11. iphone 模拟器截图
  12. Unity游戏引擎介绍及相关学习资源
  13. 用java编写进制转换器_JAVA 简单进制转换器
  14. MarkText ctrl+num 切换 标题级别快捷键 失效问题
  15. SystemUI添加第三方快捷开关时灰显问题分析
  16. stm32f105vct6例程_stm32f105例程 CAN500K USART_LED
  17. Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)
  18. tensorflow代码全解析 -3- seq2seq 自动生成文本
  19. 【Qt】.qrc文件为项目添加图片、动画、音效、视频等资源文件
  20. java中next()和nextline()用法区别(详细说明)

热门文章

  1. 1 色相、饱和度、明度定义
  2. Object Removal by Exemplar-Based Inpainting 概括(附源码)
  3. seamle***dp+rdesktop完美结合
  4. 【微服务】Spring Cloud 基础
  5. 在线运行 Linux,真滴牛逼。
  6. 百度ueditor富文本--PC端单个,PC端多个,mobile单个,mobile多个
  7. Cover Letter Response Letter
  8. NOI Online 2020 Round3 滚粗记
  9. 办理公司经营贷款需要什么条件呢?-民兴商学院
  10. 条件极值例题_条件极值与函数习题课.doc