文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CSS中Hack的基本原理和实现方式

2024-04-02 19:55

关注

本篇内容主要讲解“CSS中Hack的基本原理和实现方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中Hack的基本原理和实现方式”吧!

CSS Hack的基本原理和实现方式

由于不同的浏览器,比如IE6、IE7、IE8、Firefox等,对CSS解析的标准不同,因此对于相同的CSS代码,可能会生成不同的页面效果,从而无法在所有浏览器中得到我们想要的效果。这时,我们就需要针对不同的浏览器去写不同的CSS代码,让它能够在所有浏览器中获得相同的效果。这个过程,就是CSS hack。也就是写出只有个别浏览器或某些浏览器识别的CSS代码。

CSS Hack的基本原理

CSS hack是因为现有浏览器对标准的解析不同,为了兼容各浏览器,所采用的一种补救方法。

CSS hack是一种类似作弊的手段,以欺骗浏览器的方式达到兼容的目的,是用浏览器的兼容性差异来解决浏览器的兼容性问题。因此,在设计之初,写CSS hack需要遵循以下三条原则:

◆有效:能够通过Web标准的验证

◆只针对太古老的/不再开发的/已被抛弃的浏览器,而不是目前的主流浏览器

◆代码要丑陋。让人记住这是一个不得已而为之的Hack,时刻记住要想办法去掉它。

现在很多hacks已经抛弃了最初的原则,而滥用hack会导致浏览器更新之后产生更多的兼容性问题。因此,并不推荐使用CSS hack来解决兼容性问题。

CSS hack的实现方式

我总结了一下,实现CSS hack大概有以下几种方式:

1.利用浏览器对相同代码的解析和支持的不同实现的hack

不同浏览器对相同的CSS代码的支持情况可能不同。尤其是对错误的写法。

例如

CSScode

#test{  _width:80px;  }

在IE7及以上版本的浏览器中会被当作错误特性而舍弃,但是在IE6中可以被正常的解析。这时候,可以把_width当作hack,专门针对IE6来设置元素的宽度。

2.以Firefox或Webkit特有的扩展样式实现的hack

以-moz或-webkit开头的扩展样式,是浏览器对CSS标准的扩展。这些特性只在相应的浏览器里才可以被正常的解析。因此可以被当作CSS hack来使用。

◆以-moz开头的Firefox特有扩展样式

Mozilla浏览器支持的一些扩展是以-moz开头的。这些扩展包括了一些功能,例如圆形边界等。这种CSS只适用于Mozilla浏览器。
比如,-moz-opacity是在Firefox2.0版本出现的特性,用来实现元素的透明,但Firefox3.0以后的版本中不再支持,而是直接支持标准中的opacity特性。而其他浏览器不支持-moz-opacity。所以,可以使用-moz-opacity来针对Firefox2.0设置元素的透明度。
关于Firefox扩展样式的详细信息,见MozillaCSSExtensions。

◆以-webkit开头的Webkit浏览器特有扩展样式

与以-moz开头的Firefox特有扩展样式相同,以-webkit开头的样式是Webkit浏览器特有的,只有Webkit浏览器可以解析。
比如,在Webkit浏览器中可以用-webkit-border-radius实现圆角。

3.利用IE对标准的支持缺陷写的CSS hack

这个类别以中的hack以IE对标准的支持缺陷为基础,可以让CSS代码针对IE6或IE7以外的浏览器生效。
例如,!important只有IE7及以上版本的IE及其他浏览器支持,所以,可以用!important来针对IE6以外的浏览器写CSS代码;再如,head:first-child+bodyselector,:first-child不被IE6支持,所以可以用来针对IE6以外的浏览器编写CSS代码。
此处不在一一列举。

当然,有的观点认为应用CSS2.1标准,不属于CSS hack。见Tantek'sThoughts,UsingACSS2FeatureIsNOTaHack。

4.以IE特有的条件注释为基础的hack

IE浏览器中特有的条件注释也经常被用作hack,可以针对特定版本的IE写CSS代码。

例如,测试用例:

HTMLcode<!--[ifIE8]> <styletypestyletype="text/css"> #test{  color:red;  }  </style> <![endif]--> <h2idh2id="test">TEXT</h2>

以上代码中的"TEXT",只在IE8中才会是红色。

到此,相信大家对“CSS中Hack的基本原理和实现方式”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯