VIP10-11月29日作業(yè):CSS

問題一:CSS有幾種引入方式? link 和@import 有什么區(qū)別?

  • CSS引入方式
    1.外部樣表式:如下
    <link rel="stylesheet" type="text/css" href="xxx.css">
    2.內部樣式表【使用<style>標簽】:如下
<head>
  <style type="text/css">
  div{ color: red; font-size:12px; } 
  </style>
</head>

注:<style></style>內部樣式表寫在html的<head>內,只對所在網頁有效

3.內聯(lián)樣式:如下
<div style="color:red; font-size:12px;">123</div>
<p style="color:red">段落</p>

4.@import方式引用外部樣式表。如下:

<head>
  <style type="text/css">
        @import url(xxx.css);
  </style>
</head>

PS: 注意一定要寫分號

  • link和@import有什么區(qū)別
    不同點:
    1.來源和作用的不同:<link>標簽屬于HTML標簽,只能放在HTML文檔的代碼中使用,除了可以加載CSS外,還可以用于其他方面,比如:定義rel 連接屬性。@import屬于css提供的方法,只能用于加載css,@import既可以在HTML文檔的代碼中使用,也可以在css文件中使用。
    2.加載順序的不同:link引用css時,在頁面載入時同時加載;@import需要頁面完全載入后加載。
    3.兼容性的不同:link是xhtml標簽,無兼容問題;@import是在低于IE5版本瀏覽器中不支持。
    4.使用DOM控制樣式時的不同:link支持使用javascript控制dom去改變樣式;而@import不支持。

問題二:列出你所知道的選擇器

  • 選擇器類型:
    1、基礎選擇器
選擇器 含義
* 通用元素選擇器,匹配頁面任何元素(這也就決定了我們很少使用)
#id id選擇器,匹配特定id的元素
.class 類選擇器,匹配class包含(不是等于)特定類的元素
element 標簽選擇器

例如:

*{
    padding: 0;
}

2、組合選擇器

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

例如:

div>p{
    font-size: 20px;
}

3、屬性選擇器

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

例如:

p[color="red"]{
   line-height:20px;
}

4、偽類選擇器

選擇器 含義
E:first-child 匹配元素E的第一個子元素
E:last-child 匹配元素e的最后一個子元素
E:nth-child(n) 匹配其父元素的第n個子元素,第一個編號為1
E:first-of-type 匹配父元素下使用同種標簽的第一個子元素,等同于nth-of-type(1)
E:hover 匹配鼠標懸停智商的e元素
E:focus 匹配獲得焦點的e元素

例如:

a:hover{
    color:red;
}

5、偽元素選擇器

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

例如:

.clearfix::after{
    content: ''; clear: both;display: block;
}

問題三:a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么?

  • :link, a:hover, a:active, a:visited 的順序是:
    a:link
    a:visited
    a:hover
    a:active
  • 原因是:
    當選擇器的優(yōu)先級相等時,寫在后面的會覆蓋前面的,a:link, a:hover, a:active, a:visited這四個選擇器的優(yōu)先級都一樣
    <a>標簽指向的鏈接沒有訪問過時,它處于link狀態(tài),所以會用到a:link選擇器指定的樣式
    <a>標簽指向的鏈接被訪問過時,它同時處于link和visited狀態(tài),而a:link和a:visited的優(yōu)先級相同,后面的會覆蓋前面的,所以用哪個樣式由它們的順序決定。
    將a:visited寫在a:link后,讓訪問過的鏈接使用a:visited指定的樣式,同理,當用戶的鼠標懸停在<a>標簽指向的鏈接上時,它同時處于link,visited, hover狀態(tài)。
    將a:hover寫在 a:link和a:visited之后,讓這個鏈接使用 a:hover指定的樣式
    當用戶鼠標點擊<a>標簽指向的鏈接時(鼠標按住沒有松開的狀態(tài)),這個時候鏈接同時處于link, visited,hover,active四種狀態(tài),要讓鏈接用到a:active指定的樣式,就要將a:active寫在最后。

問題四:選擇器優(yōu)先級是如何計算的?

由高到低排列:

  1. 屬性后+!important
  2. 內聯(lián)樣式:<p style=“color: red;”>
  3. id選擇器: #id
  4. 類選擇器: .class
  5. 偽類選擇器:a:link
  6. 屬性選擇器:h1{}
  7. 標簽選擇器:p[XXX]
  8. 通用選擇器:*
  9. 瀏覽器自定義
  • !important是將對應選擇器的優(yōu)先級設置為最高級,但!important的屬性是不能繼承的!計算優(yōu)先級時通過數標簽來計算,先數id,如果id相等再數類,如果id不相等,id多的選擇器權重高,權重越高,優(yōu)先級越高。如果id選擇器數量相同,再數類選擇器,最后數標簽。

****文章著作權歸饑人谷_Shirley和饑人谷所有,轉載須說明來源****

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

相關閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,113評論 1 92
  • 問題一:CSS有幾種引入方式? link 和@import 有什么區(qū)別? css一共有4種引入方式: 內聯(lián)樣式 內...
    18K純帥咸魚閱讀 271評論 0 1
  • 轉載請聲明 原文鏈接地址 關注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    前端進階之旅閱讀 16,871評論 32 459
  • 最近在看html基礎,好吧,寫點筆記,比較low見諒,反正我自己看懂就行了 CSS基礎 1、css簡介 casca...
    小龍是只貓閱讀 642評論 0 1
  • 一,CSS是什么? 定義:CSS全稱是層疊樣式表; 作用:為頁面內容設置好看的模樣,在整個頁面中,CSS就像是人的...
    大春春閱讀 560評論 0 2

友情鏈接更多精彩內容