(05)2020-12-07(选择器)
选择器
- 一、四种基本元素选择器
- 1,标签选择器
- 2,ID选择器
- 3,类选择器 (class选择器)
- 3,通配选择符 (*)
- 二、四种关系选择器
- 1,后代选择器(空格)
- 2,子代选择器(>)
- 3,相邻选择器(+)
- 4,兄弟选择器(~)
- 三、交集和并集选择器
- 1,交集选择器(选择器之间没有任何符号)
- 2,并集选择器(选择器之间用,隔开)
- 四、伪类选择器
- 1,序选择器
- E:first-child{}
- E:last-child{}
- E:only-child{}
- 2,nth-child(n)选择器
- 3,nth-of-type(n)选择器
- (1) E:first-of-type{}
- (2)E:last-of-type {}
- (3)E:only-of-type {}
- (4)E:nth-of-type(n) {}
- 4,伪类选择器(超链接应用)
一、四种基本元素选择器
1,标签选择器
选择器的功能:
选中要添加样式的标签元素。什么是标签选择器?
通过标签名直接选择相应的标签。
不管有多复杂的嵌套关系,标签的位置就算藏得很深,依然可以被标签选择器命中。格式:
标签名{
声明;
}
div{color: red;}p{background-color: sandybrown;}a{text-decoration: none;}li{list-style: none;}
- 标签选择器的作用:
1.利用标签选中所有的特性,进行默认样式的清除。
2.复杂选择器中一部分使用。
2,ID选择器
在标签中添加ID属性。
- ID选择器作用:
选中页面中唯一的一个标签。 - 格式:
#ID值{
声明;
} - 【注】:
1.id值必须是唯一的,在一个页面中只能出现一次。如果多次出现重复的ID值是不符合规范的。
2.所有的标签都有ID属性。ID命名的规范:由字母,下划线,中划线,数字组成。不能以数字开头。
3.见名知意。不要起毫无意思的名字。
4.驼峰写法:SearchButton(大驼峰) searchButton(小驼峰,推荐) 多个单词,从第二个单词开始,每个单词的首字母大写。
5.下划线写法:search_button 多个单词,从第二个单词开始,每个单词的前面添加一条下划线。
【注】:id选择器尽量不要在css中使用,而是配合js使用。
#div2{color: red;}#p1{color: red;}
3,类选择器 (class选择器)
类选择器:
给标签添加一个class属性。通过标签中的class属性来选择标签
- 格式:
.class值{
声明;
} - 优点:可以选择一部分标签,设置相同的样式。
- 【注】
1.class值可以不唯一。类选择器选中的是拥有相同class值的标签元素。
2.一个标签可以拥有多个class值。
3.命名规则与ID相同。
类写样式,ID写行为。
<div>我是div1</div><div class="redFont div1">我是div2</div><div>我是div3</div><p class="redFont">年轻人不讲武德</p><p class="redFont">我大意了没有闪</p>
样式:<style>.redFont{color: red;}.div1{background-color: seagreen;}</style>
3,通配选择符 (*)
选中所有标签(包含body标签)。
- 慎用
通常不建议使用通配选择符,因为它会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用。 - 使用场景:
清除默认的样式。
样式:<style>*{color: seagreen;/* 外边距 */margin: 0;/* 内边距 */padding: 0;}</style>
二、四种关系选择器
1,后代选择器(空格)
通过标签的嵌套关系,来缩小选择范围,在范围内查找相关的元素。
- 格式:
选择器1 选择器2{
声明;
}
选择器1必须是选择器2的祖先元素(包括父元素)。
IE7开始兼容,IE6不兼容。
【注】
1.定义时,选择器之间使用空格隔开。空格左侧必须是右侧的祖先元素。
2.当要把某些元素中的某些元素进行样式修改时,就要想要使用后代选择器。
<p><span>我是span标签3</span></p>
样式:<style>p span{background-color: rebeccapurple;}</style>
2,子代选择器(>)
通过标签间的嵌套关系,来选中相应标签的子元素。
- 格式:
选择器1>选择器2{
声明;
【注】>左右两边的关系必须是父子关系。
<div><p><span>我是span标签</span></p></div>
样式:<style>div>p{background-color: rosybrown;}</style>
3,相邻选择器(+)
- 格式:
选择器1+选择器2{
声明;
} - 选择紧贴在选择器1元素之后的选择器2元素,选择器1与选择器2,两者必须同属于一个父级。
- 与 兄弟选择符(选择器1~选择器2) 相同的是,相邻选择符也是选择同级的元素;
- 不同的是,相邻选择符只会命中符合条件的那个毗邻的兄弟元素(即紧挨着选择器1元素之后的第一个选择器2元素)。
【注】IE7兼容,IE6不兼容。
<p>去年今日此门中</p><h3>题都城南庄</h3><!-- <span>崔户</span> --><p>去年今日此门中</p><p>人面桃花相映红</p><p>人面不知何处去</p><p>桃花依旧笑春风</p>
样式:<style>h3 + p{color: red;}</style> 运行结果为诗句“去年今日此门中”字体颜色变为红色。
若是:
<p>去年今日此门中</p><h3>题都城南庄</h3><span>崔户</span><p>去年今日此门中</p><p>人面桃花相映红</p><p>人面不知何处去</p><p>桃花依旧笑春风</p>
样式:<style>h3 + p{color: red;}</style> 运行结果为诗句“去年今日此门中”字体无变化。因为紧邻h3之后的第一个标签是span标签。且span标签中的内容“崔户”样式也无变化。
4,兄弟选择器(~)
- 语法格式:
选择器1 ~ 选择器2{
声明;
}
选中的是选择器1元素之后的所有同级的选择器2元素。选择器1与选择器2必须同属一个父级。
<p>去年今日此门中</p><h3>题都城南庄</h3><p>去年今日此门中</p><p>人面桃花相映红</p><p>人面不知何处去</p><p>桃花依旧笑春风</p><div><p>明日复明日</p></div>
样式:<style>h3 ~ p{color: red;}</style>
运行结果为诗句“
去年今日此门中
人面桃花相映红
人面不知何处去
桃花依旧笑春风。字体颜色变为红色。
三、交集和并集选择器
1,交集选择器(选择器之间没有任何符号)
既满足条件1,又满足条件2.
- 格式:
选择器1选择2{
声明;
}
【注】
1.交集选择器如果是标签选择器与类选择器的混写,则必须将标签选择器放在前面。
2.连续交集 既满足条件1,又满足条件2,还满足条件3.
<div><p><span class="nav span1">我是span标签</span></p></div><span>我是span标签2</span><div><h1><p class="nav"><span class="nav">我是span标签3</span></p></h1></div>
样式:<style>span.nav.span1{background-color: blue;}</style>
运行结果为“我是span标签”背景颜色变为蓝色。
2,并集选择器(选择器之间用,隔开)
- 格式:选择器1,选择器2{
声明;
} - 选择器之间使用逗号进行分隔。(可以避免代码冗余)
<h1>我是一级标题</h1><h2>我是二级标题</h2><h3>我是三级标题</h3><p>昨夜西风凋碧树</p><p>一夜鱼龙舞</p><span>我是span标签</span>
样式:<style>h1,h2,span {color: royalblue;}</style>
运行结果为“我是一级标题
我是二级标题
我是span标签”字体颜色变为蓝色。(如下图)
四、伪类选择器
1,序选择器
E:first-child{}
判断当前元素是否为父元素的第一个子元素,如果是,则选中。
格式:
目标元素E:first-child{
声明;
}
E:last-child{}
判断当前元素是否为父元素的最后一个子元素,如果是,则选中。
E:only-child{}
判断当前元素是否为父元素的唯一一个子元素,如果是,则选中。
<ul><li>我是第一个li</li><li>我是第二个li</li><li>我是第三个li</li><li>我是第四个li</li><li>我是第五个li</li>
</ul>
样式:<style>li:first-child{color: royalblue;}li:last-child{color: sandybrown;}/* li:only-child{color: slateblue;} */</style>
运行结果:
2,nth-child(n)选择器
n表示父元素下的第几个子元素。
- 语法格式:
E:nth-child(n){
声明;
}
<ul><li>我是第一个li</li><li>我是第二个li</li><li>我是第三个li</li><li>我是第四个li</li><li>我是第五个li</li>
</ul>
实现奇数列字体颜色显示为蓝色,偶数列字体颜色显示为绿色。有以下2种方式:
1样式:<style>/* n 表示一个乘法因子,可以是0,1,2....自然数 */li:nth-child(2n+1){color: blue;}li:nth-child(2n){color: green;}</style>
或者:
1样式:(使用odd、even实现奇、偶)<style> li:nth-child(odd){ color: blue;} li:nth-child(even){color: green;}</style>
child系列,E元素的父元素最高是body。
type系列,E元素的父元素最高是html。
3,nth-of-type(n)选择器
(1) E:first-of-type{}
- 语法格式:
E:first-of-type{
声明;
}
匹配父元素下第一个类型为E的子元素。
(2)E:last-of-type {}
匹配父元素下的所有E子元素中的倒数第一个。
(3)E:only-of-type {}
匹配父元素的所有子元素中唯一的那个子元素E。
父元素可以有多个子元素,但其中的子元素E必须是唯一的,不能出现多个。
(4)E:nth-of-type(n) {}
选中父元素下的E同类型中的第n个元素
- 格式:
E:nth-of-type(n){
声明;
}
【注】
1.要使该属性生效,E必须是某个元素的子元素,E的父元素最高可以是html。
2.该选择器命中的是父元素中的第n个为E的子元素,不管第n个子元素是否为E.
<div><h3>题都城南庄</h3><h4>崔户</h4><h5>唐朝</h5><p>去年今日此门中</p><p>人面桃花相映红</p><p>人面不知何处去</p><p>桃花依旧笑春风</p></div>
样式:<style>p:nth-of-type(2){background-color: indianred;}</style>
运行结果如下:
4,伪类选择器(超链接应用)
同一个标签,根据不同的状态,拥有不同的样式,这就叫做“伪类”。伪类使用:(冒号)来表示。
格式:
选择器:伪类名{
声明;
}
或表示为:格式:
E:伪类名{
声明;
}伪类选择器大致可分为两种:
(1)静态伪类 只能用于超链接的样式。
E:link 超链接点击之前
E:visited 超链接被访问过之后。
(2)动态伪类 针对所有的标签都适用
E:hover “悬停” 鼠标放在标签上时。
E:active “激活” 鼠标点击标签,不松手时。
(3)特殊 针对表单元素。
E:focus 是某个标签获得焦点时的样式。对于a标签有4种伪类,对应四种状态
a:link 点击之前
a:visited 访问之后
a:hover 鼠标悬停
a:active 激活 鼠标点击时。超链接状态顺序:(lvha (爱恨准则)
a:link {}
a:visited {}
a:hover {}
a:active {}
注意,a:hover 必须位于 a:link 和 a:visited 之后,a:active 必须位于 a:hover 之后.
a:link,a:visisted 一般都是可以省略的,简写在a标签中。一般只需要写a{},a:hover{}
<a href="http://pay.qq.com">点一下就变强</a>
未添加样式时的运行效果:
1,访问之前样式
<style>a:link{text-decoration: none;color: orange;}</style>
运行结果:下划线消失,字体颜色变为黄色。
2,鼠标悬停样式
<style>a:hover {text-decoration: none;background-color: yellow;}</style>
运行结果:下滑线消失,背景色变为黄色。
3,激活样式:
a:active{color: red;}
运行结果:鼠标点击不松手时,字体颜色变为红色。
4,访问之后的样式:
a:visited{color: green;}
运行结果:字体颜色变为绿色。
(05)2020-12-07(选择器)相关推荐
- 2020.12.07.记录
def plot_learning_curve(algo, X_train, X_test, y_train, y_test):"""绘制学习曲线:只需要传入算法(或实例 ...
- 2.react的diff算法(2020.12.07)
正常情况下,比较两个树形结构的差异的算法的时间复杂度为O(n^3),这个效率显然无法直接接收的,react通过总结DOM的实际使用场景提出了两个在绝大多数实践场景下都成立的假设,基于这两个假设,rea ...
- 2.vue的diff算法(2020.12.07)
在之前的生命周期中有提到过虚拟dom的相关概念,这里来简单介绍一个vue的diff算法的原理 1.virtual dom 无论是vue还是react,在更新渲染的过程中,都是先根据真实dom生成一个虚 ...
- 2020/12/07工作小结
1.Q: 关于模型没问题,损失正常下降,降到一定就收敛了,但是精度达不到预期且损失过大. A: 1. 查数据分布,很可能是样本不均衡带来的问题. 2. 有可能模型欠拟合,可以考虑换更大的模型. Q: ...
- 刷题之旅2020.12.05
2020.12.05 1.前中后序 递归/非递归 实现 一.使用栈模拟递归实现过程 先序/中序 public List preinOrder2(TreeNode root){if(root==null ...
- 【2020】07 留校
目录 系列文章 7月 5 9 10 11 12 15 17 18 19 20 22 24 25 26 27 28 29 30 31 系列文章 [2020]02 记录生活 [2020]03 从中二走向理 ...
- 05月12日三支有望飙涨股与操盘策略分析
05月12日(星期二)推荐三只潜力股是: (中科合臣600490)会员在11日早盘以7.05元买入,(普洛股份000739)会员在11日早盘以8.50元买入,(恒顺醋业600305)会员在11日午盘以 ...
- 基于python+uiautomator2,2020.12月最新库的使用方法,更新watcher使用方法
uiautomator2 此库基于2020.12更新版本 这里有一份快速参考,适合已经入门的人 import uiautomator2 as u2d = u2.connect("--seri ...
- 2020.12.17
2020.12.17 1.无重复字符的最长子串(leetcode3) 思路:使用滑动窗口机制 设置右指针移动,其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目 ...
- 2020.12.15
2020.12.15 1.有向图判断是否有环 对于图类问题,首先利用邻接表对图进行表示,如图所示:通常使用List<List>的格式存储表示. 在本题中,输入为[a,b]表示b指向a,所以 ...
最新文章
- Android startActivityForResult()的用法
- 卡联科技与正元地理合作 打造智慧城市
- 【OS】Linux命令如何放到后台运行
- Premiere Pro CS4软件安装教程
- 注意!FOB条款下,发货人还有这些费用要承担?
- ITK:追加两个3D体积
- python 二分类的实例_keras分类之二分类实例(Cat and dog)
- 数据展示_使用Cadvisor监控容器并展示数据
- Ubuntu中恢复rm命令误删文件
- LeetCode 235. 二叉搜索树的最近公共祖先(递归)
- java练手小程序_Java小程序练习
- 如何更改static控件的字体大小
- java语言中的变量有哪2种_变量类型有哪些-在C语言中的实型变量分为2种类型,它们是()和()-电气资讯 - 电工屋...
- 多重共线性的产生原因、判别、检验、解决方法
- 网钛CMS采集插件-无需登陆自动采集发布插件
- 速算扣除法php,关于速算扣除数法的计税方法 这两点必须知道
- 华三防火墙web端口_设置H3C SecPath F100 系列防火墙的web访问
- 英汉对照名言隽语(三)
- 2019.12QQ音乐播放接口最新配置(亲测可用)
- [网易IM通讯]推送小结
热门文章
- TexturePacker命令行使用(command line)
- arduino yun 京东_ArduinoYun教程之配置Arduino Yun环境
- 构建产品“设计,制造,使用”的智慧互联 - Autodesk Forge概述 - 1
- 情不知所起 一 网 而深
- [Unity] 制作游戏 赛车小游戏
- 使用CSS中clip-path属性实现奥运五环
- android 反调试 方案,【木马分析】使用高级反调试与反HOOK的安卓恶意ROOT软件的深度分析(一):NATIVE层的调试...
- 关于加装新的SSD后,机械盘不识别(不显示)的问题解决
- 7、ARM嵌入式系统:LCD/数码管/OLED初始化
- manifold 流形