濮阳杆衣贸易有限公司

主頁 > 知識庫 > 標記語言——網(wǎng)頁應用CSS樣式

標記語言——網(wǎng)頁應用CSS樣式

熱門標簽:智能語音電銷機器人客戶端 地圖標注沿海城市房價 中國地圖標注城市的 威海語音外呼系統(tǒng)平臺 高德地圖標注廁所 通遼地圖標注app 地圖標注員工作內(nèi)容 江西ai電銷機器人如何 西安金倫外呼系統(tǒng)
點擊這里返回腳本之家 HTML教程 欄目.想瀏覽CSS教程請點這里。
上文:標記語言——精簡標簽。 Chapter 10 應用CSS
在第一部分主要的焦點放在標記語法的例子上,也探討了如何在標簽上應用CSS進行設計,指定樣式細節(jié).在第二章,我們將討論幾種把CSS應用到一份文檔,網(wǎng)站,甚至是單一標簽上的做法.除此之外也會討論怎么對早先版本瀏覽器隱藏CSS內(nèi)容,讓我們能在使用進階技巧時不會影響到能讓所有瀏覽器,設備讀取的標記結構.
在章節(jié)最后的"技巧延伸"單元,會介紹不必編寫script就能切換字體,色彩,做出多種主題的做法 -- 替換樣式表. 如何將CSS應用到文件上?
現(xiàn)在要來探討四種把CSS應用到文檔上的不同做法,每個方法都有自己的優(yōu)缺點,根據(jù)情況而定,四種方法都有可能是最佳選擇.這邊示范的每個方法都是用了合法的XHTML 1.0 Transitional 語法結構,<html>標簽以及<head>配置.
讓我們從方法A開始吧. 方法A:<style>標簽

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Applying CSS</title>
<style type="text/css">
<![CDATA[
...CSS聲明放在這邊 ...
]]>
</style>
</head>

這個做法也成為內(nèi)嵌樣式表,讓你能將所有CSS聲明直接寫在(X)HTML文件內(nèi),<style>標簽位于頁面<head>之內(nèi),可以放進任何你需要的樣式.
為type屬性指定的 text/css 能確保瀏覽器理解我們使用的樣式語言,是不能省略的,我們也使用W3C建議的CDATA注解語法,對無法處理樣式規(guī)則的瀏覽器隱藏這些內(nèi)容(http://www.w3.org/TR/xhtml1/#h-4.8).
部分理解
使用方法A的重大缺點之一是:有些老舊瀏覽器(特別是Internet Expleror 4.X 和 Netscape 4.X)會盡全力顯示<style>標簽內(nèi)指定的CSS效果,如果你用了任何只有最新瀏覽器支持的進階CSS布局,定位規(guī)則,那么就可能造成問題.如果把復雜的CSS規(guī)則放在<style>標簽中,就可能讓舊瀏覽器的使用者得到一片混亂,難以閱讀的排版結果. 無法緩存
另一個內(nèi)嵌樣式表的缺點是:放在頁面內(nèi),就必須在每次讀取頁面時一并下載,相對之下,稍后提供的其他方法能夠讓樣式表只需下載一次,往后直接使用瀏覽器的緩存. 修改多次
由于內(nèi)嵌式樣式表存儲在XHTML頁面內(nèi),如果在網(wǎng)站的許多頁面使用相同的樣式,就代表這些樣式會有許多相同的復本,如果需要變更這些樣式的話,就必須修改所有使用了相同樣式的頁面,記住!一次修改許多文檔會是件苦差事. 方便開發(fā)
提到好處,我發(fā)現(xiàn)最初開始編寫,測試CSS時,以方法A把所有規(guī)則寫在我測試用的頁面里十分方便,這讓我能把標記,樣式放在同一個文檔里,方便經(jīng)常修改,在測試完成后,我會以不同的方法將CSS應用到公開版本上,讓我們再來看看幾種方法. 方法B:外部樣式表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Applying CSS</title>
<link rel="stylesheet" type="text/css" href="styles.css" _fcksavedurl=""styles.css"" />
</head>

方法B示范了連接外部樣式表的做法:把所有CSS聲明內(nèi)容放在單獨文檔中,接著在(X)HTML的<head>內(nèi)使用<link>標簽引用它的內(nèi)容.
我們以href屬性指定文檔的位置,這個屬性可以是相對路徑(像是上面的例子),或者是絕對路徑(填入樣式表完整的"http://"位置).同時留意<link>是單一標簽,或是空標簽,必須在最后以 / 自我閉合. 分離文檔 = 方便維護
把所有的CSS規(guī)則放在與標記內(nèi)容不同的文檔中有個明顯的優(yōu)點:也就是任何對整個網(wǎng)站進行的樣式變動都能夠修改這個檔案完成,而不必像使用方法A的時候,為每個網(wǎng)頁重復修改CSS聲明.
當然,這對大規(guī)模網(wǎng)站來說是十分關鍵的,上百份,甚至上千份頁面都能共享單一文檔內(nèi)的相同樣式. 下載一次
鏈接外部樣式表的額外優(yōu)點之一是:這個文檔通常只會被下載一次,之后瀏覽器就會使用緩存,能在重復瀏覽相同頁面或是其他引用了相同樣式表的頁面時,節(jié)省需要的下載時間. 仍然無法完全隱藏
與方法A一樣,方法B仍然可有可能被老舊,只支持部分CSS功能的瀏覽器解讀,任何為最新瀏覽器設計的樣式都有可能在不支持的瀏覽器中造成大混亂.
嗯...這是我第二次提到這個問題了,下一個方法必須解決它,對吧? 方法C:@import

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Applying CSS</title>
<style type="text/css">
<![CDATA[
@import "styles.css";
]]>
</style>
</head>

與方法B類似,使用@import能以相對路徑(像是上面的例子)或絕對路徑從外部文件導入CSS定義.
方法C與使用<link>標簽有著相同優(yōu)點,由于樣式表放在外部文檔中,修改并更新單一文檔就能改變整個網(wǎng)站,而且能簡單快速地完成.外部樣式表會被瀏覽器緩存下來,為導入相同樣式表的所有頁面節(jié)省下載時間. 捉迷藏
使用方法C的重大好處是:Netscape 4.X以下版本并不支持@import語法,因此會使被引用的CSS內(nèi)容"藏起來",這肯定是個好用的技巧,因為我們能以此編寫進階CSS語法處理布局之類的設計細節(jié),讓能夠處理的最新瀏覽器顯示它們,同時也能讓老舊瀏覽器忽視這些語法.
Netscape 4.x的問題在于:它認為它的CSS支持能力與真正支持的瀏覽器一樣好.因此,除了Netscape 4.x之外,我們都能讓瀏覽器自己決定是否顯示正確的效果.
這是以標準設計網(wǎng)站時的重點,盡量把結構化標記代碼與顯示方式分開,并且為支持的瀏覽器提供布局細節(jié),其他樣式.老舊的瀏覽器則去他們能輕易讀取,顯示的結構內(nèi)容,但不會處理為他們隱藏起來的進階CSS規(guī)則. 打開樣式,關閉樣式
看看圖10-1和10-2,并且比較一下,這是我的個人網(wǎng)站使用完整CSS,接著關掉CSS的顯示效果(應該十分接近老舊瀏覽器的顯示效果),不使用CSS時的結構仍然十分明顯,所有人仍然容易閱讀,使用.如果我們沒有把顯示布局需要的CSS隱藏起來,那么舊版本瀏覽器的使用者或許就會拿到一團難以閱讀的內(nèi)容.

圖10-1 我的個人網(wǎng)站,使用CSS

圖10-2 同一個頁面,拿掉CSS,古舊瀏覽器可能把它顯示成這樣 結合方法B和方法C應用多重樣式表
有些時候,在一份文檔中引入許多分樣式表可能很有用,舉例來說,可以將所有布局規(guī)則放到一個文檔中,并且將字體設定放到另一個文檔中,對龐大,復雜的設計來說,這能使維護大量規(guī)則的工作變得更簡單. 變色龍效果
在制作Fast Company雜志的網(wǎng)站時,我希望每個月更改網(wǎng)站的配色,以便配合當期雜志的封面圖片,為了簡化定期修改工作,因此我把所有與顏色相關的CSS規(guī)則集中到一個文檔里,并且把不會每個月修改的其他規(guī)則放進另一個文檔中.
每個月就能更簡單,快速的蓋好所有顏色,不必在構成設計的其他幾百條規(guī)則里慢慢找需要改動的內(nèi)容.只要改好這個文檔,整個網(wǎng)站的色彩就會立刻改變. 如何辦到
要結合方法B與方法C引入多重樣式表,做法是在頁面的<head>里使用<link>標簽引用CSS主體文檔,與方法B示范相同,鏈接到styles.css.
而styles.css的內(nèi)容只簡單包含了幾條@import規(guī)則,引入所需要的其他CSS文件.
舉例來說,如果想引入三份樣式表,一份處理布局,一份定義字體,一份定義色彩,那么styles.css的內(nèi)容則可能如下所示:

/*老舊的瀏覽器不會解讀這些導入規(guī)則 */
@import url("layout.css");
@import url("fonts.css");
@import url("colors.css");

如此一來,就能在整個網(wǎng)站使用相同的<link>標簽,只引用styles.css文件,這個文檔能以@import規(guī)則繼續(xù)導入其他樣式表,新樣式表只要加到這個文檔里,就能對整個網(wǎng)站發(fā)揮作用.
這讓更新,替換CSS變得非常簡單,舉例來說,如果在路上你突然想把CSS切成4個文件,你只需要改動這個文檔的@import規(guī)則,而不必修改所有XHTML標記源代碼. Lo-Fi和Hi-Fi樣式
以方法C的@import規(guī)則對老舊瀏覽器隱藏CSS時,還有另一個技巧可用.那就是使用CSS的層疊效應,以方法A或方法B提供老舊,最新瀏覽器都支持的Lo-Fi效果,接著以@import為其他支持的瀏覽器提供進階效果.
老舊的瀏覽器只會拿到他們能支持的內(nèi)容,而新一點的瀏覽器則會拿到所有想使用的樣式.
接著我們看看這個技巧的代碼長什么樣:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Applying CSS</title>
<link rel="stylesheet" type="text/css" href="lofi.css" _fcksavedurl=""lofi.css"" />
<style type="text/css">
@import "hifi.css";
</style>
</head>

此處lofi.css應該包含基本的CSS規(guī)則,像是鏈接色彩,字體大小;而hifi.css則是包含進階規(guī)則,像是布局,定位,背景圖片等.
我們能同時傳送Lo-Fi和Hi-Fi版本的樣式,完全不必編寫script或者在服務器端以任何方式辨認瀏覽器版本. 順序很重要
在標記源代碼內(nèi)指定<link>與<style>標簽的順序很重要,CSS的Cascade(層疊)指的正是規(guī)則的優(yōu)先權,這是根據(jù)出現(xiàn)順序決定的.
舉例來說,由于大多數(shù)最新的瀏覽器都同時支持兩種做法,因此會下載所有樣式表并套用里面的所有樣式,這時,在hifi.css里的樣式規(guī)則會覆蓋lofi.css對相同標簽指定的樣式,理由是什么?因為標記源碼里,hifi.css出現(xiàn)在lofi.css之后.
老舊瀏覽器會忽略hifi.css,因為不支持@import規(guī)則,因此他們只會使用lofi.css定義的樣式. 擁抱層疊特性
以各種方式發(fā)揮CSS層疊特性帶來的好處,舉個例子,假設你整個網(wǎng)站都共用一個外部CSS進行布局,定位,設定字體,色彩等,這時你應該會在每個頁面以方法@import這個樣式表,為老舊瀏覽器隱藏這些規(guī)則.
如果網(wǎng)站上有一個頁面想共享布局和定位設定,但是需要調整字體或顏色.在(與網(wǎng)站上其他頁面不同的)這個頁面里,仍然能引入CSS主體文檔,在完成引用之后,我們緊接著引用第二個為這個頁面定義好特殊樣式的CSS文檔.任何在第二個CSS文件中的規(guī)則都會被優(yōu)先采用,覆蓋第一個CSS文件為相同標簽所指定的樣式規(guī)則.
讓我們看看示例,master.css包含了整個網(wǎng)站結構,字體之類的CSS規(guī)則,而在custom.css中只在特定頁面引用,覆蓋幾個特殊標簽的樣式設定.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Applying CSS</title>
<style type="text/css">
@import "master.css";
@import "custom.css";
</style>
</head>

由于custom.css在標記源代碼中是第二個出現(xiàn)的,因此它為相同標簽指定的樣式會覆蓋master.css之內(nèi)制定的內(nèi)容.
舉例來說,假設在main.css之內(nèi)我們要求<h1>標簽使用紅色serif字體,而<h2>則使用藍色serif字體.

h1 {
font-family: Georgia, serif;
color: red;
}
h2 {
font-family: Georgia, serif;
color: blue;
}

在某個特定頁面,我們只想改變<h1>標簽的樣式設定,沿用<h2>的樣式.那么在custom.css中,我們就只需要為<h1>聲明新樣式.

h1 {
font-family: Verdana, sans-serif;
color: orange;
}

這個聲明將會覆蓋master.css內(nèi)的聲明(因為custom.css在它后面再引入).如果頁面先引入master.css之后再引入custom.css的話,<h1>標簽會使用橘色Verdana字體,而<h2>仍是藍色serif字體.因為后面這個在master.css里的聲明沒有被custom.css覆蓋.
CSS的層疊功能是個共享通用樣式的好工具,讓你能夠只覆蓋需要修改的規(guī)則.
方法D:行內(nèi)樣式

<h1 style="font-family: Georgia, serif; color: orange;">This is a Title</h1>

這是我們所接觸的第四種CSS應用方法--行內(nèi)樣式,幾乎任何標簽都能加上style屬性,讓你能直接對標簽應用CSS樣式規(guī)則,與上面的例子一樣.
由于行內(nèi)樣式是層疊最底層,因此他們會覆蓋所有外部樣式的聲明,以及聲明在<head>的<style>標簽內(nèi)的規(guī)則.
這是個在頁面各處加上樣式的簡單做法,但是使用它必須付出代價. 樣式綁死在標簽上
如果在為頁面制定樣式的時候太依賴方法D,那么就沒有做到把內(nèi)容和展示方式分離,回頭修改的時候必須深入標記源代碼,把CSS放到分離得到文件中,維護起來就簡單很多.
濫用方法D與使用<font>之類的顯示效果標簽污染標記源代碼沒什么差別,這些設計細節(jié)向來應該放在其他地方. 小心使用
在現(xiàn)實情況中,當然有時用行內(nèi)樣式的機會,在需要為頁面加上樣式,但是無法存取外部文件,或是不能修改<head>的時候,它能救你一命,或者暫時套用樣式,不打算與其它標簽共用的時候也會用到.
舉例來說,如果網(wǎng)站上有個預告慈善義賣的頁面,稍后就會取下,而你想為這個頁面設計一套獨特的樣式,那么或許就將這些樣式規(guī)則內(nèi)嵌到標簽里,而不把他們加到永久樣式表里.
這就動手吧,不過要注意這些樣式無法輕易更改,或是橫跨頁面讓整個網(wǎng)站使用.
上一頁12 3 下一頁 閱讀全文

標簽:眉山 青海 阜陽 北海 晉中 河池 崇左 營口

巨人網(wǎng)絡通訊聲明:本文標題《標記語言——網(wǎng)頁應用CSS樣式》,本文關鍵詞  標記,語言,網(wǎng)頁,應用,CSS,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《標記語言——網(wǎng)頁應用CSS樣式》相關的同類信息!
  • 本頁收集關于標記語言——網(wǎng)頁應用CSS樣式的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    宁化县| 准格尔旗| 伊宁县| 原阳县| 金门县| 萝北县| 沭阳县| 安平县| 江城| 云南省| 通海县| 大理市| 阿荣旗| 治县。| 乐亭县| 赣榆县| 郴州市| 噶尔县| 新民市| 青冈县| 菏泽市| 隆昌县| 西安市| 读书| 米林县| 海晏县| 策勒县| 灵武市| 南澳县| 白朗县| 桂平市| 高要市| 梅州市| 叙永县| 安福县| 巴彦县| 临夏市| 海城市| 贵阳市| 灵丘县| 宁乡县|