高效整洁CSS代码原则 (下)
6. 适当的代码注释
代码注释可以让别人更容易读懂你的代码,且合理的组织代码注释,可使得结构更加清晰。你可以选择做的样式表的开始添加目录:
/*------------------------------------
1. Reset
2. Header
3. Content
4. SideBar
5. Footer
----------------------------------- */
如此你代码的结构就一目了然,你可以容易的查找和修改代码。
而对于代码的主内容,也应适当的加以划分,甚至在有必要的地方在对代码加以注释说明,这样也有利于团队开发:
/*** Header ***/
#header{height:145px; position:relative; }
#header h1{width:324px; margin:45px 20px; float:left; height:72px;}
/*** Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px;overflow:hidden;}
#content h1{color:#F00}/* 设置字体颜色 */
#content.posts{overflow:hidden; }
#content.recent{margin-bottom:20px; border-bottom:1px solid #f3f3f3;position:relative;overflow:hidden;}
/*** Footer ***/
#footer{clear:both; padding:50px 5px ;overflow:hidden;}
#footer h4{color:#b99d7f; font-family:Arial Helvetica,sans-serif;font-size:.1em; }
7. 给你的CSS代码排序
如果代码中的属性都能按照字母排序,那查找修改的时候就能更加快速:
/*** 样式属性按字母排序 ***/
div{
background-color:#3399cc;
color:#;
font:.2em/.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 10px 5px;
width:%;
z-index:;
}
8. 保持CSS的可读性
书写可读的CSS将会使得更容易查找和修改样式。对于以下两种情况,哪种可读性更高,我想不言而明。
/*** 每个样式属性写一行 ***/
div{
background-color:#3399cc;
color:#;
font: .2em/.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 10px 5px;
width:%;
z-index:;
}
/*** 所有的样式属性写在同一行 ***/
div{background-color:#3399cc; color:#; font: .2em/.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 10px 5px; width:%; z-index:; }
当对于一些样式属性较少的选择器,我会写到一行:
/*** 选择器属性少的写在同一行 ***/
div{background-color:#3399cc; color:#;}
对于这个规则并非硬性规定,但无论您采用哪种写法,我的建议是始终保持代码一致。属性多的分行写,属性少于3个可以写一行。
9. 选择更优的样式属性值
CSS中有些属性采用不同的属性值,虽然达到的效果差不多,当性能上却存在着差异,如区别在于border:0把border设为0px,虽然在页面上看不见,
但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。而border:none把border设为"none"即没有,
浏览器解析"none"时将不作出渲染动作,即不会消耗内存值。所以建议使用border:none;
同样的,display:none隐藏对象浏览器不作渲染,不占用内存。而visibility:hidden则会。
10. 使用<link>代替@import
首先,@import不属于XHTML标签,也不是Web标准的一部分,它对于较早期的浏览器兼容也不高,并且对于网站的性能有某些负面的影响。
11. 使用外部样式表
这个原则始终是一个很好的设计实践。不单可以更易于维护修改,更重要的是使用外部文件可以提高页面速度,因为CSS文件都能在浏览器中产生缓存。
内置在HTML文档中的CSS则会在每次请求中随HTML文档重新下载。所以,在实际应用中,没有必要把CSS代码内置在HTML文档中:
<style type="text/css" >
#container{ .. }
#sidebar{ .. }
</style>
而是使用<link>导入外部样式表:
<link rel="stylesheet" type="text/css" href="css/styles.css" />
12. 避免使用CSS表达式(Expression)
CSS表达式是动态设置CSS属性的强大(但危险)方法。
Internet Explorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式可以实现隔一个小时切换一次
背景颜色:
background-color: expression( (new Date()).getHours()% ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。
表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。
给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。
如果必须使用CSS表达式,一定要记住它们要计算成千上万次并且可能会对你页面的性能产生影响。所以,在非不得已,请避免使用CSS表达式。
13. 代码压缩
当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。
压缩您的代码,可以采用一些工具,如YUI Compressor,利用它可精简CSS代码,减少文件大小,以获得更高的加载速度。
高效整洁CSS代码原则 (下)的更多相关文章
- 高效整洁CSS代码原则(上)
CSS学起来并不难,但在大型项目中,就变得难以管理,特别是不同的人在CSS书写风格上稍有不同,团队上就更加难以沟通,为此总结了一些如何实现高效整洁的CSS代码原则: 1. 使用Reset但并非全局Re ...
- 高效的CSS代码(2)
——阅读笔记,欢迎纠错^_^ 内容比较零散..... 1.让浮动元素的父容器根据元素的高度而自适应高度的方法: <div class="clearfix"><di ...
- CSS代码原则
css的团队合作规则以及怎样写出高性能的css代码. 一.使用Reset但并非全局Reset 同浏览器元素的默认属性有所不同,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容.但需要注 ...
- 高效的CSS代码(1)
——阅读笔记,欢迎纠错 平时写CSS时常用的两个CSS文档(小杂感觉用的蛮喜欢,也是看了些书,尝试使用效果不错) /************CSS reset *********/ /******** ...
- 实用的60个CSS代码片段[下]
31.有趣的& .amp { font-family: Baskerville, 'Goudy Old Style', Palatino, 'Book Antiqua', serif; fon ...
- 教你如何写出高效整洁的 css 代码——css优化(转载)
css 写起来并不难,但在大型项目中,就变得难以管理,特别是不同的人在 css 书写风格上稍有不同,团队上就更加难以沟通,为此总结了一些如何实现高效整洁的 css 代码原则. css 优化的原则 1. ...
- [css] 【转载】 精简高效的CSS命名准则/方法
原文链接:http://www.zhangxinxu.com/wordpress/2010/09/%E7%B2%BE%E7%AE%80%E9%AB%98%E6%95%88%E7%9A%84css%E5 ...
- 高效率、简洁、CSS代码优化原则
高效率.简洁.CSS代码优化原则 CSS学起来并不难,但在大型项目中,一个团队中不同的人在书写CSS风格上也有不同这样这个项目就变得难以管理,团队上就更加难以沟通,为此总结了一些如何实现高效整洁的CS ...
- 编写高效的 CSS 选择器
高效的CSS已经不是一个新的话题了,也不是我一个非得重拾的话题,但它却是我在Sky公司工作之时,所感兴趣的,关注已久的话题. 有很多人都忘记了,或在简单的说没有意识到,CSS在我们手中,既能很高效,也 ...
随机推荐
- 使用ResponseEntity进行返回json数据
在最近的项目中,与上位机进行数据传输时,上位机需要服务器的响应得知服务器是否正常运行,数据是否正常发送 在最近的调试中我使用ResponseEntity<Map<String,Object ...
- Spring_用Spring容器创建对象并给属性赋值
创建spring配置文件:spring-config.xml.对象的创建和赋值都在这里进行配置. 创建实体类,设置属性 import java.util.List; import java.util. ...
- [编织消息框架][JAVA核心技术]数值与逻辑分离
为什么要分离? 业务需求是不停地变,如果把条件写进代码里,当用户需求变时要改代码发版本更新才能生效,这过程无疑是漫长的 就算是在开发期,不停的变开发者精力耗光在沟通,小修改上,无法专注逻辑部分 分离的 ...
- pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问
1. sudo gedit /usr/bin/pip 将pip改为pip._internal 2.pip install XX 改为 pip install --user XX
- IT外包概要
IT外包 前两天和朋友聊起这个外包的问题,就顺便给他说了一下,自己也整理了一下,发出来,方便更多的人. 如果有说的不准确的地方欢迎大家补充分享. 大致分两种: 项目外包, 人力外包. 简而言之:项目外 ...
- 44个 Javascript 变态题解析 (下)
承接上篇 44个 Javascript 变态题解析 (上) 第23题 [1 < 2 < 3, 3 < 2 < 1] 这个题也还可以. 这个题会让人误以为是 2 > 1 & ...
- 爬虫(三)通过Selenium + Headless Chrome爬取动态网页
一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip inst ...
- java反编译工具使用记录
最近试了四个反编译工具,总结一下. 先说结论,最有效果的是Procyon Decompile.使用方法:https://blog.csdn.net/u010762551/article/details ...
- canvas绘制video
html <video style="position: relative; object-fit: fill;" preload="auto" id=& ...
- 外网如何访问vmware虚拟机的web服务(转载)
目的: 主机上安装了VMware,VMware上安装了Linux虚拟机(我安装的是Centos7).我想让虚拟机向外提供Web服务.本文记录如何让我的主机和外网用户可以访问VM虚拟机上的Web. 网络 ...