Web前端开发CSS规范总结
作为Web前端开发必备语言,CSS为大家广为熟知,今天就跟大家分享下CSS规范总结,Web前端的小伙伴们看过来吧!
CSS样式的权值(权重)
权值等级的定义
第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为100。
第三等:代表类,伪类和属性选择器,如.content,权值为10。
第四等:代表类型选择器和伪元素选择器,如div p,权值为1。
Ps:通用选择器(*),子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以他们的权值都为0,!important 优先级最高,万不得已的情况下才用。
权重计算
#content div#main-content h2=2*100+2*1=202
#content #main-content>h2=2*100+1=201
body #content div[id="main-content"] h2=1*100+1*10+3*1=113
#main-content div.paragraph h2=1*100+1*10+2*1=112
#main-content [class="paragraph"] h2=1*100+1*10+1*1=111
div#main-content div.paragraph h2.first=1*100+2*10+3*1=123
优先规则
权值大的样式会覆盖权值小的样式,上面例子的样式会采用权值最大201的样式,当你乱用!important,特别是后期修改样式的时候,是不是有种心力憔悴电费感觉?
当css前后样式项的权值一样,后面的样式会覆盖前面的样式。
Css 概念
CSS规范
命名风格规范
1 css文件命名:统一为小写的英文字母(尽量少用拼音),如:index.css。
当名字需要组合拼写时,可以在单词间加中杠线(不要用下划线:容易写错)。如:member-report.css。(推荐)
或者统一为驼峰式拼写。如:MemberReport.css (项目启动前统一风格)。
2 样式名(html的class名):在让人看懂的前提下,尽量语义化或简写。尽量少用拼音,和无语义的缩写 .bt .bd 等; 风格可以统一为小写字母,如:content。当名字需要组合时,可以采用css文件名的规范。
样式的继承
文本样式
color,font-family, font-size, font-style,
font-variant, font-weight, font, letter-spacing,
line-height,text-align, text-indent, texttransform,word-spacing
列表相关属性
list-style-image, list-style-position,
list-style-type, list-style,
像素化 css
CSS优化
渲染
就是浏览器把HTML代码以css定义的规则显示在浏览器窗口的过程
浏览器对页面呈现的处理流程
用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件;
浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件;
浏览器又发出CSS文件的请求,服务器返回这个CSS文件;
浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了;
浏览器在代码中发现一个<img>标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码;
服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器要回过头来重新渲染这部分代码;
浏览器发现了一个包含一行Javascript代码的<script>标签,赶快运行它;
Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个<div> (style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码;
终于等到了</html>的到来,浏览器泪流满面……
等等,还没完,用户点了一下界面中的“换肤”按钮,Javascript让浏览器换了一下<link>标签的CSS路径;
浏览器召集了在座的各位<div><span><ul><li>们,“大伙儿收拾收拾行李,咱得重新来过……”,浏览器向服务器请求了新的CSS文件,重新渲染页面。
回流
当页面的布局发生变化时,浏览器会回过头来重新渲染,这就是页面为什么会慢的一个原因,当一个点的变 化影响了布局,这就会使得要倒回去重新渲染,这个倒回去的过程称为 reflow(回流)。
当页面布局和几何属性改变时就需要回流。下述情况会发生浏览器回流
1、添加或者删除可见的DOM元素;
2、元素位置改变和计算(offsetWidth 和 offsetHeight)
3、元素尺寸改变——边距、填充、边框、宽度和高度
4、内容改变——比如文本改变或者图片大小改变,字体的改变而引起的计算值宽度和高度改变;
5、页面渲染初始化
6、浏览器窗口尺寸改变——resize事件发生时;
7、操作 class 属性,脚本操作 DOM,设置 style 属性的值,激活 CSS 伪类
var s = document.body.style;
s.padding = "2px"; // 回流+重绘
s.border = "1px solid red"; // 再一次 回流+重绘
s.color = "blue"; // 再一次重绘
s.backgroundColor = "#ccc"; // 再一次 重绘
s.fontSize = "14px"; // 再一次 回流+重绘
// 添加node,再一次 回流+重绘
document.body.appendChild(document.createTextNode('abc!'));
回流比重绘的代价要更高,回流的花销跟render tree有多少节点需要重新构建有关系,假设你直接操作body,比如在body最前面插入1个元素,会导致整个render tree回流,这样代价当然会比较高,但如果是指body后面插入1个元素,则不会影响前面元素的回流。
reflow问题也是可以优化的,减少reflow是很有必要的,比如给图片设定好宽度和高度,这样就可以把图片的占位面积预定好。
重绘
一些元素需要更新属性,而这些属性只是影响元素的外观,风格(景颜色,文字颜色,边框颜色)而不会影响布局,浏览器就会repaint。repaint的速度明显比reflow的速度快。
Web前端开发CSS规范总结的更多相关文章
- web前端开发 代码规范 及注意事项
web前端开发 代码规范 及注意事项 外部命名规范 html .js .css文件名称命名规范 my_script.js my_camel_case_name.css my_index.html 路径 ...
- WEB前端开发CSS基础样式全面总结
Web前端开发css基础样式全面总结 颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-2 ...
- 1+x 证书 Web 前端开发 css 专项练习
官方QQ群 1+x 证书 Web 前端开发 css 专项练习 http://blog.zh66.club/index.php/archives/192/
- web前端开发CSS命名规范参考
做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...
- Web前端开发标准规范
web前端开发规范的意义 提高团队的协作能力 提高代码的复用利用率 可以写出质量更高,效率更好的代码 为后期维护提供更好的支持 一.命名规则 命名使用英文语义化,禁止使用特殊字符,禁止使用拼音,禁止使 ...
- Web 前端开发代码规范(基础)
一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ...
- web前端开发——css
一.css介绍 1.css是什么? Cascading Style Sheets缩写,层叠样式表.样式定义如何显示HTML元素,样式通常又会存在于样式表中. 2.为什么需要css? 使HTML页面变得 ...
- Web前端开发CSS基础
CSS 层叠样式表(英文全称:Cascading Style Sheets),是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS不 ...
- Web前端开发css基础样式总结
颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值 ...
随机推荐
- 解压Assets.car获取App中的图片资源
iOS开发时图片资源(png)是放置在Images.xcassets文件夹中进行管理的. 项目归档后就是ipa文件,在ipa文件中,Images.xcassets文件夹的内容放置在了Assets.ca ...
- Windows驱动开发-派遣函数
一个简单的派遣函数格式 NTSTATUS DispatchFunction(PDEVICE_OBJECT pDeviceObject, PIRP pIrp) { //业务代码区 //设置返回状态 pI ...
- SpringCloud实战——(4)基于Eureka、Zuul
- HBase查询速度慢原因排查
问题:通过HBase访问服务在HBase中查询 ASSET_NORMAL 表速度很慢 如下,查询一条数据需要2.970s时间: 如下,统计总条数需要14.675s时间: HBase访问服务部署了3个节 ...
- 新闻网大数据实时分析可视化系统项目——12、Hive与HBase集成进行数据分析
(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的H ...
- 1.Neo4j简介(Neo4j系列)
简介 Neo4j是一个高性能.高可靠性.可扩展.支持ACID事务的图数据库,它基本由Java语言实现,支持数据平台的平滑扩展和过渡,同时能够在多种系统上完成部署,它使用Cypher查询语言对数据进行增 ...
- 网站Webshell大马密码极速暴力爆破工具-cheetah
Cheetah是一个基于字典的暴力密码webshell工具,运行速度与猎豹猎物一样快. Cheetah的工作原理是能根据自动探测出的web服务设置相关参数一次性提交大量的探测密码进行爆破,爆破效率 ...
- Windows Mysql Server重启, log-bin路径配置
Windows Mysql Server重启, log-bin路径配置 分类: mysql数据库2014-03-16 14:49 1313人阅读 评论(0) 收藏 举报 Mysqlmysql serv ...
- pta 拯救007(Floyd)
7-9 拯救007(25 分) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里 ...
- OS、浏览器排名:Win10狂飙、Chrome逆天
根据 Netmarketshare公布的最新数据,2019年7月,Windows 10系统市场份额获得显著增长,市场份额创下新高:Windows 7则进一步衰退,份额下滑高达3.6%,这也是其历史上最 ...