1.6 串接

2018-11-06 17:52 更新

1.6 串接




屏幕就是一個戰(zhàn)場,在一個HTML文件中,如果有3種不同的樣式表規(guī)則都使用P作為其選擇。輸入的樣式表指示瀏覽器將<P>文字用紅色顯示,而植入的樣式表指示瀏覽器用藍色顯示,而行內(nèi)樣式表指示瀏覽器用黃色。

那么可憐的瀏覽器該聽誰的呢?

好在支持樣式表的瀏覽器自身配有樣式表的串接順序來應(yīng)付這種情形??傆袔追N樣式表規(guī)則要比其它的規(guī)則更重要。根據(jù)正式的規(guī)定,以下為樣式表的串接順序:

  1. Inline styles (行內(nèi)樣式)

  2. Embedded styles (植入樣式)

  3. Linked styles (鏈接樣式)

  4. Imported styles (輸入樣式)

  5. Default browser styles(缺省瀏覽器樣式)


瀏覽器將按照上述順序執(zhí)行樣式表的指令。

但是還要一個問題。如果同一種類的多個規(guī)則相互沖突怎么辦?比如,如果一項植入樣式表規(guī)則將<P>以綠色顯示,而另一個規(guī)則要求以紅色顯示?

多虧聰明的樣式表標準的發(fā)明人,對于這種沖突也有一個順序,但很復雜。這里有一個極其簡單的解決順序:

1.使用特別說明的樣式表規(guī)則,例:

BODY { color: green }
P { color: red }

有一項規(guī)則特別說明<P> 中的文字一紅色顯示,但它同時也繼承了<BODY>的綠色規(guī)定。但是特別說明了的規(guī)則的重要性要大于繼承的規(guī)則,所以<P>之內(nèi)的文字一紅色顯示。


2.應(yīng)用繼承的樣式表規(guī)則

如果不存在第1步中所列的特別說明的規(guī)則(比如存在特別說明了的多項規(guī)則),則瀏覽器轉(zhuǎn)向執(zhí)行繼承的規(guī)則。如果找不到繼承的規(guī)則,則瀏覽器轉(zhuǎn)向執(zhí)行第3步。


3.按照樣式表規(guī)則在HTML中的顯示順序執(zhí)行。

P { color: green }
P { color: red }

當無法適用上述規(guī)則時,瀏覽器將根據(jù)規(guī)則在代碼中顯示順序執(zhí)行。在上例中,<P>作為講座一紅色顯示,因為它是最后給出的規(guī)則。


注意:正式的串接樣式表規(guī)定對于串接順序有更詳細的規(guī)定。但由于執(zhí)行規(guī)定Netscape Communicator 和Internet Explorer都不支持,所以本文中不再細述。

最后一個問題:如果樣式表規(guī)則同HTML標簽沖突時,如何處理?我們看一下這個例子:

I { font-family: impact }
<P>I think <I><FONT FACE="Times">
East of Eden</FONT></I> is Stein
beck's best novel.</P>


該例中樣式表規(guī)則要求瀏覽器使用Impact,但是傳統(tǒng)的HTML<FONT FACE>標簽要求用Times字體,一個很明顯的傳統(tǒng)。

根據(jù)正式的樣式表規(guī)定,應(yīng)該優(yōu)先執(zhí)行樣式表規(guī)則。

但是最主要的幾種瀏覽器Netscape 和IE 4.0 都規(guī)定應(yīng)優(yōu)先執(zhí)行HTML。唉.......

你看到了吧,瀏覽器不能如我們希望的那樣應(yīng)用串接樣式表。節(jié)哀順變吧。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號