类选择器 .
class属性的值与类选择器一一对应
ID选择器 #
id选择器的名字是唯一的,虽然两个一样的不报错,但不能那么写
通配符选择器 *
通配符选择器: 定位当前HTML页面中所有元素
* 应用: 用来设置当前HTML页面的默认样式
* 问题: 该选择器的性能不好
属性选择器 []
可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。
HTML元素之间的关系分为三种:
后代选择器包含该元素中所有包裹的元素 如下图所示:
<style>
.C {
width: 500px;
height: 300px;
}
.C1 {
width: 300px;
height: 200px;
}
.C2 {
width: 200px;
height: 100px;
}
/*
定位的是 .ancestor 的后代为 div 的元素
* 后代选择器包含该元素中所有包裹的元素
*/
.C div {
background-color: lightcoral;
}
</style>
</head>
<body>
<div class="C">
18级启嘉班
<div class="C1">
19级启嘉班
<div class="C2">20级启嘉班</div>
</div>
</div>
</body>
效果: C1和C2都是C的后代,所以C1和C2都有颜色
子级选择器 定位的是为子级的元素 如下所示:
?
<style>
.C { /*C的颜色覆盖区域*/
width: 500px;
height: 30px;
}
?
.C1 { /*C1的颜色覆盖区域*/
width: 300px;
height: 20px;
}
?
.C2 { /*C2的颜色覆盖区域*/
width: 200px;
height: 20px;
}
?
/*
定位的是 .C 的子级为 div 的元素
*/
.ancestor>div {
background-color: lightcoral;
}
</style>
</head>
?
<body>
<div class="C">
18级启嘉班
<div class="C1">
19级启嘉班
<div class="C2">20级启嘉班</div>
</div>
</div>
</body>
效果: C的子级是C1所以,C1的地方有颜色
相邻兄弟选择器(只能找后面的div,不能找前面的)如下所示
?
<style>
.C {
width: 500px;
height: 20px;
}
?
.C1 {
width: 300px;
height: 20px;
}
?
.C2 {
width: 200px;
height: 20px;
}
?
/*
定位的是 .C2 的子级为 div 的元素
*/
.C2+div {
background-color: lightcoral;
}
</style>
</head>
?
<body>
<div class="C">
18级启嘉班
<div class="C1">
19级启嘉班
<div class="C2">20级启嘉班</div>
<div class="C2">21级启嘉班</div>
<div class="C2">22级启嘉班</div>
</div>
</div>
</body>
效果如下: 相邻兄弟选择器只能找后面的,C2相邻的是C3,所以C3有颜色
普通兄弟选择器 (找到后面所有的兄弟)
<style>
.C {
width: 500px;
height: 20px;
}
?
.C1 {
width: 300px;
height: 20px;
}
?
.C2 {
width: 200px;
height: 20px;
}
?
/* 定位的是 .C3 的后面兄弟为 div 的元素 */
.C3~div {
background-color: lightcoral;
}
</style>
</head>
?
<body>
<div class="C">
18级启嘉班
<div class="C1">
19级启嘉班
<div class="C2">20级启嘉班</div>
<div class="C3">21级启嘉班</div>
<div class="C4">22级启嘉班</div>
<div class="C5">23级启嘉班</div>
<div class="C6">24级启嘉班</div>
</div>
</div>
</body>
效果:
给所有的选择器选中的标签设置属性。以","隔开,如下所示
?
<style>
/* 为 <h1> ~ <h4> 元素的文本内容设置相同颜色 */
/* h1 {
color: lightcoral;
}
?
h2 {
color: lightcoral;
}
?
h3 {
color: lightcoral;
}
?
h4 {
color: lightcoral;
}
*/
/* 通过并集选择器进行改写 */
h1,h2, h3, h4{
color: lightcoral;
}
</style>
?
<body>
<h1>标题一</h1>
<h2>标题二</h2>
<h3>标题三</h3>
<h4>标题四</h4>
</body>
效果:h1~h4颜色相同,可以用并集选择器集合起来
<!DOCTYPE html>
<html lang="en">
?
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>交集选择器</title>
<style>
p {
color: lightcoral;
}
?
.cls {
color: lightskyblue;
}
?
/* 交集选择器 */
p.cls {
color: magenta;
}
</style>
</head>
?
<body>
<p>18级启嘉班</p>
<p class="cls">19级启嘉班</p>
<p>20级启嘉班</p>
<div class="cls">启嘉网</div>
</body>
?
</html>
效果:交集改变了19级启嘉班的颜色
下一节更新CSS的其他的选择器
SS 的伪类选择器和伪元素选择器,让 CSS 有了更为强大的功能。
伪类大家听的多了,伪元素可能听到的不是那么频繁,其实 CSS 对这两个是有区分的。
有个错误有必要每次讲到伪类都提一下,有时你会发现伪类元素使用了两个冒号 (::) 而不是一个冒号 (:),这是 CSS3 规范中的一部分要求,目的是为了区分伪类和伪元素,大多数浏览器都支持下面这两种表示方式。
通常而言,
符合标准而言,单冒号(:)用于 CSS3 伪类,双冒号(::)用于 CSS3 伪元素。
当然,也有例外,对于 CSS2 中已经有的伪元素,例如 :before,单冒号和双冒号的写法 ::before 作用是一样的。
所以,如果你的网站只需要兼容 webkit、firefox、opera 等浏览器或者是移动端页面,建议对于伪元素采用双冒号的写法,如果不得不兼容低版本 IE 浏览器,还是用 CSS2 的单冒号写法比较安全。
言归正传,今天要说的就是:focus-within 伪类选择器。
它表示一个元素获得焦点,或,该元素的后代元素获得焦点。划重点,它或它的后代获得焦点。
这也就意味着,它或它的后代获得焦点,都可以触发 :focus-within。
:focus-within 的冒泡性
这个属性有点类似 Javascript 的事件冒泡,从可获焦元素开始一直冒泡到根元素 html,都可以接收触发 :focus-within 事件,类似下面这个简单的例子这样:
就是这样:
这个选择器的存在,让 CSS 有了进一步的让元素持久停留在一种新状态的的能力。
下面几个例子,看看 :focus-within 可以提供什么能力,做些什么事情。
它或它的后代获得焦点,这一点使得让感知获焦区域变得更大,所以,最常规的用法就是使用 :focus-within 感应用户操作聚焦区域,高亮提醒。
下面的效果没有任何 JS 代码:
这里是什么意思呢?:focus-within 做了什么呢?
核心思想用 CSS 代码表达出来大概是这样:
运用上面思想,我们可以把效果做的更炫一点点,在某些场景制作一些增强用户体验的效果:
在之前的一篇文章里,介绍了两种纯 CSS 实现的 TAB 导航栏切换方法:
纯CSS的导航栏Tab切换方案
现在又多了一种方式,利用了 :focus-within 可以在父节点获取元素获得焦点的特性,实现的TAB导航切换:
主要的思路就是通过获焦态来控制其他选择器,以及最重要的是利用了父级的 :not(:focus-within) 来设置默认样式:
:focus-within 一个人能力有限,通常也会配合其他伪类实现一些不错的效果。这里要再简单介绍的是另外一个有意思的伪类 :placeholder-shown。
意思大概就是,当 input 类型标签使用了 placeholder 属性有了默认占位的文字,会触发此伪类样式。配合:not()伪类,可以再改变当默认文字消失后的样式,再配合本文的主角,我们可以实现表单的一系列效果。
CSS 代码大概呈现成这样:
实际效果如下:
可以看到,上面的效果没有用到任何 JS,可以实现:
这个是其他很多文章都有提到过的一个功能,利用 focus-within 便捷的实现离屏导航,可以说将这个属性的功能发挥的淋漓尽致:
实现掘金登录动效切换
juejin.im是我很喜欢的一个博客网站,它的登录有一个小彩蛋,最上面的熊猫在你输入帐号密码的时候会有不同的状态,效果如下:
利用本文所讲的 focus-within ,可以不借助任何 Javascript,实现这个动效:
兼容性
好了,例子举例的也差不多了,下面到了杀人诛心的兼容性时刻,按照惯例,这种属性大概率是一片红色,看看 CANIUSE,截图日期(2018/08/02),其实也还不算特别惨淡。
原文出处:https://www.cnblogs.com/coco1s/p/9406413.html 作者:ChokCoco
于现在Win11系统已经正式推出了,不少小伙伴都更新了Win11系统,但是Win11系统有不少地方和Win10系统不一样,因此有不少小伙伴不清楚Win11如何更改默认打开方式,那么今天让小编来教一教大家要怎么操作吧。
Win11更改默认打开方式的方法
1、鼠标单击需要更改的文件,找到Properties属性选项。
2、在打开的菜单窗口中找到change按钮。
3、选择新的打开方式,点击OK键确定保存即可。
以上是来自小白官网的一篇文章(www.xiaobaixitong.com)
*请认真填写需求信息,我们会在24小时内与您取得联系。