css写法优化
写css关于id,class等的命名,文件的结构,共同模块的提取,代码的复用性,可读性,扩展性,维护性都要考虑,不然后期可以会需要花大力气去进行维护修改。考虑写出足够科学的css,需要考虑下面几个方面。(参考博客园 灵感的小窝)
首先分析需求,根据需要分出头部、导航、侧边栏、banner区,主要内容区,底部等。由于需要东西的复用度很高,不好归于任何一个固定模块,比如分页,弹窗等,他们需要单独分出一段专属的css和js,即组件化。有了清晰的结构后,便于维护。然后在细化,发现一些复用度高的小的部分,比如边框,背景,图标,字体,边距,布局方式等。这些用的次数很多,造成代码冗余和维护困难。因此需要对这部分进行统一维护修改。同时,代码的排序也很重要,便于维护和继承或者层叠覆盖。除了这些意外,通过注释在代码段前面添加目录或者名称也有利于维护。
然后从结论来看,应该注意:
1.层级嵌套不能太深,这样会增加渲染时间。一般不超过4层最好。
2.避免使用元素选择器。原因a.同一个元素可能使用很多次,在浏览器遍历的时候会遍历所有该元素,这是没必要的。b.需求和代码结构是随时可能发生变化,有可能会复用到其他页面,或者在该页面增加内容,因此使用元素选择器定死某个东西,不利于后期修改。
3.避免使用群组选择器。
如:.header ul li,.content ul li,.footer ul li{border-left:1px solid red};
这种情况应该提取一个公用类,然后定义同一样式,更加方便。
4.文件引入的数量和顺序
文件请求的次数应该尽量少,内容显示有优先顺序,文件加载有先后顺序,让用户先看到更重要的。
从矛盾上考虑,对一个样式进行命名,在设计稿上样式相似的两个不同功能的模块,我们在命名的时候就不能考虑通过内容来命名,比如“news”“about”等,而是从所属类别,功能,页面上来考虑。让人比较容易的在名称和结构间建立联系。在能把css写的比较熟练后,可以使用css预处理器来提高效率。
css写法优化的更多相关文章
- CSS性能优化探讨
大部分前端开发人员都不关心CSS性能优化,其实对于一个复杂的页面来说,高效的选择器还是可以带来一定的性能提升的. 1. CSS 选择器 浏览器是“从右往左”来分析 class 的,它的匹配规则是从右向 ...
- CSS样式优化
一.css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度2.便于维护.简化和标准化css代码让css代码减少,便于日后维护3.让自己写的cs ...
- Normalize.css:优化重置CSS默认属性
Normalize.css:优化重置CSS默认属性 官方网站:http://necolas.github.io/normalize.css/ 项目仓库:https://github.com/necol ...
- css选择器优化
css选择器优化@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@impor ...
- 第二次讨论——响应式设计、布局技巧、css性能优化、css预处理
第二次讨论 [响应式设计] 集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相对应的布局. 响应式布局: meta标签的实用:设置布局宽度等于 ...
- 10个CSS简写/优化技巧-摘自网友
10个CSS简写/优化技巧23来源/作者:未知 类别:前端开发 字体大小:大|中|小 背景颜色:蓝|白|灰 ? ? CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CS ...
- (转载)不错的CSS写法
根据微信订阅号“设计达人”推送的文章,学到了如题知识.个人尝试了一下,感觉还不错.原文链接:http://mp.weixin.qq.com/s/g9TyBwB9xIi45TGwTBOLSQ. 字体 从 ...
- CSS性能优化的8个技巧
本文作者:高峰,360奇舞团前端工程师,W3C性能工作组成员,同时参与WOT工作组的学习. 我们都知道对于网站来说,性能至关重要,CSS作为页面渲染和内容展现的重要环节,影响着用户对整个网站的第一体验 ...
- 优雅的css写法
一.利用好代码折叠 css也可以进行优雅的代码折叠而且会比html更好看 折叠后的效果: 这样就可以很舒服的把它折叠起来. 二.向Twitter Bootstrap学习 1. 学习的第一点就是用cla ...
随机推荐
- replication_slot and PostgreSQL Replication
主库IP:192.168.230.128 备库IP:192.168.230.129 PostgreSQL版本: 主备机PostgreSQL源码包均位于/opt/soft_bak OS:CentOS5 ...
- Java中几种日志方案
.本文记录Java中几种常用的日志解决方案 0x01 Log4j .这应该是一个比较老牌的日志方案了,配置也比较简单,步骤如下 1)添加对应依赖,比如 Gradle 中 dependencies { ...
- eclipse 改变字体大小
- [原创]java WEB学习笔记63:Struts2学习之路--表单标签 用户注册模块
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 常见的appbug(转)
移动App Bug的影响是用户体验差.App的商店评级下降.用户换用竞争对手的App,声誉和信誉损失.最后销售量减少,如果它是一个付费App的话. 移动App测试与传统台式机测试相比有一定的复杂性.这 ...
- 侧菜单栏的实现SlidingPaneLayout
SlidingPaneLayout分为两部分,上面的 左划出部分和没划出的时候 <?xml version="1.0" encoding="utf-8"? ...
- 继承 Bean 配置
继承 Bean 配置 Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean子 Bean 从父 Bean 中继承配置, ...
- paper 40 :鲁棒性robust
最近只想安心.安静的科研,不想被任何人打扰,继续做自己,不忘初心,方得始终! 首先了解下鲁棒性这个词的定义.鲁棒性是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性.根据对性能的不同定义 ...
- event对象的属性
事件类型: bubbles:布尔值,表示事件是否通过DOM以冒泡形式触发. 事件发生时,反应当前环境信息的属性: button: 表示(如果有)鼠标所按下的按钮 ctrlKey: 布尔值,表示Ctrl ...
- 夺命雷公狗---2016-linux---2之软件实现远程登录
废话不多说,操作方法如下所示: