html5新增的伪类选择器有,CSS3新增了哪些选择器?(属性、结构伪类、伪元素选择器)...
在css3提供的新选择器之前,选择一个元素需要借助id或者class,css3新增的选择器可以更灵活的去选择需要的元素,那css3提供了哪些好用的选择器呢?
首先就是属性选择器,我们可以通过属性选择器在同样的标签/类中选择出具有相同属性的元素,不用额外再添加class或者id。
比如需要选择出input标签中具有value属性的内容,就可以按以下方式// css
input[value]{
color: #333;
}
// html
属性选择器还有以下匹配规则(E表示选择器,att表示属性值,val表示匹配的内容)选择符简介E[att]具有att属性的E元素
E[att=val]具有att属性且值为val的E元素
E[att^=val]具有att属性且值以val开头的E元素
E[att$=val]具有att属性且值以val结尾的E元素
E[att*=val]具有att属性且值包含val的E元素
选择出input标签中type为password的元素// css
input[type=password]{
color: #000
}
// html
选择出div标签中class以movie开头的元素// css
div[class^=movie]{
color: brown
}
// html
按照以上五种属性选择规则,可以自由的选择具有某些特征的元素,那么如果此时我需要选择的元素没有单独的属性呢。
比如我想要在一串列表中选择出奇数项和偶数项元素,分别设置不同的背景颜色,此时就需要结构伪类选择器登场了。
结构伪类选择器可以按下标选出指定项,比如第一项 :first-child,最后一项 :last-child,奇数项 :nth-child(even),偶数项 :nth-child(odd),第任何一项 :nth-child(n)
拿上述选择器做一个演示// html
- 千与千寻的神隐
- 起风了
- 龙猫
- 天空之城
- 魔女宅急便
// css
ul :first-child {
color: brown // 选择ul的第一个子元素设置字体颜色为棕色
}
ul :last-child {
text-decoration: underline; // 选择ul的最后一个子元素设置下划线
}
ul :nth-child(even){
font-weight: bold; // 选择ul的偶数子元素 设置字体加粗(下标从1开始)
}
可以看到,以上每一个伪类选择器与前一个选择器并没有直接连在一起,都有一个空格,那连在一起表示什么意思呢?拿 :first-child来举例,:last-child和 :nth-child都是类似的原理ul :first-child 表示选择ul里的第一个子元素
ul:first-child 表示选择第一个ul元素
以下为 ul:first-child
如果我们需要对子元素的选择器属性进行校验,希望选择ul里的第一个子元素,并且是li,那么就可以这样定义ul li:first-child
但是如果第一个元素与选定的元素不匹配,那么设置的样式就不会生效// css
div p:first-child {
color: brown // 先找到div的第一个子元素,发现它并不是p元素,所以样式不生效
}
// html
p----起风了
p----龙猫
h6----天空之城
那如果,我们想要选择div下面的第一个p元素呢?此时就可以使用 :first-of-type// 表示选择div下p元素的第一个子元素
div p:first-of-type {
color: brown
}
那如果没有限定指定的子元素类型,所有的不同类型的子元素都会被设置样式// css
div :first-of-type {
color: brown
}
与 :first-of-type 类似的还有以下两种选择器,分别是 :last-of-type(选择某种类型的最后一个子元素),:nth-of-type(按指定规则选择元素)// css
div :first-of-type {
color: brown
}
div :last-of-type {
text-indent: 10px;
}
div :nth-of-type(2n+1) {
text-decoration: underline;
}
来一个表格总结以下以上六种结构伪类选择器选择符简介备注E :first-child选择E元素的第一个子元素E A:first-child(选择E元素的第一个子元素,且该子元素是A类型元素)
E :last-child选择E元素的最后第一个子元素E A:last-child(选择E元素的最后第一个子元素,且该子元素是A类型元素)
E :nth-child(n)选择E元素的指定规则元素,比如 1、2、3这样的数字,even(偶数)、odd(基数)这样的关键字,n或者2n+1这样的表达式E A:nth-child(n)(选择E元素中符合指定规则的子元素,且该子元素是A类型的元素)
E :first-of-type选择E元素中不同类型的子元素中的第一个E A:first-of-type(选择E元素中子元素为A,A元素中的第一个)
E :last-of-type选择E元素中不同类型的子元素中的最后一个E A:last-of-type(选择E元素中子元素为A,A元素中的最后一个)
E :nth-of-type(n)选择E元素的不同类型的指定规则E A:nth-of-type(选择E元素中子元素为A,A元素的指定规则)
以上的属性选择器和结构伪类选择器都是操作元素本身,那接下来这个选择器就很神奇,它会添加一个新的不存在的元素,并操作,一起来看看伪元素选择器。
伪元素选择器有两个,::before,在元素的前面添加一个行内元素,::after,在元素的后面添加一个行内元素,需要添加两个冒号,为了兼容,也可以只写成一个冒号
设置伪元素,必须的属性是 content,其它的属性可以根据自己的需要设置,它常见的有以下几种用途,添加一个小图标,比如圆点,箭头
实现代码如下// css
div {
position: relative;
}
div::after {
position: absolute;
top: 7px;
left: 70px;
content: '';
display: block;
width: 7px;
height: 7px;
border-right: 1px solid #333;
border-top: 1px solid #333;
transform: rotate(45deg)
}
// html
或者设置鼠标滑动后添加一个遮罩层,效果显示如下
实现代码如下
// css
div{
position: relative;
width: 200px;
height: 200px;
margin-right: 60px;
}
img {
width: 100%;
height: 100%;
}
div::after {
display: none;
position: absolute;
top: 0;
left: 0;
content: '';
width: 100%;
height: 100%;
background: url(./src/broadcast.png) rgba(0,0,0,.5) center center no-repeat
}
div:hover::after{
display: block;
}
// html
css3增加的以上选择器可以减少html的结构,更加灵活的获取需要的元素
html5新增的伪类选择器有,CSS3新增了哪些选择器?(属性、结构伪类、伪元素选择器)...相关推荐
- 创建一个Dog类,初始化构造方法具有name和age属性。Dog类具有坐和打滚的方法。请编写相应的类并创建对象调用该类。
创建一个Dog类,初始化构造方法具有name和age属性.Dog类具有坐和打滚的方法.请编写相应的类并创建对象调用该类. class Dog(object):def __init__(self,nam ...
- html5类选择器选择权重,Python Html5和CSS3的新增功能:CSS权重与CSS3新增选择器
一.CSS权重概念 CSS权重概念:指的是样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式. 二.权重的等级 2.1.权重的等级划分 ...
- php伪类,CSS3新增伪类
p:last-of-type 选择其父元素的最后的一个P元素 p:last-child 选择其父元素的最后子元素(一定是P才行) p:first-of-type ...
- CSS3新增-属性(长度颜色背景)选择器-盒子模型
属性(长度颜色背景)选择器-盒子模型 1 CSS3 基本语法 1.1 CSS3 浏览器私有前缀 Chorme: -webkit- Safari: -webkit- IE; -ms- Firefox: ...
- CSS3与页面布局学习笔记(一)——概要、选择器、特殊性与刻度单位
web前端开发者最最注的内容是三个:HTML.CSS与JavaScript,他们分别在不同方面发挥自己的作用,HTML实现页面结构,CSS完成页面的表现与风格,JavaScript实现一些客户端的功能 ...
- CSS3新增属性大全!
1 CSS3 基本语法 1.1 CSS3 浏览器私有前缀 Chorme: -webkit- Safari: -webkit- IE; -ms- Firefox: -moz- Opera: -o- 1. ...
- 假装Python高手,你真的懂属性描述符类!
Python学了好几年,发现功力还是那样,很多同学经常这样抱怨!都说Python入门容易,精通难,确实是这样的,每当我们打开一些牛逼的源码框架,进去看窥探大牛的源码,比如Python里面非常著名的Dj ...
- web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡
https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...
- 【04】HTML5+CSS3:01-HTML5新增标签、多媒体标签、input标签、新增表单属性、CSS3属性选择器、伪元素选择器、2D转换
文章目录 HTML5 第一天 一.什么是 `HTML5` 二.`HTML5 ` 新增标签 三.多媒体音频标签 四.多媒体视频标签 五.新增 input 标签 六.新增表单属性 七.`CSS3 ` 属性 ...
最新文章
- redis6.0中的多线程
- 外联css及js的使用
- 关于前端与微信交互账号绑定的问题
- 【upc 9523】Shopping II
- iOS经典面试题之深入分析“内存平移”的原理
- mac运行python速度慢_python-3.x – Pygame简单循环在Mac上运行得非常慢
- [Objective-C语言教程]动态绑定(32)
- bash awk_Bash指南,Linux终端技巧,DevOps错误,Python,awk,NASA等
- python类takes no arguments_Python构造函数报错:TypeError: People() takes no arguments
- jquery的ajax异步请求接收返回json数据
- Java实现穷举_LeetCode 28:实现strStr() Implement strStr()
- @RequestParam和@RequestBody和@PathVariable用法小结
- html让ie11不用兼容视图,如何设置ie11浏览器兼容性视图?
- SDRAM 控制器(六)——仲裁模块
- 仓储管理之盘点——盘点方法
- iphone开发:ipa打包
- 国家一级建造师——工程经济——第一章——第二节
- 人民币即期汇率近六年首次跌破6.70 对国际消费影响几何
- 全国软考中级软件设计师 学习笔记-法律法规部分
- 饥荒联机版连不上服务器_饥荒无法连接klei服务器刷不出服务器解决办法
热门文章
- 985高校发布讣告:终年43岁!本月已有3位年轻教师去世…
- mmall数据库学习笔记
- 中秋节随性作诗一首,送给新入学的大学学子们,也送给在外打拼的程序员们!
- VMware15无法打开16的镜像解决办法
- “云计算”借CRM蝶变 落地成定局
- 葛洲坝电力集团责任有限公司改变不一样的风格
- matlab 图 导出,导出到图像
- MATLAB Simulink
- MathWorks 中国
- iOS---邓白氏编码的申请
- Qt下实现简单工厂设计模式
- (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)