CSS hack,CSS简写,CSS定义应注意的几个问题

  DIVCSS的实质是:使用XHTML对网站进行标准化重构,使用CSS将表现与内容分离。

    什么是浏览器HACK:当我们使用不同的浏览器(Firefox IE7 IE6)访问同一个网站,或者页面的时候,会出现一些不兼容的问题,有的显示出来正常,有的显示出来不正常。

    因此,在网站设计的时候,应该注意css样式在不同浏览器下的兼容性问题,特别是对完全使用DIV+CSS设计的网站,就应该更注意IE6 IE7以及FFCSS样式的兼容,不然,你的网页可能出现意料之外的效果。

 、区别不同浏览器的CSS hack写法:

区别IE6FF

       background:orange;*background:blue;

区别IE6IE7

       background:green !important;background:blue;

区别IE7FF

       background:orange; *background:green;

区别FFIE7IE6(一):

       background:orange;*background:green !important;*background:blue;

区别FFIE7IE6(二):

background:orange;*background:green;_background:blue;

    下面简单解释一下各浏览器怎样理解这三个属性:

    FF下,第23个属性FF不认识,所以它读的是 background:orange;

IE7下,第三个属性IE7不认识,所以它读第12个属性,又因为第二个属性覆盖了第一个属性,所以IE7最终读出的是第2个属性 *background:green;

IE6下,三个属性IE6都认识,所以三个属性都可以读取,又因为第三个属性覆盖掉前2个属性,所以IE6最终读取的是_background:blue;

注:

IE都能识别*;标准浏览器(FF)不能识别*

IE6能识别*,但不能识别 !important,

IE7能识别*,也能识别!important;

FF不能识别*,但能识别!important;

IE6支持_(下划线),IE7firefox均不支持_(下划线)。

 

 IE6

 IE7

 FF

 *

 √

 √

 ×

 !important

 ×

 √

 √

 _

 

 ×

 ×

注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。

区别FFIE7IE6(三):

*+html *html IE特有的标签, firefox 暂不支持.

*+html 又为 IE7特有标签.

<style>

#wrapper

{

#wrapper { width: 120px; } /* FireFox */

*html #wrapper { width: 80px;} /* ie6 fixed */

*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */

}

</style>

注意:

*+html IE7HACK 必须保证HTML顶部有如下声明:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

二、CSS定义需要注意的问题:

   1.检查HTML元素(:<ul><div>)、属性(:class=”")是否有拼写错误、是否忘记结束标记(:<br />)
  因为Xhtml 语法比较严格,诸如Firefox 之类的浏览器如果检查发现Xhtml里面有语法错误,那页面是不能正常显示的。即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一下有无错误。

  2. 检查CSS是否正确

  检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用CleanCSS来检查 CSS拼写错误。CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误。

  3. 确定错误发生的位置

  如果错误影响了整体布局,则可以逐个删除div块,直到删除某个div块后显示恢复正常,即可确定错误发生的位置。

  4. 利用border属性确定出错元素的布局特性

  使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。

  5. float元素的父元素不能指定clear属性

  MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的着名的bug,倘若不知道就会走弯路。

  6. float元素务必指定width属性

  很多浏览器在显示未指定widthfloat元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。另外指定元素时尽量使用em而不是px做单位。

  7. float元素不能指定marginpadding等属性

  IE在显示指定了marginpaddingfloat元素时有bug。因此不要对float元素指定marginpadding属性(可以在float元素内部嵌套一个div来设置marginpadding)。也可以使用hack方法为IE指定特别的值。

  8. float元素的宽度之和要小于100%

  如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%

  9. 是否重设了默认的样式?

  某些属性如marginpadding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的marginpadding设置为0、列表样式设置为none等。

  10. 是否忘记了写DTD?

  如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下面这行DTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

三、CSS简写用法说明:

    简单的说,css简写就是在等效的前提下,把多句css代码简化成一句。在我看来,简写css的好处有三:一是写起来方便(就像键盘快捷键);二是简化代码;三是帮助你熟悉和深刻理解css

    能够简写的css属性主要有以下几个:

font

简写:

font:italic small-caps bold 12px/1.5em arial,verdana;

等效于:

font-style:italic;

font-variant:small-caps;

font-weight:bold;

font-size:12px;

line-height:1.5em;

font-family:arial,verdana;

顺序:font-style | font-variant | font-weight | font-size | line-height | font-family

注:简写时,font-sizeline-height只能通过斜杠/组成一个值,不能分开写。

    这种简写方法只有在同时指定font-sizefont-family属性时才起作用。而且,如果你没有设定font-weight, font-style, 以及 font-varient ,他们会使用缺省值。

background

简写:

background:#fff url(bg.gif) no-repeat fixed left top;

等效于:

background-color:#fff;

background-image:url(bg.gif);

background-repeat:no-repeat;

background-attachment:fixed;

background-position:left top;

顺序:background-color | background-image | background-repeat | background-attachment | background-position

margin & padding

简写:

margin:1px 0 2em -20px;

等效于:

margin-top:1px;

margin-right:0;

margin-bottom:2em;

margin-left:-20px;

顺序:margin-top | margin-right | margin-bottom | margin-left

padding的简写和margin完全一样。

border

简写:

border:1px solid #000;

等效于:

border-width:1px;

border-style:solid;

border-color:#000;

顺序:border-width | border-style | border-color

这三句也是简写,等于是把四边的样式合而为一了。(关于四边的问题,下文有详细说明)

border-top / border-right / border-bottom / border-left

简写:

border-top:1px solid #000;

等效于:

border-top-width:1px;

border-top-style:solid;

border-top-color:#000;

(和border一样)

list-style

简写:

list-style:square outside url(bullet.gif);

等效于:

list-style-type:square;

list-style-position:outside;

list-style-image:url(bullet.gif);

顺序:list-style-type | list-style-position | list-style-image

关于四边

有很多样式都涉及到了四边的问题,这里统一说明。

四边的简写一般如下:

padding:1px 2px 3px 4px;

等效于:

padding-top:1px;

padding-right:2px;

padding-bottom:3px;

padding-left:4px;

顺序:top | right | bottom | left

不论是边框宽度,还是边框颜色、边距等,只要css样式涉及四边,顺序通通都是上右下左(顺时针方向)。

如果四边的值省略一个,只写三个:

padding:1px 2px 3px;

则等效于:

padding-top:1px;

padding-right:2px;

padding-bottom:3px;

padding-left:2px;

(省略的值等于

如果四边的值省略两个:

padding:1px 2px;

则等效于:

padding-top:1px;

padding-right:2px;

padding-bottom:1px;

padding-left:2px;

(省略的值等于

如果只有一个值:

padding:1px;

则等效于:

padding-top:1px;

padding-right:1px;

padding-bottom:1px;

padding-left:1px;

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值