今天偷个懒,不长篇大论,分享几个你可能不知道的 CSS 小知识。

样式的顺序

CSS 代码:

 

HTML 代码:

 

记得之前这是一道比较火的 CSS 考题,当时好像是有不少的人答错(30% 以上)

答案你们应该是知道的。

可以这样提升 CSS 性能

后代选择器

样式选择器中间的空格是什么?它的名字是 —— 后代选择器。

为什么会更消耗性能呢?

因为浏览器首先会找到所有p标签,然后再向上查找包含class为div标签。这样一来如果代码中有很多p标签,无疑是会做很多重复工作的。

所以可以减少使用 HTML 标签来定义 CSS 的方式,换成使用具体的class。

浏览器会从右到左解析 CSS 选择器:

浏览器会对上面的例子做如下的步骤处理:

首先找到页面所有的<a>元素

然后向上找到被<p>元素包裹的<a>元素

再向上查找到一直到.content_box的元素

从上面的步骤我们可以看出,越靠右的选择器越具有唯一性,浏览器解析 CSS 属性的效率就越高。

所以一定换成使用具体的class编写 CSS 代码。

自己整理了一套2019最新前端开发资料,需要加qun【四八四。七五七。七六零】

避免 reflow 风险

我们知道修改某些 CSS 属性会导致整个页面布局的重绘( repaint )/重排( reflow )。

repaint 的速度远快于 reflow,所以避免 reflow 更重要

导致 repaint 和 reflow 的原因

1.DOM 元素的添加、修改、删除(repaint、reflow)

2.仅仅修改 DOM 元素的字体颜色(repaint,不需要调整布局)

3.应用新的样式或者修改任何影响元素外观的属性(repaint、reflow)

4.resize,页面滚动(repaint、reflow)

读取元素的某些属性(offsetTop/Left/Width/Height、getComputedStyle、scrollTop/Left/Width/Height、clientTop/Left/Width/Height等)(repaint、reflow)

如果在大量的元素上更改这些属性,那么计算和更新他们的位置/大小需要花费很长的时间。

更加消耗性能的 CSS 属性

有一些 CSS 属性会比其他属性消耗能多的性能,即浏览器解析这些属性需要花费更多的时间。

如:border-radius、box-shadow、filter、:nth-child等

当然这些属性我们经常使用,有些无法避免。要做出适当的取舍。

希望这几个 CSS 小知识可以对你有所帮助,然后点个赞在走呗。

【前端词典】几个有益的 CSS 小知识的更多相关文章

  1. 几个有益的 CSS 小知识

    样式的顺序 CSS 代码:   HTML 代码:   记得之前这是一道比较火的 CSS 考题,当时好像是有不少的人答错(30% 以上) 答案你们应该是知道的. 可以这样提升 CSS 性能 后代选择器 ...

  2. 12个你未必知道的CSS小知识

    虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过. 1.CSS的color属性并非只能用于文本显示 对于CSS ...

  3. 一些常被你忽略的CSS小知识

    1.CSS的color属性并非只能用于文本显示 对于CSS的color属性,相信所有Web开发人员都使用过.如果你并不是一个特别有经 验的程序员,我相信你未必知道color属性除了能用在文本显示,还可 ...

  4. HTML、CSS小知识--兼容IE的下拉选择框select

    HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...

  5. 你未必知道的css小知识

    1:当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如padding-top,padding-bottom,margin-top,margin-bot ...

  6. css 小知识

    <!-- IE下消除点击图片文字后出现的虚线框代码 --> <style type="text/css">a {blr:expression(this.on ...

  7. css小知识

    7. span { display:inline-block; width:70px; /* 超出长度以...显示 */ text-overflow: ellipsis; white-space: n ...

  8. css小知识 2

    效果为 为什么还出现出现不同的效果? 浏览器在解析第二个p的时候,因为第二个字母见没有空格,它会认为这是一个单词没有写完,所以不会换行 列表 1.无序列表ul 第二,内部必须有子代标签<li&g ...

  9. CSS小知识---table表格

    所用的仍是bootstrap的模板 <link rel="stylesheet" href="css/bootstrap.min.css"> < ...

随机推荐

  1. thinkphp5.1导出excel文件第三方类库运用

    若没安装请到:链接地址 https://www.phpcomposer.com/这里安装 composer 安装过的,cmd切换到项目根目录运行:composer require phpoffice/ ...

  2. Android开发:为什么我们从来不去感谢开源项目维护者?

    今天我想谈一谈,为什么我们很少去感谢开源项目维护者: 一.这样的项目我也可以做啊 “蛤?这项目对我来说也太简单了吧.” “我一周之内就能做一个更好的版本出来.” 确实,很多人都可以在 Hackatho ...

  3. asp.net core razor自定义taghelper

    又一个新的名词(taghelper),这个名词在netcore razor中也替代了(Htmlhelper),通过taghelper是可以操作html标签.条件输出.更是自由添加内外元素.当然也内置了 ...

  4. opencv边缘检测报错

    cnts = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)cnts = cnts[0] if ...

  5. 关于纯xmlhttprequest请求服务器数据

    今天我们的web技术已经相当的完善, 各种前端框架如jquery或者再深一点的工具APIcloud 的使用极大的方便了我们的开发工作. 今天我要分享一个纯javascript的方式来解决请求服务器数据 ...

  6. .NET分布式大规模计算利器-Orleans(一)

      写在前面 Orleans是基于Actor模型思想的.NET领域的框架,它提供了一种直接而简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式.我在2015年下半年开始 ...

  7. Python学习笔记整理总结【Django】:模板语言、分页、Cookie、Session

    一.模板语言  1.在前段展示:对象/字典/元组 class Business(models.Model): # id #用默认的自增id列 即:Business中有3列数据(id, caption, ...

  8. 关于react-router最新版本的使用

    现在react-router已经更新到了5.1.1版本,在一些使用方法上较之前有了很多改变,现做初步列举,以后会陆续更新. 关于引入react-router和基本使用 旧版本中引入react-rout ...

  9. css实现斜角效果

    重点代码: 使用一张图片盖住div,实现斜角效果 .triangle { position: absolute; top:; left:; width: 36px; height: 36px; bac ...

  10. OKR群:为什么说每个程序员都应该有自己的个人OKR

    个人OKR OKR,即Object and Key Result,是IT大厂最近争相推广的目标管理工具,例如腾讯.百度和头条(字节跳动). 其实,OKR并不是仅仅只适用于公司和部门内部,我们个人也可以 ...