问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

简述css中的选择器分类及使用方法

发布网友 发布时间:2022-04-06 10:24

我来回答

2个回答

懂视网 时间:2022-04-06 14:45

本篇文章给大家带来的内容是关于深入理解CSS伪类选择器的知识(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前言

过去零零星星地了解和使用:link::aftercontent等伪类、伪元素选择器,最近看书时发现这方面有所欠缺,于是决定稍微深入学习一下,以下为伪类部分的整理。

伪类

?伪类选择器实质上是让设计师可以根据元素特定的状态,设置不同的视觉效果。具体有:link:visited:hover:active:focus:focus-within:target:root:checked

HTMLAnchorElement的4大经典伪类

  1. :link,用于设置链接初始状态时的样式;

  2. :visited,用于设置链接被点击过后的样式;

  3. :hover,用于设置鼠标悬停在链接上方时,链接的样式;

  4. :active,用于设置鼠标按键按下,但未释放时,链接的样式。

?想必各位都和我一样,最初接触到的就是上述4个伪类了吧?!而且还死机硬背它们的设置顺序(LVAH)吧,哈哈。

设置当前目标元素样式

?还记得URL中的井号吗?从井号(#)开始到URL的末尾称为URL的hash或fragment,用于定位页面内某项资源。假设现在页面存在<h3 id="title">Target</h3>的元素,那么只要地址栏输入#title浏览器就会不断滚动(滚动不一定存在补间动效)直到元素h3#title位于可视区的特定位置。(注意:请不要和UI Routing混为一谈)
?而上述这个被定位的页面资源,被称为目标元素或当前活动元素!可通过:target设置其样式。
?兼容性:IE9开始支持。

示例:

// 当前URL为http://foo.com#1
:target {
 color: red;
}
.title{
 color: blue;
 
 &:target{
 border: solid 1px red;
 }
}

.title{I'm not target element.}
.title#1{Yes, I'm.}

设置元素获得焦点时的样式

:focus用于设置元素处于focus状态下的样式。
兼容性:IE8开始支持。
那么哪些元素支持focus状态呢?那要先弄清楚通过哪些操作可能实现focus。
它们分别是:

  1. 鼠标点击;

  2. Tab键;

  3. 通过JavaScript的HTMLElement.prototype.focus()方法。

那么传统上支持focus状态的元素必定是abuttoninputselecttextareas.
而HTML5中增加当元素设置了contenteditabletabindex属性时,该元素支持focus状态。
也就是符合以下选择器的元素均支持focus状态。

a,button,input,select,textarea,[contenteditable],[tabindex]

注意:若tabindex属性值小于0,则无法通过Tab键获得焦点。但可以通过鼠标点击 或 脚本时元素获得焦点。

JS获取当前得到焦点的元素

/* 
 * 加载完成时默认返回body
 * 若某元素获得焦点时,则返回该元素
 */
document.activeElement :: HTMLElement

另外还有一个让人误会的属性

// 用于检测文档是否得到焦点,即用户是否正在与页面交互
// 页面仅仅位于屏幕可视区域,而用户没有与之交互时返回false。
document.hasFocus :: Void -> Boolean

设置子元素获得焦点时,该元素的样式

:focus-within,用于设置当子元素处于focus状态时,该元素的样式。
兼容性:Chrome63开始支持。

示例:二次确认密码时,密码框高亮

.form-control{
 &:focus-within > input{
 &:focus {
 border: solid 1px skyblue;
 }
 
 &:not(:focus){
 border: solid 1px orange;
 }
 }
}

.form-control>input.pwd[type=password]+input.confirm-pwd[type=password]

其他

  1. :root,用于设置<html>元素的样式,从IE9开始支持。

  2. :checked,用于设置单选和复选控件被选中的样式,从IE9开始支持。结合伪元素::beforecontent属性可以实现灵活高效的自定义单选和复选控件。

  3. :empty,用于设置没有子节点的元素的样式。p{ }为存在TEXT_NODE子节点的元素,而p{}则为没有子节点的元素。

  4. :not,作为谓语表达取反的语义。

  5. :placeholder-shown,用于设置元素placeholder显示时的样式。

热心网友 时间:2022-04-06 11:53

CSS的选择器其实大类的话可以分为三类,即id选择器、class选择器、标签选择器。
用法如下:
#id名 { 属性名:属性值; }
.class名 { 属性名:属性值; }
标签名 { 属性名:属性值; }
其中,他们之间又可以以不同的方式进行组合,如下:
后代选择器: 父代名 后代名 { 属性名:属性值; }
子代选择器: 父代名>子代名 { 属性名:属性值; }
群组选择器: #name1, .name2, #name div { 属性名:属性值; }
伪类选择器: name:伪类
通用(通配符)选择器: * { 属性名: 属性值; }……
常用的也就这些。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
高启强与陈书婷结婚是哪一集 陈舒婷和高启强第几集结婚 高启强陈书婷结婚是第几集 高启强和陈书婷结婚是第几集 高启强和陈书婷第几集结的婚 狂飙高启强第几集和大嫂在一起的 2021年清明节时间(是公历几月几号) js中类似`${xx,xxxy}`的语句是什么意思? 用支付宝帐号注册的淘宝帐号但是淘宝显示未绑定支付宝帐号如图 银行黑户影响子女什么 性欲强的男人就一定会纵欲吗? 转账设置延迟到账在哪里设置 现在玩什么网络游戏可以赚钱 我有一台电脑 想玩个能赚钱的游戏有什么好的推荐! 现在什么网络游戏最赚钱 两个路由器桥接后,用户名密码能设置成一样的么?? 俩个路由器桥接,请问怎么设置第二个路由器wifi的密码 两个路由器一个中继,一个主路由。需要给中继路由设置密码吗? 请教二个无线路由器桥接成功,如何给第二路由器加密 手机怎么设置中继路由器密码 路由器设置无线中继后怎么改密码 中继路由器怎样设密码 路由中继后如何设置WIFI密码 css选择器的1.6 伪类选择器 网易云音乐后台播放 点其他app会短暂卡一下 怎么解决? 为什么开着网易云音乐玩游戏会变得很卡 小黑盒怎么买俄区游戏 类似字说功能有什么文字生成视频的软件吗? 为什么我用网易云音乐或者其他音乐播放器听音乐时玩游戏会卡到掉帧? 电脑有时会很卡 , 刚开机然后开个网易云音乐要20秒 , 是不是改换主板了还是什么原因 502粘牙上了,怎么破 如何去除粘在牙齿上的520胶水 整牙用的胶水如何除去 牙套拆了后牙齿上有粘牙套的胶水,已经凝固了,应该怎样去掉? 粘上去的牙钻怎么去除掉? 我己经用万能胶粘牙了怎么办? 戴牙套粘牙的材料粘牙龈上有牙缝了怎么办,都凝固了,很硬? 补牙,今天第一次去,给我钻了一个洞,塞进去消毒棉,用粘牙胶粘住了,可是晚上我给弄开了,棉花也出来了 09年的时候我嘴里有颗假牙断了,所以我买了个502胶水把牙齿粘了起来 CSS属性选择器有哪些类型?请给出相应的代码示例予以说明 吃东西总是粘牙怎么办? 粘牙的胶水,具体是什么胶水 逆行撞车了责任怎么划分 逆行发生交通事故怎么划分责任 逆行出车祸怎么划分责任 逆向行驶出现交通事故负什么责任 逆行发生交通事故责任怎么划分? 交通事故逆行发生怎么认定责任? 逆行被撞责任怎么划分 逆行交通事故如何划分责任