高手总结CSS书写技巧
创始人
2024-04-19 18:31:27
0

这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。

由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等

书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法

CSS书写技巧-1:!important

!important作用是提高指定样式规则的应用优先权。

IE7以及所有标准浏览器能识别!important

区别IE6与IE7与其他浏览器

  1. .browserTest
  2. {
  3. border:20pxsolid#60A179!important;
  4. border:20pxsolid#00F;
  5. }

在Mozilla中或者IE7浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:

在IE6中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:

CSS书写技巧-2:*

IE都能识别*;标准浏览器(如火狐)不能识别*

区别IE6与火狐

  1. .browserTest
  2. {
  3. border:20pxsolid#60A179;
  4. *border:20pxsolid#00F;
  5. }

区别IE7与火狐

  1. .browserTest
  2. {
  3. border:20pxsolid#60A179;
  4. *border:20pxsolid#00F;
  5. }

区别IE7,IE6与火狐

  1. .browserTest
  2. {
  3. border:20pxsolid#60A179;
  4. *border:20pxsolid#00F!important;
  5. *border:20pxsolid###;
  6. }

CSS书写技巧-3:_

IE6支持下划线,IE7和firefox均不支持下划线

区别IE7,IE6与火狐

  1. .browserTest
  2. {
  3. border:20pxsolid#60A179;
  4. *border:20pxsolid#00F;
  5. _border:20pxsolid###;
  6. }
  7. /*不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在***面*/

CSS书写技巧-4:*+html 与 *html

*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签

  1. .browserTest{width:120px;}/*FireFoxfixed*/
  2. *html.browserTest{width:80px;}/*ie6fixed*/
  3. *+html.browserTest{width:60px;}/*ie7fixed*/

注意:

*+html 对IE7的HACK 必须保证HTML顶部有如下声明:

/*****************************************************************************/

/*****************************************************************************/

以下是一些常用的CSS兼容技巧

1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)

2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)

3)水平居中,margin:0 auto;(当然不是***)

4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)

5)浮动IE产生的双倍距离

在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置

  1. display:inline。
  • 相应的css为
  • #float
  • {
  • float:left;
  • margin:5px;/*IE下理解为10px*/
  • display:inline;/*IE下再理解为5px*/
  • }
  • Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);

    6)IE和FF对盒模型的解释区别

    1. #browserTest{width:650px!important;width:648px;padding-left:2px;background:#fff;}

    browserTest显示的宽度是650px;

    IE Box的总宽度是:width+padding+border+margin宽度总和;

    FF Box的总宽度就是:width的宽度,padding+border+margin的宽度在含在width内。

    如果有BOX{WIDTH:"300"; PADDING:"5PX";}

    则BOX在IE的宽度应该为:310

    而在FF的宽度则是300

    所以在BOX有填充的情况下应该这样使用

    BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

    7)ul标签在FF下面默认有list-style和padding, ***事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)

    8)作为外部wrapper的div不要定死高度, ***还加上 overflow: hidden;以达到高度自适应;

    9)页面的最小宽度

    min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个, 而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个

    放到 标签下,然后为div指定一个类:

    然后CSS这样设计:

    1. #container{min-width:600px;width:expression(document.body.clientWidth<600?"600px":"auto");}

    ***个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

    CSS书写技巧-10:***float闭合

    将以下代码加入Global CSS 中,给需要闭合的div加上

    1. /**********************************************/
    2. "wrap">
    3. "column_left">
    4. Floatleft

  • "column_right">
  • Floatright

  • #wrap{border:6px#cccsolid;overflow:auto;_height:1%;}
  • .column_left{float:left;width:20%;padding:10px;}
  • .column_right{float:right;width:75%;padding:10px;border-left:6px#eeesolid;}
  • 【编辑推荐】

    1. CSS 3中的炫目新功能抢先预览
    2. CSS 3备受期待的8大功能
    3. CSS网页布局困扰新手的八个问题
    4. 25个下拉菜单导航脚本下载
    5. HTML 5 正式标准恐将2022年才能正式发布

    相关内容

    热门资讯

    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
    20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
    德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
    为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
    《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
    2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...