博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css hack
阅读量:6711 次
发布时间:2019-06-25

本文共 1614 字,大约阅读时间需要 5 分钟。

什么是css hack

  由于不同厂商的浏览器或某浏览器的不同版本(如IE6-IE11,Firefox,Safari,Opera,Chrome等),对Css的支持,解析不一样,导致

在不同浏览器的环境中呈现出不一致的页面展现效果。这时,为了获得统一的页面效果,就需要针对不同的浏览器或不同版本写特定的css样式。

我们把这个针对不同的浏览器/不同版本写相应的css代码的过程,叫做css hack。

 

css hack的分类

  CSS Hack大致有3种表现形式,CSS属性前缀法,选择器前缀法,以及IE条件注射法(即HTML头部引用if IE)Hack,实际项目中CSS Hack

大部分是针对IE浏览器不同版本之间的表现差异而引入的。

  (1)属性前缀法(即类内部Hack):例如IE6能识别下划线“_”和星号"*",IE7能识别星号"*",但不能识别下划线"_",IE6~IE10都认识

"\9",但是firefox前述三个都不认识。

      1.属性前缀法是在CSS样式属性名前加上一些只有特定浏览器才能识别的hack前缀,以达到预期的页面展现效果。

      2.在标准模式中

        -1."_"下划线IE6识别

        -2."*"星号IE7识别

        -3."\9" IE6~IE10都识别

        -4.“\0” IE8~IE10都识别

        -5.“\9\0”只对IE9/IE10识别

  (2)选择器前缀法(即选择器Hack):例如IE6能识别*html.class{},IE7能识别* + html.class{}或者*.first-child + html.class{}

      1.选择器前缀法是针对一些页面表现闭一只或者需要特殊对待的浏览器,在css选择器前加上一些只有在某些特定浏览器才能识别

      的前缀进行hack,并不常用。

      2.目前常见的是:

        -a.*html*前缀只对IE6生效

        -b.*+html*+前缀只对IE7生效

    
i am div1
i am div2

 

  (3)IE条件注释法(即HTML条件注释Hack):针对所有IE(注:IE10+已经不再支持条件注释):

<!--[if IE]>IE浏览器显示的内容<![endif]-->,针对IE6即以下版本:<!--[if lt IE 6]>只在IE6显示的内容<![endif]-->。这类Hack不仅对

CSS生效,对写在判断与距里面的所有代码都会生效。

      1.只在IE下生效:

            <!--[if IE]>

            这段文字只在IE浏览器显示

            <![endif]-->

      2.只在IE6下生效:

            <!--[if IE 6]>

            这段文字只在IE6浏览器显示

            <![endif]-->

      3.只在IE6以上版本生效:

            <!--[if gte IE 6]>

            这段文字只在IE6及以上版本IE浏览器显示

            <![endif]-->

      4.只在IE8不生效

            <!--[if !IE 8]>

            这段文字在非IE8浏览器显示

            <![endif]-->

    

 

转载于:https://www.cnblogs.com/yangfanasp/p/7010918.html

你可能感兴趣的文章
ArrayAdapter的简单应用实例(初级入门引导)
查看>>
这大概是今年介绍云原生最清晰明了的文章!
查看>>
COGS314. [NOI2004] 郁闷的出纳员
查看>>
angular 7报错
查看>>
svn 删除svn项目命令
查看>>
linux知识点集锦
查看>>
任务与函数
查看>>
SCRUM MASTER检查单
查看>>
13.Zookeeper的java客户端API使用方法
查看>>
《大话设计模式》读书笔记-第9章 原型模式
查看>>
排序五:快速排序
查看>>
POJ - 3264——Balanced Lineup(入门线段树)
查看>>
Python中的多进程与多线程/分布式该如何使用
查看>>
C语言基础教程源码
查看>>
微信公众号
查看>>
LeetCode - 1. Two Sum
查看>>
[LeetCode]: 64: Minimum Path Sum
查看>>
vuex简介(转载)
查看>>
OA系统审批邮件业务规则整理
查看>>
erlang.mk和makefile语法剖析
查看>>