css @import必須放到其他css樣式定義之前

今天沒事看下css的東西,發現了一個小問題,
問題雖小,但是當你找不到原因的時候真是讓人鬱悶半天。

下面有個例子:

 

定義one.css文件 :
one.css:

 

/****************
* fileName:one.css
****************/

p{
	color:red;
}

 

定義two.css文件:

two.css:

 

 

/****************
* fileName:two.css
****************/

p{
	background:yellow;
}

 

定義test.css文件:

test.css:

 

 

/****************
* fileName:test.css
****************/

p{
	border:2px solid blue;
}
@import url("two.css");
@import url("one.css");

 

 

定義css.html文件

 

 

/****************
* fileName:css.html
****************/

<html>
	<head>
		<title>css</title>
		 <link rel="stylesheet" type="text/css" href="css/test.css" />
		</head>
	<body>
		<p>aaa</p>
		<p style="text-align:center">bbb</p>
		<p>ccc</p>
		</body>
	</html>
 

 

 

從上面的代碼中可以看出來,test.css引用了one.css和two.css兩個文件。

 

上面的代碼看上去沒什麼問題?! 

 

我在IE中打開css.html的時候所有定義的css樣式都可以顯示出來,

 

但是當我在chrome瀏覽器中打開css.html的時候發現,只有test.css中的p段落定義的樣式有效果,

 

而通過@import引入進來的css文件都沒有效果。

 

通過網上查資料才發現,原來是css引入的時候,必須放到css文件的開頭,

 

也就是說test.css的文件必須如下定義:

 

正確的test.css定義:

 

/****************
* fileName:test.css
****************/


@import url("two.css");
@import url("one.css");
p{
	border:2px solid blue;
}

 

在chrome瀏覽器上試了一下,所有的樣式定義都出來啦,

 

感覺cctv,終於出來了 

 

總結:

 

1.IE對css和html的支持都使不嚴格的,

 

2.chrome對css和html的定義比較IE來說更加遵循W3C的定義。

 

3.要想執行跨瀏覽器的網頁,必須嚴格遵循W3C的定義,同時兼顧一下IE6~IE9(IE10暫時用的人非常少,只會在window8系統上有)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章