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 ...
随机推荐
- Linux下原子性操作,类似Windows下的InterLockedXXX
其中,这些操作的操作数(type) 可以是1,2,4或8字节长度的int类型,即: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int ...
- Python之配置文件模块 ConfigParser
写项目肯定用的到配置文件,这次学习一下python中的配置文件模块 ConfigParser 安装就不说了,pip一下即可,直接来个实例 配置文件 project.conf [db] host = ' ...
- 鼠标放上去,不同的cursor光标类型
<!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...
- 【java开发系列】—— JDK安装
前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...
- 转:python webdriver API 之浏览器的操作
1.1.浏览器最大化在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性.比如可以跟 sikuli 结合,使用 sikuli 操作 flash.# ...
- java装饰者模式理解
java 装饰者模式其实就是扩展子类的功能,和继承是一个性质. 但继承是在编译时就固定扩展了父类的一些功能,而装饰者模式是在运行过程中动态绑定对象,实现一个子类可以随时扩展功能. 将方法排列组合,也可 ...
- 07---Net基础加强
第六节复习 泛型和非泛型集合的区别 通常情况下,建议您使用泛型集合,因为这样可以获得类型安全的直接优点而不需要从基集合类型派生并实现类型特定的成员.此外,如果集合元素为值类型,泛型集合类型的性能通常优 ...
- 夺命雷公狗---Thinkphp----5之数据库的链接
我们打开WEB目录下发现了Common和Home以及Runtime这三个文件夹 那么我们第一个目标是完成网站后台的首页吧,那么我们就直接将Home的文件夹复制一份出来,并且改名为Admin这样就可以分 ...
- DMA-330(二)
DMA内部的block diagram: DMAC包含一个instruction processing block,来process program code,control DMA transfer ...
- [OrangePi] Features (the features of Loboris's Images)
boot0_sdcard.fex, u-boot.fex and kernel (uImage) created from sources kernel built with many feature ...