css可分為三類:1、內(nèi)聯(lián)(行內(nèi))樣式,使用style屬性在HTML標(biāo)記內(nèi)插入CSS代碼,語(yǔ)法“<標(biāo)簽名 style="css樣式">..</標(biāo)簽名>”;2、內(nèi)嵌樣式表,在文檔head部分的style標(biāo)簽對(duì)中放入CSS代碼,語(yǔ)法“<style>樣式</style>”;3、外部樣式表,將CSS代碼放入“.css”文件中,使用link標(biāo)簽或“@import”規(guī)則引入html文檔中。
前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
API 文檔、設(shè)計(jì)、調(diào)試、自動(dòng)化測(cè)試一體化協(xié)作工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。
在html代碼中要實(shí)現(xiàn)一些效果常常要加入css修飾,html中的css一共分為三種:內(nèi)聯(lián)樣式、內(nèi)嵌樣式表、外部樣式表。
1、內(nèi)聯(lián)(行內(nèi))樣式
內(nèi)聯(lián)樣式就是將樣式信息直接定義在 HTML 標(biāo)簽的 style 屬性中,由于內(nèi)聯(lián)樣式定義在標(biāo)簽內(nèi)部,所以它只對(duì)所在的標(biāo)簽有效。
<body style="background-color:black;"> <h1 style="color:white;padding:30px;">Hostinger Tutorials</h1> <p style="color:white;">Something usefull here.</p> </body>
建議不要使用內(nèi)聯(lián)CSS,因?yàn)槊總€(gè)HTML標(biāo)記都需要單獨(dú)設(shè)置樣式,如果您只使用內(nèi)聯(lián)CSS,管理網(wǎng)站可能會(huì)變得十分困難。但是,它在某些情況下很有用。例如,在您無(wú)法訪問(wèn)CSS文件或僅需要為單個(gè)元素應(yīng)用樣式的情況下。
缺點(diǎn):
-
定義內(nèi)聯(lián)樣式需要在每個(gè) HTML 標(biāo)簽中定義 style 屬性,很不方便;
-
在內(nèi)聯(lián)樣式中使用雙引號(hào)或單引號(hào)時(shí)要特別小心,因?yàn)?HTML 標(biāo)簽的屬性通常都會(huì)使用雙引號(hào)來(lái)包裹屬性的值,例如<input type="text">;
-
在內(nèi)聯(lián)樣式中定義的樣式不能再其它任何地方重用;
-
內(nèi)聯(lián)樣式在后期維護(hù)時(shí)很不方便,因?yàn)橐粋€(gè)網(wǎng)站通常有很多頁(yè)面組成,當(dāng)修改頁(yè)面樣式時(shí)需要對(duì)頁(yè)面逐個(gè)修改;
-
添加過(guò)多的內(nèi)聯(lián)樣式會(huì)導(dǎo)致 HTML 文檔的體積增大。
2、內(nèi)嵌樣式表
將樣式代碼寫(xiě)在頁(yè)面<style>...</style>
標(biāo)簽之中
<style> bdoy{font-size:14px;} </style>
<style>...</style>
標(biāo)簽結(jié)構(gòu)可以位于頁(yè)面<HTML>標(biāo)簽中的任何位置,也可以多次出現(xiàn)。通常是將整個(gè)<style>…</style>結(jié)構(gòu)寫(xiě)在頁(yè)面的<head>…</head>部分中。這種引入CSS方式的特點(diǎn)是每個(gè)頁(yè)面的CSS代碼可能具有統(tǒng)一性和規(guī)劃性,一個(gè)頁(yè)面內(nèi)部便于復(fù)用和維護(hù),但多個(gè)頁(yè)面之間的CSS代碼復(fù)用仍然不夠。
<!DOCTYPE html> <html> <head> <style> body { background-color: linen; } h1 { color: maroon; margin-left: 40px; } </style> </head> <body> <h1>PHP中文網(wǎng)</h1> <p>https://www.php.cn/</p> </body> </html>
因?yàn)閮?nèi)嵌樣式表需要將 CSS 樣式定義在 HTML 文檔的內(nèi)部,所以會(huì)導(dǎo)致文檔的體積變大,而且當(dāng)有其它文檔也需要使用內(nèi)嵌樣式表中同樣的樣式時(shí),無(wú)法引入到其他文檔,必須在其它文檔中重新定義,會(huì)導(dǎo)致代碼冗余,不利于后期維護(hù)。
3、外部樣式表
在實(shí)際的開(kāi)發(fā)種都用于外部樣式表。適合樣式較多的情況。樣式單獨(dú)的寫(xiě)到CSS文件中,之后把CSS文件引入到HTML中使用。
1)、使用link
鏈接樣式是指在外部定義CSS樣式表并形成以.CSS
為擴(kuò)展名文件,然后在頁(yè)面中通過(guò)<link>
鏈接標(biāo)記鏈接到頁(yè)面中,而且該鏈接語(yǔ)句必須放在頁(yè)面的<head>標(biāo)記區(qū)。
語(yǔ)法:
<link type="text/css" rel="styleSheet" href="CSS文件路徑" />
對(duì)各個(gè)屬性的說(shuō)明:
-
href 屬性設(shè)置外部樣式表文件的地址,可以是相對(duì)地址,也可以是絕對(duì)地址。
-
rel 屬性定義關(guān)聯(lián)的文檔,這里表示關(guān)聯(lián)的是樣式表。
-
type 屬性定義導(dǎo)入文件的類型,同 style 元素一樣,text/css表明為 CSS 文本文件。
一般在定義 <link> 標(biāo)簽時(shí),應(yīng)定義 3 個(gè)基本屬性,其中 href 是必須設(shè)置屬性。
也可以在 link 元素中添加 title 屬性,設(shè)置可選樣式表的標(biāo)題,即當(dāng)一個(gè)網(wǎng)頁(yè)文檔導(dǎo)入了多個(gè)樣式表后,可以通過(guò) title 屬性值選擇所要應(yīng)用的樣式表文件。
提示:在 Firefox 瀏覽器中可以在菜單中選擇“查看 –> 頁(yè)面樣式”選項(xiàng),然后在子菜單中會(huì)顯示 title 屬性值,只需選擇不同的 title 屬性值,可以有選擇地應(yīng)用需要的樣式表文件。IE 瀏覽器不支持該功能。
另外,title 屬性與 rel 屬性存在聯(lián)系,按 W3C 組織的計(jì)劃,未來(lái)的網(wǎng)頁(yè)文檔會(huì)使用多個(gè) <link> 元素導(dǎo)入不同的外部文件,如樣式表文件、腳本文件、主題文件,甚至可以包括個(gè)人自定義的其他補(bǔ)充文件。導(dǎo)入這么多不同類型、名稱各異的文件后,可以使用 title 屬性進(jìn)行選擇,這時(shí) rel 屬性的作用就顯現(xiàn)出來(lái)了,它可以指定網(wǎng)頁(yè)文件初始顯示時(shí)應(yīng)用的導(dǎo)入文件類型,目前只能關(guān)聯(lián) CSS 樣式表類型。
外部樣式是 CSS 應(yīng)用的最佳方案,一個(gè)樣式表文件可以被多個(gè)網(wǎng)頁(yè)文件引用,同時(shí)一個(gè)網(wǎng)頁(yè)文件可以導(dǎo)入多個(gè)樣式表,方法是重復(fù)使用 link 元素導(dǎo)入不同的樣式表文件。
2)、使用@import
導(dǎo)入式是通過(guò)@import
在<style>標(biāo)簽中進(jìn)行聲明的
語(yǔ)法:
<style type="text/css"> @import url("css文件路徑"); </style>
在 @import 關(guān)鍵字后面,利用 url() 函數(shù)包含具體的外部樣式表文件的地址。
簡(jiǎn)單實(shí)例:
css外部樣式表 style.css
h1{ color:red; } p{ font-size:14px; color:green; }
HTML文檔
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link type="text/css" rel="styleSheet" href="style.css" /> <!-- <style> @import url("style.cs"); </style> --> </head> <body> <h1>link標(biāo)簽或@import的應(yīng)用</h1> <p>外部定義CSS樣式表以.CSS為擴(kuò)展名文件,然后在頁(yè)面中通過(guò)link標(biāo)簽或@import鏈接到頁(yè)面中。</p> </body> </html>
實(shí)現(xiàn)效果:
兩種導(dǎo)入樣式表的方法比較:
1、從屬關(guān)系區(qū)別
@import是 CSS 提供的語(yǔ)法規(guī)則,只有導(dǎo)入樣式表的作用;link是HTML提供的標(biāo)簽,不僅可以加載 CSS 文件,還可以定義 RSS、rel 連接屬性等。
2、加載順序區(qū)別
加載頁(yè)面時(shí),link標(biāo)簽引入的 CSS 被同時(shí)加載;@import引入的 CSS 將在頁(yè)面加載完畢后被加載。
3、權(quán)重區(qū)別
link 方式的樣式的權(quán)重高于 @import 權(quán)重。
4、兼容性區(qū)別
@import是 CSS2.1 才有的語(yǔ)法,故只可在 IE5+ 才能識(shí)別;link標(biāo)簽作為 HTML 元素,不存在兼容性問(wèn)題。
5、DOM可控性區(qū)別
可以通過(guò) JS 操作 DOM ,插入link標(biāo)簽來(lái)改變樣式;由于 DOM 方法是基于文檔的,無(wú)法使用@import的方式插入樣式。
說(shuō)明:
一般推薦使用 link 導(dǎo)入樣式表的方法,@import 可以作為補(bǔ)充方法使用。
(學(xué)習(xí)視頻分享:web前端)