成为CSS选择器大师,让你的网页瞬间提升品味!

简介: 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。

⭐  专栏简介


       欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。



       同时,我们也会关注最新的前端趋势和发展动态。随着Web技术的不断演进,前端开发也在不断推陈出新。我们会及时介绍最新的前端框架、工具和技术,使你能够站在前沿,与时俱进。通过掌握最新的前端技术,你将能够在竞争激烈的Web开发领域中有更大的竞争力。



📘  文章引言


一、选择器


CSS选择器是CSS规则的第一部分


它是元素和其他部分组合起来告诉浏览器哪个HTML元素应当是被选为应用规则中的CSS属性值的方式


选择器所选择的元素,叫做“选择器的对象”


我们从一个Html结构开始

<div id="box">
    <div class="one">
        <p class="one_1">
        </p >
        <p class="one_1">
        </p >
    </div>
    <div class="two"></div>
    <div class="two"></div>
    <div class="two"></div>
</div>


关于css属性选择器常用的有:


id选择器(#box),选择id为box的元素


类选择器(.one),选择类名为one的所有元素


标签选择器(div),选择标签为div的所有元素


后代选择器(#box div),选择id为box元素内部所有的div元素


子选择器(.one>one_1),选择父元素为.one的所有.one_1的元素


相邻同胞选择器(.one+.two),选择紧接在.one之后的所有.two元素


群组选择器(div,p),选择div、p的所有元素


还有一些使用频率相对没那么多的选择器:


伪类选择器

:link :选择未被访问的链接

:visited:选取已被访问的链接

:active:选择活动链接

:hover :鼠标指针浮动在上面的元素

:focus :选择具有焦点的

:first-child:父元素的首个子元素

伪元素选择器

:first-letter :用于选取指定选择器的首字母

:first-line :选取指定选择器的首行

:before : 选择器在被选元素的内容前面插入内容

:after : 选择器在被选元素的内容后面插入内容

属性选择器

[attribute] 选择带有attribute属性的元素

[attribute=value] 选择所有使用attribute=value的元素

[attribute~=value] 选择attribute属性包含value的元素

[attribute|=value]:选择attribute属性以value开头的元素

在CSS3中新增的选择器有如下:


层次选择器(p~ul),选择前面有p元素的每个ul元素

伪类选择器

:first-of-type 父元素的首个元素

:last-of-type 父元素的最后一个元素

:only-of-type 父元素的特定类型的唯一子元素

:only-child 父元素中唯一子元素

:nth-child(n) 选择父元素中第N个子元素

:nth-last-of-type(n) 选择父元素中第N个子元素,从后往前

:last-child 父元素的最后一个元素

:root 设置HTML文档

:empty 指定空的元素

:enabled 选择被禁用元素

:disabled 选择被禁用元素

:checked 选择选中的元素

:not(selector) 选择非 <selector> 元素的所有元素

属性选择器

[attribute*=value]:选择attribute属性值包含value的所有元素

[attribute^=value]:选择attribute属性开头为value的所有元素

[attribute$=value]:选择attribute属性结尾为value的所有元素


二、优先级


相信大家对CSS选择器的优先级都不陌生:


内联 > ID选择器 > 类选择器 > 标签选择器


到具体的计算层⾯,优先级是由 A 、B、C、D 的值来决定的,其中它们的值计算规则如下:


如果存在内联样式,那么 A = 1, 否则 A = 0


B的值等于 ID选择器出现的次数


C的值等于 类选择器 和 属性选择器 和 伪类 出现的总次数


D 的值等于 标签选择器 和 伪元素 出现的总次数


这里举个例子:

#nav-global > ul > li > a.nav-link


套用上面的算法,依次求出 A B C D 的值:


因为没有内联样式 ,所以 A = 0


ID选择器总共出现了1次, B = 1


类选择器出现了1次, 属性选择器出现了0次,伪类选择器出现0次,所以 C = (1 + 0 + 0) = 1


标签选择器出现了3次, 伪元素出现了0次,所以 D = (3 + 0) = 3


上面算出的A 、 B、C、D 可以简记作:(0, 1, 1, 3)


知道了优先级是如何计算之后,就来看看比较规则:


从左往右依次进行比较 ,较大者优先级更高

如果相等,则继续往右移动一位进行比较

如果4位全部相等,则后面的会覆盖前面的

经过上面的优先级计算规则,我们知道内联样式的优先级最高,如果外部样式需要覆盖内联样式,就需要使用!important


三、继承属性


在css中,继承是指的是给父元素设置一些属性,后代元素会自动拥有这些属性


关于继承属性,可以分成:


字体系列属性

font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:偏大或偏小的字体


文本系列属性

text-indent:文本缩进
text-align:文本水平对刘
line-height:行高
word-spacing:增加或减少单词间的空白
letter-spacing:增加或减少字符间的空白
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色


元素可见性

visibility


表格布局属性

caption-side:定位表格标题位置
border-collapse:合并表格边框
border-spacing:设置相邻单元格的边框间的距离
empty-cells:单元格的边框的出现与消失
table-layout:表格的宽度由什么决定


列表属性

list-style-type:文字前面的小点点样式
list-style-position:小点点位置
list-style:以上的属性可通过这属性集合


引用

quotes:设置嵌套引用的引号类型

光标属性

cursor:箭头可以变成需要的形状

继承中比较特殊的几点:


a 标签的字体颜色不能被继承


h1-h6标签字体的大下也是不能被继承的


无继承的属性

display


文本属性:vertical-align、text-decoration


盒子模型的属性:宽度、高度、内外边距、边框等


背景属性:背景图片、颜色、位置等


定位属性:浮动、清除浮动、定位position等


生成内容属性:content、counter-reset、counter-increment


轮廓样式属性:outline-style、outline-width、outline-color、outline


页面样式属性:size、page-break-before、page-break-after




⭐  写在最后

请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.


✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式


✅ 认为我部分代码过于老旧,可以提供新的API或最新语法


✅ 对于文章中部分内容不理解


✅ 解答我文章中一些疑问


✅ 认为某些交互,功能需要优化,发现BUG


✅ 想要添加新功能,对于整体的设计,外观有更好的建议


最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!

相关文章
|
2月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
34 1
|
2月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
46 1
|
3月前
|
前端开发 JavaScript 开发者
探索Web设计新纪元:CSS3的革新特性如何重塑我们的网页视觉体验?
【8月更文挑战第26天】随着Web技术的发展,CSS3为前端开发带来了众多激动人心的新特性,极大提升了网页设计的视觉效果与创意空间。本文通过对比CSS3与CSS2,详细介绍了CSS3在选择器增强、圆角阴影处理、渐变背景应用、转换动画实现、文字效果优化、媒体查询支持及多列布局方面的显著改进,展示了CSS3如何助力开发者打造更具吸引力和互动性的网页体验。
50 1
|
6天前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
23 2
|
2月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
用CSS+JavaScript打造网页中的选项卡
用CSS+JavaScript打造网页中的选项卡
|
2月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
73 1
|
26天前
|
前端开发
CSS常见的选择器
CSS常见的选择器
15 0
|
3月前
|
前端开发
简单几行代码CSS实现网页自动打文字效果
简单几行代码CSS实现网页自动打文字效果
51 1
简单几行代码CSS实现网页自动打文字效果
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)