写出完美CSS代码的5个重要方面(2)
发布时间:2009-12-30 16:44:00
三、CSS样式的组织
你应该组织你的样式表以致相关的内容靠在一起,更简单的找到想要的。使用更有效的注解。举个例子,这是我如何构造我的层叠样式表:
/*****Reset*****/
移除元素的填充(padding)和边距(margin)。
/*****Basic Elements*****/
定义基本元素的样式: body, h1-h6, ul, ol, a, p, 等.
/*****Generic Classes*****/
定义简单的风格,好像浮动的某一侧, 移除元素的下边距, 等当然,它们大部分都与我们希望的语义不相关,但是它们是高效处理代码所必须的。
/*****Basic Layout*****/
定义基本的模板: header, footer等. 帮助定义网页布局的基本元素
/*****Header*****/
定义所有Hearder元素
/*****Content*****/
定义所有内容框内的元素
/*****Footer*****/
定义所有Footer的元素
/*****Etc*****/
定义其他的选择器。通过注解和归类相似元素的分组,将更快的找到你想要的。
四、保持一致性
无论你决定使用什么方式去编写代码,保持一致。我已经对全部放在1行VS多行的CSS编写编写方式的争论感到乏味和疲倦。这是不需要争辩的。每个人都有自己的观点,所以选择一种你喜欢的工作方式,并在所有的样式表中保持一致。
就我个人而言,我将使用两者结合的方式。如果一个选择器超过了3个属性,我将截断它采用多行的方式编写。
div#header { float: left; width: 100%; }
div#header div.column {
border-right: 1px solid #ccc;
float: rightright;
margin-right: 50px;
padding: 10px;
width: 300px;
}
div#header h1 { float: left; position: relative; width: 250px; }
所以找到你喜欢的工作方式然后保持一致。
五、从正确的地方开始
在完成标记语言之前不要去尝试靠近你的样式表。
当我准备分割一张网页的时候,创建CSS文件之前,我需要预览并且标记body开标签到body的闭合标签之间的所有文档。我不会增加额外的DIV ,ID,或者类选择器。我将会添加一些一般的DIV,就好像hearder、content、footer.因为我知道这些东西是现实存在的。
通过先标记文档,你将不会碰到本已注定的divities1和classitis2麻烦!/*You only need to add in that stuff once you have begun to write the CSS and realize that you are going to need another hook to accomplish what you are trying to achieve.*/(原文未译)。
利用CSS子选择器指定子元素;不要只是机械的给元素添加类或者ID选择器。记住:没有一个良好的格式化文档(或者标记结构)CSS是无价值的。


猜你喜欢
- 语法df.drop_duplicates(subset = None,
- 在Oracle 8i版本之前,使用internal用户来执行数据库的启动和关闭以及create database等操作;从8i版本以后,Or
- 1. 查看本机系统及python版本# cat /etc/redhat-release CentOS release 6.7 (Final)
- PS笔刷,样式,形状、渐变、滤镜载入方式及使用:1、笔刷载入方式: 打开PS,编辑-->预设管理器-->载入-->然后点你
- 使用SQL SERVER的[导入]功能,便可将access数据转换,但要注意原来的'自增字段'需要修改,将相应字段标识修改为
- 安装保证你的用户有权限 安装 没有 切换 rootsu root (su的意思:swich user)# rpm -ivh http://d
- 前言备受期待的django 2.0已经发布了,最大的一个变化就是不再支持python2.x版本了,这也为我们还在保守使用的2.x的同学们敲响
- 当我们在使用TestNG时,发现它有一个非常好用的参数化功能。当你的测试用例有固定的参数和断言结果时,它可以相似用例的节省用例的个数。例子如
- 在php中使用Xajax能够即时与数据库发生交互带给用户更好的体验主要的应用有网页的即时、不刷新的登录系统也可以利用于注册系统中即时验证用户
- 如何生成任意n阶的三对角矩阵数学作业要求实现共轭梯度法的算法。题目中的矩阵A是n=400/500/600的三对角矩阵。在网上查阅资料未果后,
- (一)Python 是如何进行内存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制⒈对象的引用计数机制Pyth
- 控制资源访问前文提到threading库在多线程时,对同一资源的访问容易导致破坏与丢失数据。为了保证安全的访问一个资源对象,我们需要创建锁。
- 大家好,我是安果!最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用
- 用wrapper封装这样在对象内外都可以访问function MapPool(){ function createMarker(n
- 本文实例为大家分享了OpenCV3.3+Python3.6实现图片高斯模糊的具体代码,供大家参考,具体内容如下高斯模糊高斯模糊(英语:Gau
- 看代码,tensor转numpy:a = torch.ones(2,2)b = a.numpy()c=np.array(a) #也可以转nu
- 前言笔者用的是mac开发,但是mac自带的php功能安装十分不方便,并且和线上的linux开发环境不一致。在没有用docker之前一直用va
- 有时候导入本地模块或者py文件时,下方会出现红色的波浪线,但不影响程序的正常运行,但是在查看源函数文件时,会出现问题问题如下:解决方案:1.
- 为了更好的理解邮件发送功能的实现,要先了解邮件发送系统的大致流程。首先 电子邮件之间的相互发送接受就像 邮局邮件发送
- 前言前面一直使用命令行运行pytest用例,本篇来学下使用pytest.main()来运行测试用例pytest.main()args 传一个