很明显,一旦你去很认真的学习使用CSS,你一定会发现某些问题,这些问题可能是由误解造成的,可能是由对规则的不了解或者浏览器的漏洞造成的。CSS Crib Sheet就是一个好建议的荟萃,有Dave Shea整理,下面还将有一些重要的而且是Dave没有提及的小窍门。
-
先校验:在调试的时候,先由校验开始吧,HTML和CSS都要进行校验。许多问题都是由不规范代码引起的。
-
先在最先进的浏览器中调试,然后才轮到其他的浏览器: 如果你刚开始就用对CSS支持不好的浏览器调试,那么你所编的CSS将会逐渐适应这种错误的处理。当你继续在更先进的浏览器中测试,一些你所不希望的内容就会出现了。最好还是首先在一个有很好标准兼容性的浏览器中运行,然后再把代码拿到老一点的浏览器中去测试。
-
理解CSS的盒模型:为了获得一个元素的实际的宽度和高度,你需要用
padding
和border
来增加它的width
或者height
。在Internet Explorer 5.*/Win中,padding
和border
是被包括在已知的width
和height
。假设你有如下的CSS代码:
div.box { width:300px; padding:20px; border:10px solid; }所以这个div的总宽度是360px.
10px + 20px + 300px + 20px + 10px = 360px在Internet Explorer 5.*/Win中,实际上总宽度为300px, 内容的宽度为240px.
300px - 10px - 20px - 20px - 10px = 240px为了绕过这个问题, 你同样可以使用CSS hack来给不同的浏览器提供不同的值,或者你尽量避免在同一个元素中同时定义
width
和padding
或者width
和border
。想了解关于CSS盒模型的更详细内容,请参阅 Box model。
-
为非零的数值加上单位:CSS要求一些属性值(如
width
、height
、font-size
)必须要有单位。当属性值为0时是可以例外的。在那种情况下,没有单位也是必须的,因为0就是0,什么单位也都无所谓了。 -
理解漂浮物:尽管漂浮物这个概念很难理解,但是它很重要,因为CSS中会频繁的使用它来布局。有一些关于漂浮物的好文章,如Containing Floats、Floatutorial和Float: The Theory。
-
“LoVe/HAte?” 按照如下顺序为链接定义伪类:Link, Visited, Hover, Active.
-
“TRouBLed?”当使用简写来定义
margin
、padding
和border
时, 他们的顺序是从上开始的顺时针方向: 上、右、下、左。 -
以其功能给CLASS和ID命名,而不是它的表现: 如果你有一个CLASS名为
.smallblue
, 过后你决定用它来定位文本,使其为大号、红色,那么CLASS的名字就会被弄混淆的。最好能用名字来描述功能和结构,如.copyright
和.im portant
。 -
CSS是个敏感的东西:当HTML属性中的
class
和id
与CSS一起使用时,那可就要小心了。 (参见CSS2 syntax and basic data types). -
检查你的ID:文档中一个元素只能使用一个
id
,且id必须唯一,而class
可以被多个元素所共享。 -
使用合法的字符为
class
和id
命名:Class
和id
的名字只能由数字、字母和连字符组成,数字和连字符是不可以开头的。(参见 CSS2 syntax and basic data types). -
正确的注释:CSS的注释是以
/* This is a comment *//*
开头,以*/
结尾的:
有很多例子和阶梯教程指导您如何使用CSS布局。建议您从简单的例子开始,学习它的原理,然后再去学习复杂的布局。
相关文章:- Simple 2 column CSS layout
一个例子,介绍如何创建有头部和尾部的双栏布局。
- CSS Layouts
不同CSS布局展示