这些有用的CSS伪类通常被忽略
这些有用的CSS伪类通常被忽略
这篇文章在一定程度上鼓励你在构建UI时使用更简单的CSS和更少的JavaScript。
::first-line 选择文本的第一行
这个选择器用于选取指定选择器的首行。如有如下HTML
<body>
<h1>做工程师不做码农</h1>
<p>如果对你有所启发和帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者的最大鼓励。
作者简介:Web前端工程师,全栈开发工程师、持续学习者。
私信回复:大礼包,送某网精品视频课程网盘资料,准能为你节省不少钱!</p>
</body>
css
p:first-line {
color: lightcoral;
}
效果
::first-letter 选择第一个字母
该伪选择器适用于元素中文本的第一个字母。有如下代码
<body>
<h1>做工程师不做码农</h1>
<p>我的网络ID叫Dunizb</p>
<p>zuo gong cheng shi bu zuo ma nong</p>
<p>My best friend is Mickey</p>
</body>
.innerDiv p:first-letter {
color: lightcoral;
font-size: 40px
}
效果
::selection 选择高亮的(选中的)区域
这个很好理解,就是平常我们鼠标选中文本时的样式。
使用 ::selection 伪类选择器,我们可以将样式应用于突出显示的区域。
div::selection {
color: yellow;
background: red;
}
上面的代码的效果就是:
:root 根元素
:root 伪类选择了文档的根元素。在HTML中,它始终是HTML元素。在RSS中,它是RSS元素。
这个伪选择器最常用于使用CSS变量来存储全局规则值,因为它适用于根元素。
:empty 匹配空项目
该伪选择器将选择没有任何子项的任何元素,元素必须为空。如果元素没有空格、可见内容或子代元素,则该元素为空。
div:empty {
border: 2px solid orange;
}
<div></div>
<div></div>
<div>
</div>
该规则将适用于空的div元素。该规则将适用于第一个和第二个div,因为它们确实是空的,而不是第三个div,因为它有空格。
关于 :empty 的更多详细使用技巧,强烈推荐下面这篇文章
推荐阅读:拒绝JavaScript,这三个CSS技巧你一定用的上
:only-child 选择唯一的子元素
选择器匹配属于其父元素的唯一子元素的每个元素。看如下HTML
<div>
<p>这是一个段落。</p>
</div>
<div>
<span>这是一个 span。</span>
<p>这是一个段落。</p>
</div>
<p><b>注释:</b>Internet Explorer 不支持 :only-child 选择器。</p>
p:only-child {
background:#ff0000;
}
效果如下
:first-of-type 选择指定类型的第一个子元素
与 :first-of-type 相同,但这会影响相同类型的最后一个子元素。
:nth-of-type(n) 选择指定类型的子元素
该选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素。
n 可以是数字、关键词或公式。
<style>
p:nth-of-type(3n+0) {
background:#ff0000;
}
</style>
<body>
<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>
<p>第五个段落。</p>
<p>第六个段落。</p>
<p>第七个段落。</p>
<p>第八个段落。</p>
<p>第九个段落。</p>
</body>
:nth-last-of-type() 选择器相同,只是从最后一个子元素开始计数。
:link 选择一个未访问的超链接
此选择器适用于尚未访问的链接,这通常与带有 href 属性的 a 锚元素一起使用。
a:link {
color: orangered;
}
<a href="/login">Login<a>
这将使所有具有href属性的锚元素(尚未单击以访问其href属性中的页面)具有橙色的文本。
:checked 选择一个选中的复选框
如下所示,将匹配每个已被选中的 input 元素(只用于单选按钮和复选框)。
input:checked {
border: 2px solid lightcoral;
}
<form action="">
<input type="radio" checked="checked" value="male" name="gender" /> 选中的单选框<br>
<input type="radio" value="female" name="gender" /> 单选框<br>
<input type="checkbox" checked="checked" value="Bike" /> 选中的复选框<br>
<input type="checkbox" value="Car" /> 复选框
</form>
该规则适用于所有已单击以选中它的复选框。
不过这个选择器兼容性太差,只有 Opera 支持。
:valid 选择有效的元素
这主要用于表单中的可视化表单元素,通过用户设置的验证。当验证通过时,将使用 valid 属性设置默认元素。
input:valid {
boder-color: lightsalmon;
}
:invalid 选择一个无效的元素
与 :valid 相同,但这将适用于未通过验证测试的元素。
input[type="text"]:invalid {
border-color: red;
}
:lang() 通过指定的lang值选择一个元素
这适用于指定了语言的元素,可以通过以下两种方式进行设置:
p:lang(fr) {
background: yellow;
}
或者
p[lang|="fr"] {
background: yellow;
}
<p lang="fr">段落 1</p>
:not() 取反
一个否定伪选择器选择非的东西,让我们来看一个例子:
.innerDiv :not(p) {
color: lightcoral;
}
<div class="innerDiv">
<p>段落 1</p>
<p>段落 2</p>
<div>Div 1</div>
<p>段落 3</p>
<div>Div 2</div>
</div>
将选择 Div 1 和 Div 2,因为它们不是 p 元素。
这些有用的CSS伪类通常被忽略的更多相关文章
- CSS伪类整理笔记
0 伪元素 虚拟的一个元素,用于向已有的元素添加特殊效果,可用标签元素实现该效果. css3中规定:伪元素的由两个冒号::开头,然后是伪元素的名称.用两个冒号::是为了区别伪类和伪元素(CSS2中并没 ...
- CSS伪类使用详解
基本描述 CSS伪类是很常用的功能,主要应用于选择器的关键字,用来改变被选择元素的特殊状态下的样式. 伪类类似于普通CSS类的用法,是对CSS选择器的一种扩展,增强选择器的功能. 目前可用的伪类有大概 ...
- CSS伪类和伪元素
一.伪类 CSS伪类用于向某些选择器添加特殊的效果,在W3规范中,CSS伪类有如下几个: CSS2.1 :active:向被激活的元素添加样式(激活是指点击鼠标那一下) :focus:向拥有键盘输入焦 ...
- CSS 伪类 (Pseudo-classes)
CSS 伪类用于向某些选择器添加特殊的效果. CSS 伪类 (Pseudo-classes)实例: 超链接 本例演示如何向文档中的超链接添加不同的颜色. 超链接 2 本例演示如何向超链接添加其他样式. ...
- CSS伪类选择器
一.CSS伪类选择器用于给某些选择器添加效果语法规则:选择器:伪选择器例:a:link {color: #FF0000} 未访问的链接 a:visited {color: #00FF00} 已访问的链 ...
- CSS伪类与CSS伪元素的区别及由来
关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...
- CSS 伪类
Link The :link CSS pseudo-class lets you select links inside elements. This will select any link whi ...
- CSS伪类
CSS伪类:控制元素的某种状态 语法:元素名称:伪类名称{属性:值} CSS伪类控制链接状态 状态 语法 未访问的链接 a:link{color:#ff00ff} 已访问的链接 a:visited{c ...
- 应用越来越广泛的css伪类
说起css伪类,学习web前端网页设计的同学们应该对此应该不是很陌生,以前很多的网页的特效大多是通过js来实现的.但是随着CSS3不断开发,利用css实现网页的特效不仅响应不错,而且还减少了很多的代码 ...
- (五)CSS伪类(Pseudo-class)
CSS伪类用于向某些选择器添加特殊的效果.伪类的语法如下: selector : pseudo-class {property: value} CSS类也可以与伪类搭配使用: selector.cla ...
随机推荐
- Net Core 网关 Ocelot 简单案例
1.什么是Ocelot Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabr ...
- linux kali 换源细节
1.打开命令行输入sudo vim /etc/apt/sources.list,并输入密码(也许你进入终端是空白的,也是没有问题的.).这里我们用root身份进去.不然后期会报错. (E45: 're ...
- linux执行sh脚本报错:$’\r’: 未找到命令的解决
原因: 命令直接从windows 复制过来导致的 解决:我是unbutu系统 安装dos2unix apt-get install dos2unix 执行dos2unix命令转换文件格式 dos2un ...
- 工作日统计工具(python)
一.前言 最近在整理之前写过的工具,发现这个虽然写得很简单,但是现在回头看看还挺有趣,就放出来LOL 记得应该是因为当初写立项书的时候,总是得算10个工作日之后是几号,或者到几号结束还剩下多少个工作日 ...
- 2022-05-07内部群每日三题-清辉PMP
1.项目需要一位熟练的工程师来执行某个特定任务,但由于工作量大,该工程师不能参与这个项目.项目经理下一步应该怎么做? A.修改进度计划,以适应该资源 B.与职能经理协商该资源的参与 C.培训项目团队中 ...
- 7.Object
Object类 超类.基类,所以类的直接或间接父类,位于继承树的最顶层 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承 Object类中所定义的方法,是所 ...
- Linux基础环境的各项配置(三)
接上篇,安装centos操作系统后,需对系统的基础环境做一些配置,如下: 1.设置静态IP(防止每次开机可能生成不一样的IP,导致与此虚拟机通信时出现错误):DNS解析,可以ping通外网: 1.1 ...
- pyqt5离线安装教程
目前总结的安装pyqt5,需要的离线安装包,除了每一个包要跟系统版本适配之外,还要考虑包跟包之间的适配.pyqt5跟它开头的一些包要保持是同一个版本,至少有2个小数点的位数是一样的才行,qt5跟它开头 ...
- 使用NSIS打包软件
平台和所需软件 平台: Windows 使用软件: NSIS https://nsis.sourceforge.io/Download HM NIS Edit https://sourceforge. ...
- windows下搭建nrf52832nordic_ble_sniffer_3.0+wireshark抓包环境
准备工具 pythone3.7安装包 https://www.python.org/ftp/python/3.7.7/python-3.7.7-amd64.exe Wireshark-win64-3. ...
