五个小窍门帮你写出更好的CSS代码(2)
作者:ximicc 来源:ximicc博客 发布时间:2009-06-09 12:42:00
标签:样式,css,代码
3.花点时间对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*****/
定义其他的选择器。
通过注解和归类相似元素的分组,将更快的找到你想要的。
4.至少为自己保持某些一致性
无论你决定使用什么方式去编写代码,保持一致。我已经对全部放在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; }
所以找到你喜欢的工作方式然后保持一致。
5.从正确的地方开始
在完成标记语言之前不要去尝试靠近你的样式表。
当我准备分割一张网页的时候,创建CSS文件之前,我需要预览并且标记Body开标签到Body的闭合标签之间的所有文档。我不会增加额外的DIV ,ID,或者类选择器。我将会添加一些一般的DIV,就好像hearder、content、footer,因为我知道这些东西是现实存在的。
利用CSS子选择器指定子元素;不要只是机械的给元素添加类或者ID选择器。记住:没有一个良好的格式化文档(或者标记结构)CSS是无价值的。


猜你喜欢
- 前言: 时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇
- 本文实例为大家分享了tkinter实现页面跳转的具体代码,供大家参考,具体内容如下主函数main.pyfrom tkinter import
- 本文简单的分析了Python中常用的内置函数的用法,分享给大家供大家参考之用。具体分析如下:一般来说,在Python中内置了很多有用的函数,
- JavaScript组件打包模式js组件通常带着css image ,但这样使用起来可能会有些小麻烦,为了让组件足够的solo,有了把css
- Jaslabs的Justin Silverton列出了十条有关优化MySQL查询的语句,我不得不对此发表言论,因为这个清单非常非常糟糕。另外
- 本文实例讲述了Python通过公共键对字典列表排序算法。分享给大家供大家参考,具体如下:问题:想根据一个或多个字典中的值来对列表排序解决方案
- 一、不要使用可变对象作为函数默认值In [1]: def append_to_list(value, def_list=[]):
- 如下所示:jsonObject 是个jsonif (key in jsonObject) : print '有'else:
- 背景:最近在做vue的项目,因为页面的逻辑比较复杂,代码量较多,所以就想抽离出一些组件放到component里面。问题就随之来了。因为vue
- 本文实例讲述了PHP实现更改hosts文件的方法。分享给大家供大家参考,具体如下:有这样一个需求,我有多个网址希望在不同的时候对应不同的 i
- 使用itertools工具类中的chain方法,可以很方便的将多个iterable对象一起遍历. 不过,对于dict类型的iterable对
- 上次我们已经搞定了逻辑层的单元测试,这次我们来康康接口层的单元测试。接口层主要负责的就是请求的处理,最常见的就是 HTTP 请求的处理。但针
- 有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上"",如&
- 网上看到一个python写的数独,很好玩,分享给大家。import randomimport itertoolsfrom copy impo
- 1. 常用模块# 连接数据库connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象PG_CONF_123 = {
- 目录1.导入tf.keras2.构建简单模型2.1模型堆叠2.2网络配置3.训练和评估3.1设置训练流程3.2输入Numpy数据3.3tf.
- ChatGPT 是 OpenAI 开发的 GPT(Generative Pre-trained Transformer)语言模型的变体。它是
- 题目描述原题链接 :496. 下一个更大元素 I - 力扣(LeetCode) (leetcode-cn.com)nums1 中数
- 在pandas 基础操作大全之数据读取&清洗&分析 以及 pandas基础操作大全之数据合并 中介绍了p
- keras 中fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1,