日期:2014-05-16  浏览次数:20860 次

CSS技巧及常见问题列表
  1. 1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。
    如:
  2. div{
  3. ? ? border-top:1px solid #cccccc;
  4. ? ? border-left:1px solid #cccccc;
  5. ? ? border-right:1px soli #cccccc;
  6. ? ? border-bottom:1px solid #cccccc;
  7. }
复制代码


可以写为

  1. p{border:1px solid #cccccc}
复制代码


再如:

  1. div{
  2. ? ? ? ? margin-top:10px;
  3. ? ? ? ? margin-right:20px;
  4. ? ? ? ? margin-bottom:30px;
  5. ? ? ? ? margin-left:40px;
  6. }
复制代码


可以改写为:

  1. /*注意上、右、下、左的书写顺序*/
  2. div{margin:10px 20px 30px 40px}
  3. /*注意,数值与单位不能有空格,每个值之间用空格隔开*/
复制代码


(详细请参考:css2参考手册、常用css缩写总结)

2、可以同时为一个html元素的class属性设定多个规则(多重class定义)。
通常我们写法为:<p class=”a”></p>
实际上我们可以为p元素指定多个规则,如:

  1. CSS:
  2. .a{…}
  3. .b{….}
  4. HTML:
  5. <p class="a b">该元素同时包括a和b中设定的样式</p>
复制代码


注意:多个规则之间用空格分开。

3、明确定义单位,除非值为0
忘记定义尺寸是css初学者新手普遍存在的问题。在html我们可以写width=”100”,但在css中应该给出一个准确的单位。 如:width:100px;height:50px;font-size:9pt ,0值除外,因为不论对于任何单位。0值的大小都是相等的。

注意:不要在数值和单位之间加空格。

4、区分大小写
在xhtml中,css定义的元素名称是区分大小写的,class和id的值在html和xhtml中也是区分大小写的,所以为了避免错误,推荐一律使用小写。
如#aaa,与#AAA是不同的,在xhtml中,p和P也是不同的.他们之间不会覆盖。
如果在css中定义了#aaa,在html元素中使用AAA来应用将不能得到#aaa中定义的样式。
示例代码:

  1. CSS:
  2. #aaa{border:1px solid #ccc}??
  3. HTML:
  4. <div id="AAA">显示不出来1个像素的边线</div>
复制代码



5、CSS的最近优先原则
如果对一个元素定义了多次样式,则以最近的一级优先,最近一级的样式将覆盖其他的样式定义。
如:

  1. CSS:
  2. p{color:red}
  3. .blue{color:blue}
  4. .yellow{color:yellow}
  5. HTML:
  6. <p>此处显示为红色</p>
  7. <p class="blue">此处显示为蓝色</p>
  8. <p class="blue" style="color:green">此处显示为绿色</p>
  9. <p class="blue yellow">此处显示为黄色</p>
复制代码


注意:
(1)注意样式的几个优先顺序(优先级由上至下递减):
--元素style设定
--head区<style></style>中的设定
--外部引用css文件
(2)优先级不是按访问顺序来设定的,而是又css中的声明顺序来设定的。
如上例中<p class="yellow blue">此处显示为黄色</p>也显示为黄色,因为在css定义中.yellow在.blue的后面。

6、使用子选择器减少id和class的定义
例如:

  1. #contain{..}
  2. #contain_ul{...}
  3. .contail_li{...}
  4. <div id="contain">
  5. ? ? ? ? <ul id="contain_ul">
  6. ? ? ? ? ? ? ? ? <li class="contain_li"></li>
  7. ? ? ? ? ? ? ? ? <li class="contain_li"></li>
  8. ? ? ? ? </ul>
  9. </div>
复制代码


可以更改为:

  1. #contain{..}
  2. #contain ul{...}
  3. .contain ul li{...}
  4. <div id="contain">
  5. <ul>
  6. ? ? ? ? <li></li>
  7. ? ? ? ? <li></li>
  8. </ul>
  9. </div>
复制代码



7、不要给背景图片路径加引号
将background:url("xxx.gif")改为background:url(xxx.gif)
因为对于部分浏览器加引号反而会引起错误。

8、背景图片的路径是相对与当前css页面的路径。

例如:
有如下目录结构
|--images
? ?|--xxx.gif
|--css
? ?|--xx.css
|--index.html
代码内容
index.html引用xx.css文件。<link rel="stylesheet" href="css/xx.css" />
xx.css要引用xxx.gi