CSS知識點整理(一)

CSS基礎(chǔ)和選擇器

CSS是什么?

css全稱是Cascading Style Sheets,層疊樣式表,是網(wǎng)頁樣式的描述語言。

@charset "utf-8"
h1 {
  color: red;
  font-size: 20px;
}
Paste_Image.png

在頁面引入css的四種方式:

  1. 內(nèi)聯(lián)樣式 <h1 style="color: red; font-size: 20px;"></h1>
  2. 內(nèi)部樣式
<style type="text/css">
    h1 {
      color: red;
      font-size: 20px;
}
</style>
  1. 外部樣式(一)
<head>
  <link rel="stylesheet" type="text/css" href="index.css">
</head>
  1. 外部樣式(二)
<style>
   @import url("index.css");
   @import "demo.css"
</style>

瀏覽器的默認(rèn)樣式

Paste_Image.png

文件路徑

  • 絕對路徑:
    是帶有盤符的路徑:C:\上課內(nèi)容\上課視頻\01html第一天\源代碼\1.jpg

  • 相對路徑
    由頁面是一個文件,圖片也是一個文件,而現(xiàn)在需要在頁面上輸出圖片,所以需要得到圖片相對于文件的路徑。
    1.如果頁面與圖片在同一目錄下面:

    Paste_Image.png

    ![](2.jpg)

    2.如果頁面再圖片的上一級目錄:

Paste_Image.png

![](image/1.jpg)

3.如果圖片在頁面的上一級目錄:

Paste_Image.png

![](../2.jpg)
注意:因為相對路徑的可移植性比絕對路徑強(qiáng),所以在實際開發(fā)中只要不出意外情況都是用相對路徑。

CSS選擇器

  • 選擇器類型
    1.基礎(chǔ)選擇器
    2.組合選擇器
    3.屬性選擇器
    4.偽類選擇器
    5.偽元素選擇器
    基礎(chǔ)選擇器
選擇器 含義
通配符* 通用元素選擇器,匹配頁面任何元素(這也就決定了我們很少使用)
#id id選擇器,匹配特定id元素
.class 類選擇器,匹配class包含(不是等于)特定類的元素
element 標(biāo)簽選擇器

示例

* {
margin: 0;
padding: 0;
}

#id-selector {
color: #333;
}

.class-selector {
  background: #ccc
}

p {
 font-size: 20px;
}

組合選擇器

選擇器 含義
E,F 多元素選擇器,用,分隔,同時匹配元素E或元素F
E F 后代選擇器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下遞歸)元素F
E>F 子元素選擇器,用>分隔,匹配E元素的所有直接子元素
E+F 直接相鄰選擇器,匹配E元素之后的相鄰的同級元素F
E~F 普通相鄰選擇器(弟弟選擇器),匹配E元素之后的同級元素F(無論直接相鄰 與否)
.class1.class2 id和class選擇器和選擇器連寫的時候中間沒有分隔符,和 #本身充當(dāng)分隔符的元素 .
element#idt id和class選擇器和選擇器連寫的時候中間沒有分隔符,.和 #本身充當(dāng)分隔符的元素

示例:

  1. 并列選擇器
Paste_Image.png

2.后代選擇器

Paste_Image.png

3.直接子元素

Paste_Image.png
  1. 直接相鄰選擇器 E+F
Paste_Image.png

5.普通相鄰選擇器(弟弟選擇器)(圖片中.p1后面的所有同級鄰居p全都選中了?。?/p>

Paste_Image.png

6.element.class2

Paste_Image.png

7..class1.class2

Paste_Image.png

屬性選擇器

選擇器 含義
E[attr] 匹配所有具有屬性attr的元素,div[id]就能取到所有有id屬性的div
E[attr = value] 匹配屬性attr值為value的元素,div[id=test],匹配id=test的div
E[attr ~= value] 匹配所有屬性attr具有多個空格分隔、其中一個值等于value的元素
E[attr ^= value] 匹配屬性attr的值以value開頭的元素
E[attr $= value] 匹配屬性attr的值以value結(jié)尾的元素
E[attr *= value] 匹配屬性attr的值包含value的元素

示例:

1.E[type=text]匹配type屬性為text的元素

Paste_Image.png

偽類選擇器

選擇器 含義
E:first-child 匹配元素E的第一個子元素
E:link 匹配所有未被點擊的鏈接
E:visited 匹配所有已被點擊的鏈接
E:hover 匹配鼠標(biāo)懸停其上的E元素
E:active 匹配鼠標(biāo)已經(jīng)其上按下、還沒有釋放的E元素
E:focus 匹配獲得當(dāng)前焦點的E元素
E:lang(c) 匹配lang屬性等于c的E元素
E:enabled 匹配表單中可用的元素
E:disabled 匹配表單中禁用的元素
E:checkedt 匹配表單中被選中的radio或checkbox元素
E::selection 匹配用戶當(dāng)前選中的元素
E:root 匹配文檔的根元素,對于HTML文檔,就是HTML元素
E:nth-child(n) 匹配其父元素的第n個子元素,第一個編號為1
E:nth-last-child(n) 匹配其父元素的倒數(shù)第n個子元素,第一個編號為1
E:nth-of-type(n) 與:nth-child()作用類似,但是僅匹配使用同種標(biāo)簽的元素
E:nth-last-of-type(n) 與:nth-last-child() 作用類似,但是僅匹配使用同種標(biāo)簽的元素
E:last-child 匹配父元素的最后一個子元素,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同種標(biāo)簽的第一個子元素,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同種標(biāo)簽的最后一個子元素,等同于:nth-last-of-type(1)
E:only-child 匹配父元素下僅有的一個子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同種標(biāo)簽的唯一一個子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
E:empty 匹配一個不包含任何子元素的元素,文本節(jié)點也被看作子元素
E:not(selector) 匹配不符合當(dāng)前選擇器的任何元素

注意:a:link、a:visited、a:hover、a:active正確順序是這樣的!
記憶方法:
愛恨原則:love-hate
心理作用:
lv-ha:買了一個lv,心里樂哈哈

有些錨偽類除了可以作用在a標(biāo)簽上還可以作用在其他標(biāo)簽上:
:link 只能用于a標(biāo)簽
:visited 只能用于a標(biāo)簽
:hover 其他標(biāo)簽也可以使用這個偽類
:active 其他標(biāo)簽也可以使用這個偽類

示例:

1.E:first-child

Paste_Image.png
  1. E:first-of-type(父元素下使用同種標(biāo)簽的第一個子元素)
Paste_Image.png
  1. E:nth-of-type(2)[括號中的2代表E元素的父元素下面同種類型標(biāo)簽的第二個標(biāo)簽]
Paste_Image.png

像第三個例子中的2,可以寫成數(shù)字1,2,3,4,5,6等等。也可以寫成2n(偶數(shù)),2n+1(奇數(shù)),或者4n-1。也可直接用英文even(偶數(shù)),odd(奇數(shù))。

偽元素選擇器

選擇器 含義
E::first-line 匹配E元素內(nèi)容的第一行
E::first-letter 匹配E元素內(nèi)容的第一個字母
E::before 在E元素之前插入生成的內(nèi)容
E::after 在E元素之后插入生成的內(nèi)容

示例: (這兩個示例面試會經(jīng)常用到)
1.E:before(在E元素之前插入生成的內(nèi)容)

Paste_Image.png

2.E::after(在E元素內(nèi)容之后插入生成的內(nèi)容)

Paste_Image.png

選擇器優(yōu)先級(重點)

CSS優(yōu)先級從高到低分別是:
1.在屬性后面使用!important會覆蓋頁面內(nèi)任何位置定義的元素樣式
2.作為style屬性寫在元素標(biāo)簽上的內(nèi)聯(lián)樣式
3.id選擇器
4.類選擇器
5.偽類選擇器
6.屬性選擇器
7.標(biāo)簽選擇器
8.通配符選擇器
9.瀏覽器自定義

當(dāng)多個選擇器組合以后,我們要比較優(yōu)先級,就需要計算它們的權(quán)重。
算法:
(0,0,0,0)==》第一個0對應(yīng)的是important的個數(shù),第二個0對應(yīng)的是id選擇器的個數(shù),第三個0對應(yīng)的是類選擇器的個數(shù),第四個0對應(yīng)的是標(biāo)簽選擇器的個數(shù),就是當(dāng)前選擇器的權(quán)重。
比較:
先從第一個0開始比較,如果第一個0大,那么說明這個選擇器的權(quán)重高,如果第一個相同,比較第二個,依次類推。
總結(jié):權(quán)重是優(yōu)先級的算法。
選擇器工作的一個原理:
選擇器在查找元素的時候是從右往左找!??!

文章著作權(quán)歸饑人谷_sunny和饑人谷所有,轉(zhuǎn)載須說明來源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,154評論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 一:在制作一個Web應(yīng)用或Web站點的過程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,365評論 0 1
  • ——送給曾經(jīng)的初戀,送給曾經(jīng)的“公主” 在我們每一個人的內(nèi)心深處,都藏著一個人。每次想起他的時候,會覺得有一點點心...
    耳朵在聆聽閱讀 554評論 0 1
  • 為什么需要做一個被這個世界真正需要的人?怎樣才算一個真正被需要的人?有什么衡量的標(biāo)準(zhǔn)嗎?要如何做才能成為一個被世界...
    左非閱讀 740評論 0 1

友情鏈接更多精彩內(nèi)容