• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

IE中奇怪的应用CSS的BUG

时间:2015年04月02日 15:44:58    来源:魔法猪系统重装大师官网    人气:7070

 由于IE系浏览器对标准的支持不够好,导致Web开发中经常需要去处理浏览器兼容性问题,特别有些莫名其妙的问题很让人头疼,今天要说这个问题就是这样的,先从插入CSS的三种方法说起:

 

外部样式(External Style Sheet)

  当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 标签链接到样式表。 标签在(文档的)头部:

1

2

3

内部样式(Internal Style Sheet)

  当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用

7

内联样式(Inline Styles)

  由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。

1

This is a paragraph

多重样式(Multiple Styles)

  如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况,一般情况下优先级如下:

 

  (外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style

 

  之所以说是一般情况是因为可以使用!important来改变这种顺序,比如外部样式如果某个样式项使用了!important来提高优先级,其优先级将比内联样式高。还有个例外的情况就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式:

01

02

03

06

07

08

09

10

11

12

测试!

13

  文字的颜色将是蓝色,因为外部样式的蓝色覆盖了内部样式的绿色,这在主流浏览器中表现都是一致的,包括IE在内。然而另外一种方式插入样式,IE就表现出它的另类了。这种方法是使用脚本在外部样式前插入内部样式,即上面的内部样式用脚本创建出来,代码如下:

01 (function(){

02 var agent = window.navigator.userAgent.toLowerCase();

03 var is_op = (agent.indexOf("opera") != -1);

04 var is_ie = (agent.indexOf("msie") != -1) && document.all && !is_op;

05 var is_ch = (agent.indexOf("chrome") != -1);

06

07 var cssStr="h3 {color:green;}";

08 var s=document.createElement("style");

09 var head=document.getElementsByTagName("head").item(0);

10 var link=document.getElementsByTagName("link");

11 link=link.item(0);

12

13 if(is_ie)

14 {

15 if(link)

16 head.insertBefore(s,link);

17 else

18 head.appendChild(s);

19 document.styleSheets.item(document.styleSheets.length-1).cssText=cssStr;

20 }

21 else if(is_ch)

22 {

23 var t=document.createTextNode();

24 t.nodeValue=cssStr;

25 s.appendChild(t);

26 head.insertBefore(s,link);

27 }

28 else

29 {

30 s.innerHTML=cssStr;

31 head.insertBefore(s,link);

32 }

33 })();

  在firefox/Chrome/Safari/Opera中测试文字都是蓝色的,符合外部样式如果插入到内部样式前的话,外部样式将覆盖内部样式的原则,然而在IE下却是绿色的,也就是说IE在加载完页面文档,运行了脚本插入了内部样式之后,就把文字颜色设置成绿色了而忽略了后面外部样式。不知道大家是否也碰到这样的问题,欢迎讨论......

中奇,怪的,应用,CSS,的,BUG,由于,系,浏览器,对,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部