前端必备技能---今天教会你如何高效使用Chrome调试与检测你的CSS代码

简介: 教会你如何高效使用Chrome调试与检测你的CSS代码

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

1.png

引言:

​ 我们平常在项目开发当中, 利用调试工具来调试CSS相关的代码, 它可以帮助我们了解哪些CSS 功能被使用,CSS代码效率,以及CSS代码的执行情况,而这些都是 CSS 代码检查与调试的核心, 它在某种情况下,会影响我们整个网站应用程序的整体性能, 所以掌握必要的调试技巧是很有必要的!

使用Chrome DevTools 调试CSS代码

我们平常可以使用chrome浏览器自带的Chrome DevTools调试工具 来检查与调试CSS代码!

基础手工调试 CSS 代码
快速手动查看元素的CSS样式

可以在chrome浏览器打开页面中按下快捷键F12 打开chrome开发调试工具,然后使用箭头工具Element选项中直接选择html代码 , 最后在右侧的Style中就可以看到当前这个元素颜色、字体、大小CSS相关信息

如图:
2.png

快速查看css link外部样式表

概念

在我们选择好元素节点之后, 右侧的 Styles 选项卡中,出现的当前元素的 CSS属性, 旁边的链接文件可以直接点击打开定义CSS规则外部样式表 可以查看样式的源文件

3.gif

快速给选择的元素添加 行间样式

概念

​ 这种方法相当于向html标签style 属性一样的原理!

当我们在Element选项中直接选择html代码中的一个元素之后 , 在右侧的Style中, 点击 element.style 就可以给当前选择的这个元素增加行间CSS样式了!

这个方法在实际应用开发当中很实用, 根据添加的行间css属性我们就很容易快速判断并且检测出元素的CSS属性的问题出在什么地方!

如图
4.png

快速向元素已有样式规则中添加、修改CSS属性

概念

平常在开发当中 也会用到这个小技巧, 来快速检测自己写的CSS是否有误!

添加CSS声明

当我们在Element选项中直接选择html代码中的一个元素之后 , 在右侧的Style中单击要添加声明的样式规则{}大括号中间部分, 就可以出现光标,输入CSS属性名,最后输出完成后 按 enter 键即可!

修改CSS声明

我们只需要在原有样式上双击鼠标,修改样式规则,并按 Enter 键就可以了!

如图

5.gif

快速给元素添加class类

概念

当我们在Element选项中直接选择html代码中的一个元素之后 , 在右侧的Style选项卡中有一个 .cls 的按钮,点击这个按钮会显示一个 Add new class 的输入框,输入想要添加的class类名之后按 enter 键就可以了

这样就可以直接点击 添加好的class类 复选框可以来回切换样式 进行CSS属性的测试

小提示: 前提是你最好是把要添加的class 先写好!

6.gif

快速更改元素的CSS属性值快捷键

我们在Element选项右侧的Style选项卡中编辑CSS属性值的时候,可以使用键盘上的快捷键将值递增/递减的操作

  • 方向键Up 则是每点击一次给CSS属性值增加1
  • 方向键Down 则是每点击一次给CSS属性值减少1
  • Alt+ 方向键Up 支持(windows,Linux)则是每点击一次给CSS属性值增加0.1
  • Alt+ 方向键Down 支持(windows,Linux)则是每点击一次给CSS属性值减少0.1
  • Shift + 方向键Up 则是每点击一次给CSS属性值增加10
  • Shift + 方向键Down 则是每点击一次给CSS属性值减少10
  • ctrl + Shift + Page Up 支持(windows,Linux)则是每点击一次给CSS属性值增加100
  • ctrl + Shift + Page Down支持(windows,Linux)则是每点击一次给CSS属性值减少100
拾色器的使用

概念

一般可以使用拾色器来快速修改元素的颜色

Style选项卡中,选中目标html元素后 将鼠标悬停在目标元素颜色属性小图标上点击一下,就可以出现拾色器了 , 如果你很会搭配颜色这个小工具还是挺有用的!

如图
7.gif


CSS Overview (当前页面CSS信息提取)

这个功能还是非常强大的! 但是chrome开发调试工具 默认是没有开启的, 所以需要我们手动去开启

如何在chrome开发调试工具中开启CSS Overview功能

步骤

打开chrome浏览器---->F12进入调试工具----->点击调试工具右上方的小齿轮setting图标进入设置---

---->选择Experiments----->勾选CSS Overview 选项即可!

如图

8.png

注意: 开启之后要重新开启一下调试工具!

CSS Overview的作用

这个功能可以给开发者展示出当前页面 CSS 属性的所有信息,比如颜色、字体、对比度问题、未使用的声明和media查询, 通常用这个工具来判断当前CSS 代码的质量

CSS Overview功能包含五个信息板块

1.Overview summary

重点可以显示出一些当前页面中的CSS的使用情况!

9.png

2.Colors

可以显示出当前页面中使用到的所有颜色信息 包括 背景、 字体、 等等...

10.png

3.Font info

在这里可以显示出当前页面中 所使用到的字体以及字体css属性相关的所有信息!

也就是可以在这里看到每一种使用到的字体所设置的css字体相关属性

11.png

4.Media queries

在这里可以查看到当前页面中使用到的媒体查询相关信息

12.png

Coverage panel (检测信息覆盖度)

这个功能主要是可以用来检测CSSJS 文件的代码数量以及使用评率, 也就是说它可以提示项目应用中加载的每个文件使用多少CSS

打开步骤

打开chrome浏览器---->F12进入调试工具----> Ctrl + shift + P 快捷键,输入Coverage,然后再选择: Show Coverage,最后点击刷新的小图标 就可以了!

小提示 可以在 URL Filter输入框中过滤出 .css文件, 只要输入.css 就可以专门显示 CSS文件了

如图
13.gif

这些数据看似不重要,但可能有些时候可以帮助你 建立优化思维以及策略!


Rendering Panel (渲染面板)

听名字就知道它的作用是跟CSS效果渲染有关系的, 平常使用它 来检测代码的渲染时间以及渲染过载的区域!

关于css渲染涉及到浏览器构成,这里就不过多提及,以后我会出一篇详细做讲解!

Rendering Panel (渲染面板) 打开步骤

打开chrome浏览器---->F12进入调试工具----> Ctrl + shift + P 快捷键----->输入Rendering---->然后选择 Show Rendering项, 然后回出现很多复选框功能

平常我会用到的选项如下表:

复选项 描述
Paint flashing 当页面上有重绘效果的地方,会显示绿色矩形的区域进行标注! 可以简单理解为有动态效果的页面区域, 这些效果区域 往往浏览器渲染时间一些!
Frame Rendering Stats 这个选项勾选上之后可以显示GPU的一些实时情况, 用来判定一些效果动画是否卡顿还是比较有用的!
.................................................

如图

14.gif

渲染面板中我们可以获取到 一些常规检查中没有的数据信息, 这些信息对于了解 CSS 代码 或者是 JS代码的性能以及消耗设备的资源等 都提供了很多依据和参照, 在深度优化的时候或许能给你带来一丝启发!

Performance Monitor (性能监视器)

故名意思就是用来查看代码运行的性能监视界面,

打开步骤

打开chrome浏览器---->F12进入调试工具----> Ctrl + shift + P 快捷键----->输入Performance Monitor---->最后选择 Show Performance Monitor 项 即可打开,

在这个面板当中可以勾选一些选项如下

CPU usage

当前CPU的使用率,也就是CPU占用率

JS heap size

指的是JS对象堆的占用的内存大小

DOM nodes

内存中DOM节点个数,这个会随着页面的效果变化而增加或减少

JS event listeners

JS事件侦听器个数

如图

15.gif

Layouts/sec

在用户查看页面的过程当中,页面中的布局元素重排

Style recalcs / sec

页面中的样式重绘

以上两个选项通常也是用于检测与分析我们的CSS代码性能, 例如我们在CSS中使用了left或top属性那么就会产生一些布局上的重绘, 那么如果将这些属性加载到JS动画中,则可能每秒都触发几十甚至是上百次重绘操作

处于性能优化考虑 , 我们如果使用了CSS3中的transform属性中的translateX/Y来做动画效果 ,那么会发现它并不会触发重绘的流程,而只是组合画面 而这些都是基于显卡GPU, 而CPU 的使用率会大大降低!

所以我们平常在开发JS效果的过程当中使用 translate()来移动元素,而不用 top或left来移动元素的根本原因!

我们可以来看一下对比图:

16.gif

小结: 所以通过 Layouts/secStyle recalcs/sec 两个选项展示了在页面中触发重绘布局CSS相关信息

以上这些在平常前端开发当中可以帮助你获取一些实时应用程序的性能数据,在判断性能优劣的时候也是非常有帮助的!

Performance Panel (性能面板)

Performance Panel跟之前的Performance Monitor的区别就是 我们先通过 Performance Monitor性能监视器来把控每一个环节的性能, 然后再使用Performance Panel进行整体的性能分析!

打开步骤

打开chrome浏览器---->F12进入调试工具----> Ctrl + shift + P 快捷键----->输入Performance---->然后我们选择 Show Performance项, 最后点击重新加载的图标,或者按下快捷键 ctrl + shift + e

并且我们也可以反复按下快捷键(ctrl + shift + e)重新加载绘制页面性能信息, 在最下面的饼图中显示了绘制页面渲染页面的总体时间!

如图
17.png

从上图中就可以看到 当我们打开性能面板加载之后就可以获取到 加载页面的时间/毫秒、 CSS、JS、DOM节点、事件监听等所需要的渲染总体时间!

国外在线CSS调试检测代码工具

1.CSS Specificity Visualizer

概述

Specificity Visualizer个人觉得是一款国外非常不错的在线css检测工具

在线地址: https://isellsoap.github.io/specificity-visualizer/

如图
18.png

我们只需要打开访问地址后 粘贴你想要检测CSS代码, 然后点击Visualize it按钮进行检测, 然后回在下面显示出特殊样式选择器 以及选择器的权重等相关信息

操作图

19.gif

标记为红色的地方说明这些选择器还可以优化得更好!

2.CSS Specificity Graph Generator

概述

这款国外在线的CSS检测工具 可以帮助你检测 CSS代码中的 选择器是如何按特定样式组织

在线地址: https://jonassebastianohlsson.com/specificity-graph/

如图

20.png

它会提示波峰值高那么是不好的, 总的趋势应该是在样式表的后面有更高的特异性

如下图

21.gif

END

以上就是平常我在工作与学习当中会使用到的一些CSS代码检测调试工具, 希望能给你带来一点帮助!

感谢你的阅读!

相关文章
|
5月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
298 1
|
5月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
259 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
381 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
盒模型 盒模型: 所谓盒模型,就是浏览器为页面中的每个HTML元素生成的矩形盒子。 这些盒子们都要按照可见板式模型在页面上排布。 可见的板式模型主要由三个属性控制:position 属性、display 属性和 float属性。 position属性控制页面上元素间的位置关系。 display属性控制元素是堆叠、并排或者不在页面上显示。 float属性提供控制的方法,以便于把元素组成成多栏布局。 盒模型讲解: 在默认的情况下,每个盒子的边框是不可见的,背景也是透明的。 所以我们 不能直接的看到页面中的盒
513 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
452 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
374 3
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
546 1
|
5月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
181 0
|
前端开发 容器 移动开发
|
Web App开发 前端开发 JavaScript