怎样高效的使用CSS选择符

这次给大家带来怎样高效的使用CSS选择符,高效使用CSS选择符的注意事项有哪些,下面就是实战案例,一起来看一下。

最初写CSS的时候,觉得很简单,写得天马行空。后来慢慢的发现,没有规则的瞎写,虽然也能实现效果,但是在实际开发中可能会多做无用功或是重复做功,并且CSS并不高效。于是后期开发时就特意按照一定的规则,尽可能的写出高效的,可复用的CSS,总结一下,主要是是以下几个方面。

首先看一小段 CSS 代码:

#menus > li { font-size: 14px; }

怎样高效的使用CSS选择符

可能大家都会猜想浏览器会使从左到右匹配上面的规则,我们会想象浏览器先找到唯一的 id 为 menus 的元素,然后把样式应用到其直系子元素 li 元素上。这看起来好像还挺高效的。

但是,事实上,CSS 选择符是从右到左进行匹配的。所以,上面的这条规则并不高效,浏览器必需遍历页面上的每个 li 元素并确定其父元素的 id 是否为 menus。

样式系统从最右边的选择符开始向左匹配规则。只有当前选择符的左边还有其他的选择符,样式系统就会继续向左移动,直到找到和规则匹配的元素,或者因为不匹配而退出。

编写高效的CSS选择符有以下常用规则:

怎样高效的使用CSS选择符

一、避免使用通配规则

除了传统意义上的通配选择符之外,我们把相邻兄弟选择符、子选择符、后代选择符合属性选择符都归纳到通配规则分类下,推荐仅使用 ID、类和标签选择符。

二、不要限定 ID 选择符

在页面中一个指定的ID只能对应一个元素,所以没有必要添加额外的限定符。例如,p#header是没有必要的,应该简化为#header。

三、不要限定类选择符

不要用具体的标签限定类选择符,而是根据实际情况对类名进行扩展。例如,把li.chapter改成.li-chapter,或是.list-chapter更好。

四、让规则越具体越好

不要试图编写像 ol li a 这样的长选择符,最好是创建一个像.list-anchor一样的类,并把它添加到适当的元素上。

五、避免使用后代选择符

通常处理后代选择符的开销时最高的,而使用子选择符也可以得到想要的结果,并且更加高效。

六、避免使用标签—子选择符

如果有像#menus > li > a这样的基于标签的子选择符,那么应该使用一个类来关联每个标签元素,例如.menus-item。

七、质疑子选择符的所有用途

检查所有使用子选择符的地方,然后尽可能用具体的类取代它们。

八、依靠继承

了解哪些属性可以通过继承而来,然后避免对这些属性重复指定规则。例如,对列表元素而不是每个列表元素指定list-style-image。请参考继承属性的列表来了解每个元素的可继承的属性。

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

CSS3做出条纹大背景

css3做出半圆弧线

以上就是怎样高效的使用CSS选择符的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:44:21
下一篇 2025年12月24日 00:44:35

相关推荐

  • CSS3实现瀑布流布局的方法

    这次给大家带来CSS3实现瀑布流布局的方法,CSS3实现瀑布流布局的注意事项有哪些,下面就是实战案例,一起来看一下。 以前使用瀑布流都要用js,现在有了css3,可以轻松实现了。 掌握点: 1、column-count 把p中的文本分为多少列 2、column-width 规定列宽 3、column…

    好文分享 2025年12月24日
    000
  • CSS3做出倒影的图文详解

    这次给大家带来css3做出倒影的图文详解,css3做出倒影效果的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图如下: 示例图片 在CSS3之前,想要实现示例图片这样的一个倒影效果一般只能通过处理图片的方式,而CSS3问世之后,想要实现这样的效果变得非常简单,只需一个CSS3属性就可以轻松实…

    2025年12月24日 好文分享
    000
  • CSS3做出无缝轮播广告

    这次给大家带来CSS3做出无缝轮播广告,CSS3做出无缝轮播广告的注意事项有哪些,下面就是实战案例,一起来看一下。 无缝轮播的原理图 1 . html的架构 : @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ @@##@@ JavaSc…

    2025年12月24日
    000
  • 完全利用CSS实现元素居中

    这次给大家带来完全利用CSS实现元素居中,利用CSS实现元素居中的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 记得有次找工作面试的时候,一面试官问了一个CSS方面的问题:如何让元素在浏览器窗口中上下左右居中。我记得当时给了个答案是,先用JS获取浏览器窗口高度,然后给body设置line-…

    好文分享 2025年12月24日
    000
  • css3的pointer-events使用详解

    这次给大家带来css3的pointer-events使用详解,使用css3的pointer-events的注意事项有哪些,下面就是实战案例,一起来看一下。 pointer-events 是什么? 顾名思义,pointer-events 是一个用于 HTML 指针事件的属性。 pointer-even…

    2025年12月24日
    000
  • CSS制作“正在加载”提示框

    这次给大家带来CSS制作“正在加载”提示框,CSS制作“正在加载”提示框的注意事项有哪些,下面就是实战案例,一起来看一下。  需求:               有时加载数据比较慢,页面一直没有反应,用户也许会不停的刷,而且用户体验也不好 解决:          在js中加入以下代码即可 //提示…

    2025年12月24日
    000
  • css中hover做遮盖罩闪动问题

    这次给大家带来css中hover做遮盖罩闪动问题,css中hover做遮盖罩的注意事项有哪些,下面就是实战案例,一起来看一下。 具体代码如下所示: 你好 这是html代码部分,原本想做一个遮盖罩的效果,当鼠标移动到p2的时候,p3会出现微微遮一下p2. 所以最开始的css代码是这样的 做完后发现出了…

    2025年12月24日 好文分享
    000
  • CSS的mask-image属性详解

    这次给大家带来CSS的mask-image属性详解,使用CSS的mask-image属性注意事项有哪些,下面就是实战案例,一起来看一下。 CSS mask遮罩属性的历史非常久远了,远到比CSS3 border-radius等属性还要久远,最早是出现在Safari浏览器上的,差不多可以追溯到09年。 …

    2025年12月24日
    000
  • CSS3的rem(设置字体大小)使用教程

    这次给大家带来CSS3的rem(设置字体大小)使用教程,使用CSS3的rem(设置字体大小)的注意事项有哪些,下面就是实战案例,一起来看一下。 css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其…

    2025年12月24日
    000
  • CSS的loading动画效果使用教程

    这次给大家带来CSS的loading动画效果使用教程,CSS的loading动画效果使用注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了一份纯CSS loading效果代码示例,分享给大家,具体如下: 预览 代码 使用了CSS的keyframes自定义关键帧动画 Loading p#pr…

    2025年12月24日
    000
  • Css绘制扇形图案

    这次给大家带来Css绘制扇形图案,Css绘制扇形图案的注意事项有哪些,下面就是实战案例,一起来看一下。 阅读此文需具备基本数学知识:圆心角、弧度制、三角函数。 为实现如下效果呕心沥血: 当然你可以拥抱 Svg…在此分享如何纯 Css 打造圆环进度条,只需三步! 此物乃 2 + 1 夹心饼…

    2025年12月24日 好文分享
    000
  • 纯css实现照片墙3D效果

    这次给大家带来纯css实现照片墙3D效果,纯css实现照片墙3D效果的注意事项有哪些,下面就是实战案例,一起来看一下。 直接上代码 1.准备材料: 准备材料就是没什么材料,自己麻溜赶快的去:百度找几张美女的照片来测试即可。 2.html代码: 照片墙 @@##@@ @@##@@ @@##@@ @@#…

    2025年12月24日
    000
  • CSS的滤镜实现火焰效果

    这次给大家带来CSS的滤镜实现火焰效果,CSS滤镜实现火焰效果的注意事项有哪些,下面就是实战案例,一起来看一下。 上次我们了解了一些css滤镜的基础知识,CSS滤镜 filter属性 这次我们就来用css的滤镜实现一个 火焰的效果。 解释 要实现上面的火焰效果,我们先来了解一些必要的东西。 上次我们…

    2025年12月24日 好文分享
    000
  • css中sticker-footer布局如何使用

    这次给大家带来css中sticker-footer布局如何使用,使用css中sticker-footer布局的注意事项有哪些,下面就是实战案例,一起来看一下。 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过。它可以概括如下:如果页面内容不够长的时候,页…

    好文分享 2025年12月24日
    000
  • CSS3的鼠标移入图片动态提示效果

    这次给大家带来CSS3的鼠标移入图片动态提示效果,实现CSS3鼠标移入图片动态提示效果的注意事项有哪些,下面就是实战案例,一起来看一下。 第一次尝试着写博客,不好或者有误的地方希望大家多多指正呐,今天主要写的是关于CSS3的一个重要属性transform的一些用法,这些例子是之前在慕课网上学习某位老…

    2025年12月24日 好文分享
    000
  • css3做出半圆弧线

    这次给大家带来css3做出半圆弧线,css3做出半圆弧线的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了css3实现画半圆弧线的示例代码,分享给大家,具体如下: css代码 .circle1 { width: 100px; height: 200px; border: 1px soli…

    2025年12月24日
    000
  • css3文字渐变动画

    这次给大家带来css3文字渐变动画,实现css3文字渐变动画的注意事项有哪些,下面就是实战案例,一起来看一下。 利用css3这个属性(背景剪裁): background-clip: border-box || padding-box || context-box || no-clip || text…

    2025年12月24日 好文分享
    000
  • CSS3做出条纹大背景

    这次给大家带来CSS3做出条纹大背景,使用CSS3做出条纹大背景的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 实现不等宽背景条纹: .cont{width: 500px;height: 200px;background: linear-gradient(#78C9DB 70%,#0acf…

    2025年12月24日 好文分享
    000
  • css3的动画序列animation

    这次给大家带来css3的动画序列animation,使用css3动画序列animation的注意事项有哪些,下面就是实战案例,一起来看一下。 首先复习一下animation动画添加各种参数 (1)infinite参数,表示动画将无限循环。在速度曲线和播放次数之间还可以插入一个时间参数,用以设置动画延…

    2025年12月24日 好文分享
    000
  • 用css隐藏input的光标

    这次给大家带来用css隐藏input的光标,用css隐藏input的光标的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 最近公司的ui突然跑过来问我一个问题:“如何在不影响操作的情况下,把input的光标隐藏了?”。 我相信很多人会跟我一样,觉得这是个什么狗屁需求,输入框不要光标这不是反人…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信