css基礎(chǔ)

CSS 加載方式有幾種在辆?

外部樣式表(推薦)
  1. link
    將CSS 保存在一個(gè)獨(dú)立的擴(kuò)展名為 .css 的文件中播聪,并從HTML的 <link> 元素中引用它投剥。
    示例:<link rel="stylesheet" href="style.css">
  2. @import
    用于從其他樣式表導(dǎo)入樣式規(guī)則榴鼎。
    示例:@import 'index.css';

這種方法可以說(shuō)是最好的,因?yàn)槟憧梢允褂靡粋€(gè)樣式表來(lái)設(shè)置多個(gè)文檔的樣式炼绘,并且需要更新 CSS 的時(shí)候只要在一個(gè)地方更新。

內(nèi)部樣式表

內(nèi)部樣式表是指不使用外部 CSS 文件妄田,而是將你的 CSS 放置在<style>元素中俺亮,該元素包含在 HTML head 內(nèi)驮捍。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My CSS experiment</title>
    <style>
      h1 {
        color: blue;
        background-color: yellow;
        border: 1px solid black;
      }
      p {
        color: red;
      }
    </style>
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>This is my first CSS example</p>
  </body>
</html>

這在某些情況下很有用(也許你正在使用一個(gè)內(nèi)容管理系統(tǒng),不能直接修改 CSS 文件)脚曾,但它不如外部樣式表高效 —— 在網(wǎng)站中东且,CSS 將需要在每個(gè)頁(yè)面重復(fù),并且需要更新時(shí)要更改的多個(gè)位置本讥。

內(nèi)聯(lián)樣式

內(nèi)聯(lián)樣式是僅影響一個(gè)元素的CSS聲明珊泳,被 style屬性包括著。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My CSS experiment</title>
  </head>
  <body>
    <h1 style="color: blue;border: 1px solid black;">Hello World!</h1>
    <p style="color:red;">This is my first CSS example</p>
  </body>
</html>

在非必要拷沸,否則不要這么做色查!這很難維護(hù)(你可能不得不在每份文檔里更新多次同樣的信息),并且它還混合了 CSS 表示的樣式信息和 HTML 的結(jié)構(gòu)信息撞芍,使 CSS 難以閱讀和理解秧了。保持不同類(lèi)型代碼的分離和純凈使處理該代碼的任何人工作更為容易。
您唯一可能需要使用內(nèi)聯(lián)樣式是當(dāng)您的工作環(huán)境真的非常受限(也許您的CMS只允許您編輯 HTML 的 body)序无。

@charset有什么作用验毡?

指定樣式表中使用的字符編碼。它必須是樣式表中的第一個(gè)元素愉镰,而前面不得有任何字符米罚。示例 @charset "utf-8";若文件編碼和頁(yè)面不一致的話(huà),則會(huì)出現(xiàn)亂碼丈探。

@import有什么作用录择?如何使用?

用于從其他樣式表導(dǎo)入樣式規(guī)則碗降。語(yǔ)法:

@import url;
@import url list-of-media-queries;

其中:
url
是一個(gè)表示要引入資源位置的 <string>或者<uri>隘竭。 這個(gè)URL可以是絕對(duì)路徑或者相對(duì)路徑。 要注意的是這個(gè) URL 不需要指明一個(gè)文件讼渊; 可以只指明包名动看,然后合適的文件會(huì)被自動(dòng)選擇
list-of-media-queries
是一個(gè)逗號(hào)分隔的 媒體查詢(xún)條件列表,決定通過(guò)URL引入的 CSS 規(guī)則 在什么條件下應(yīng)用爪幻。如果瀏覽器不支持列表中的任何一條媒體查詢(xún)條件菱皆,就不會(huì)引入U(xiǎn)RL指明的CSS文件。

id 選擇器和 class 選擇器的使用場(chǎng)景分別是什么挨稿?

兩者異同:

兩者都可以選擇到DOM節(jié)點(diǎn)并添加樣式仇轻。不同在于元素的ID屬性具有唯一性,一個(gè)元素只能添加一個(gè)id選擇器奶甘,而一個(gè)元素可以有多個(gè)class篷店。ID選擇器的優(yōu)先級(jí)是高于class選擇器的。

使用技巧:

在編寫(xiě)樣式時(shí)盡量使用類(lèi)選擇器臭家,即使該DOM節(jié)點(diǎn)可能只出現(xiàn)一次疲陕。因?yàn)镮D選擇器的優(yōu)先級(jí)比類(lèi)選擇器高,在后期樣式的控制中會(huì)越來(lái)越難控制方淤。也許有人會(huì)問(wèn):我可不可以全篇都使用ID選擇器,那么就不存在和類(lèi)選擇器比較優(yōu)先級(jí)了蹄殃。理論上這是可以的携茂,但是請(qǐng)注意上一點(diǎn)——ID必須能夠唯一的確定DOM節(jié)點(diǎn)。如果你全篇都使用ID選擇器窃爷,那么即使兩個(gè)DOM節(jié)點(diǎn)樣式完全相同邑蒋,那么你也必須把節(jié)點(diǎn)樣式寫(xiě)兩遍, 如果后期要進(jìn)行維護(hù),那么你必須對(duì)兩處的代碼都進(jìn)行維護(hù)!0蠢濉医吊!極大的增加了維護(hù)的成本。
既然有了類(lèi)選擇器為什么還要規(guī)定一個(gè)ID選擇器逮京?
在一個(gè)完整的HTML+CSS+JavaScript的頁(yè)面體系中卿堂,對(duì)一個(gè)DOM節(jié)點(diǎn)的ID使用最多的其實(shí)是JavaScript(因?yàn)橥ㄟ^(guò)ID能唯一的確定DOM節(jié)點(diǎn),方便控制),CSS中的使用的ID選擇器一般情況下只會(huì)添加少量樣式懒棉,更多對(duì)DOM節(jié)點(diǎn)的樣式控制都是使用類(lèi)選擇器,既能夠產(chǎn)生樣式疊加,又方便后期的維護(hù)草描。請(qǐng)盡量避免在CSS中使用大量的ID選擇器
常規(guī)情況下,CSS中會(huì)出現(xiàn)大量的ID選擇器的情況——JavaScript插件配套的樣式表中策严。

CSS選擇器常見(jiàn)的有幾種穗慕?

http://www.reibang.com/p/67c6ba93787f

偽類(lèi)選擇器有哪些?偽元素有哪些妻导?

CSS偽類(lèi)是用來(lái)添加一些選擇器的特殊效果。
http://www.reibang.com/p/67c6ba93787f

以下選擇器分別是什么意思?

#header{
}/*匹配id為header的元素*/
.header{
}/*匹配header類(lèi)的元素*/
.header .logo{
}/*匹配header類(lèi)下所有的后代(不只是子元素倔韭、子元素向下遞歸)logo類(lèi)元素*/
.header.mobile{
}/*匹配同時(shí)為header類(lèi)和mobile類(lèi)的元素*/
.header p, .header h3{
}/*匹配header類(lèi)下p標(biāo)簽和h3標(biāo)簽*/

#header a:hover{
}/*匹配鼠標(biāo)懸停其上的id為header的元素下的a元素*/
#header .logo~p{
}/*匹配id為header下的logo類(lèi)的所有相鄰的標(biāo)簽p*/
#header .logo+p{
}/*匹配id為header下的logo類(lèi)的直接相鄰的標(biāo)簽p*/
#header .logo p{
}/*匹配id為header下的logo類(lèi)的所有子標(biāo)簽p*/
#header .logo>p{
}/*匹配id為header下的logo類(lèi)的直接子標(biāo)簽p*/
#header p.logo{
}/*匹配id為header下同時(shí)為logo類(lèi)和標(biāo)簽p的元素*/
#header .logo.p{
}/*匹配id為header下同時(shí)為logo類(lèi)和p類(lèi)的元素*/

#header input[checked]{
}/*匹配id為header下input標(biāo)簽中attr為checked的元素*/

選擇器的優(yōu)先級(jí)是如何計(jì)算的?

優(yōu)先級(jí)從高到低:

在屬性后面使用 !important 會(huì)覆蓋頁(yè)面內(nèi)任何位置定義的元素樣式
作為style屬性寫(xiě)在元素標(biāo)簽上的內(nèi)聯(lián)樣式
id選擇器
類(lèi)選擇器
偽類(lèi)選擇器
屬性選擇器
標(biāo)簽選擇器
通配符選擇器
瀏覽器自定義

計(jì)算方法:
  • 獲取選擇器中ID選擇器的個(gè)數(shù)胰苏,賦值給a
  • 獲取選擇器中類(lèi)選擇器,屬性選擇器([type="text"])和偽類(lèi)選擇器(:hover)的個(gè)數(shù)醇疼,賦值給b
  • 獲取選擇器中標(biāo)簽(type)選擇器和偽元素選擇器(::before)的個(gè)數(shù)硕并,賦值給c
  • 通用選擇器(*)不占優(yōu)先級(jí)權(quán)重

將abc三個(gè)數(shù)串聯(lián)成一個(gè)基數(shù)絕對(duì)大的數(shù)字(既無(wú)論數(shù)字再大也不進(jìn)位)。

Examples:
*               /* a=0 b=0 c=0 -> specificity =   0 */
LI              /* a=0 b=0 c=1 -> specificity =   1 */
UL LI           /* a=0 b=0 c=2 -> specificity =   2 */
UL OL+LI        /* a=0 b=0 c=3 -> specificity =   3 */
H1 + *[REL=up]  /* a=0 b=1 c=1 -> specificity =  11 */
UL OL LI.red    /* a=0 b=1 c=3 -> specificity =  13 */
LI.red.level    /* a=0 b=2 c=1 -> specificity =  21 */
#x34y           /* a=1 b=0 c=0 -> specificity = 100 */
#s12:not(FOO)   /* a=1 b=0 c=1 -> specificity = 101 */

如果兩個(gè)specificity值一樣呢鲤孵?那自然是看樣式表中出現(xiàn)的先后順序辰如,后者可以覆蓋前者的樣式。
注:寫(xiě)于HTML中行內(nèi)的樣式(style="width:100px")總會(huì)覆蓋外部樣式表的樣式贵试,具有絕對(duì)的優(yōu)先級(jí)琉兜。
參考: https://www.w3.org/TR/css3-selectors/#specificity

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凯正,一起剝皮案震驚了整個(gè)濱河市豌蟋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梧疲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缭受,死亡現(xiàn)場(chǎng)離奇詭異该互,居然都是意外死亡米者,警方通過(guò)查閱死者的電腦和手機(jī)宇智,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)随橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人机蔗,你說(shuō)我怎么就攤上這事』渲觯” “怎么了酿愧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钝鸽。 經(jīng)常有香客問(wèn)我庞钢,道長(zhǎng)拔恰,這世上最難降的妖魔是什么基括? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮河爹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咸这。我一直安慰自己,他們只是感情好酿雪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布侄刽。 她就那樣靜靜地躺著,像睡著了一般袋励。 火紅的嫁衣襯著肌膚如雪当叭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天蚁鳖,我揣著相機(jī)與錄音,去河邊找鬼钾腺。 笑死讥裤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的己英。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厢破,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼治拿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起见坑,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叠国,沒(méi)想到半個(gè)月后戴尸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體冤狡,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悲雳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晴楔。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纪岁,死狀恐怖则果,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情西壮,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布做修,位于F島的核電站缓待,受9級(jí)特大地震影響渠牲,放射性物質(zhì)發(fā)生泄漏签杈。R本人自食惡果不足惜鼎兽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一铣除、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尚粘,春花似錦、人聲如沸秉继。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弛随。三九已至,卻和暖如春撵幽,著一層夾襖步出監(jiān)牢的瞬間盐杂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留强衡,地道東北人漩勤。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓越败,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親究飞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堂鲤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • CSS基礎(chǔ) 本文包括CSS基礎(chǔ)知識(shí)選擇器(重要!A掳ⅰ1即)繼承、特殊性、層疊男摧、重要性CSS格式化排版單位和值盒模型浮動(dòng)...
    廖少少閱讀 3,086評(píng)論 0 40
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案耗拓? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 1.認(rèn)識(shí)CSS樣式CSS全稱(chēng)為“層疊樣式表 (Cascading Style Sheets)”奏司,它主要是用于定義H...
    靜默丶閱讀 5,710評(píng)論 30 95
  • 一.CSS描述 CSS全稱(chēng)為“層疊樣式表(Cascading Style Sheets)”竿刁,它主要是用于定義HTM...
    snowy_sunny閱讀 1,076評(píng)論 0 4
  • 昨天列了2月的學(xué)習(xí)計(jì)劃食拜,今天就開(kāi)始執(zhí)行了副编,估計(jì)上天也是在考驗(yàn)我痹届,確切的說(shuō)自己是否可以堅(jiān)持和我每天的行動(dòng)是息息相關(guān)的...
    田金平閱讀 145評(píng)論 0 1