CSS核心概念一把梭-基礎部分

封面圖片來自Googlecss

一、基本語法

二、選擇器

2.一、選擇器類型

(1)、簡單選擇器

經過元素類型 tagName*.class#id 匹配一個或多個元素。html

(2)、屬性選擇器

經過 屬性 / 屬性值 匹配一個或多個元素。css3

Presenceweb

類型 匹配結果
[ attr ] 匹配包含 attr 屬性的全部元素
[ attr = val ] 匹配 attr 屬性值爲 val 的全部元素
[ attr ~= val ] 匹配 attr 屬性中包含 val 詞彙( space-separated )的全部元素

Substringchrome

類型 匹配結果
[ attr ^= val ] 匹配 attr 屬性中以 val 開頭的全部元素
[ attr |= val ] 匹配 attr 屬性中以 val或者 val- 開頭的全部元素
[ attr $= val ] 匹配 attr 屬性中以 val 結尾的全部元素
[ attr *= val ] 匹配 attr 屬性中包含 val 的全部元素
(3)、僞類和僞元素

僞類:匹配元素的相關狀態和屬性,如 :hover :first-child :nth-child() ,單冒號。
僞元素:匹配元素的相關位置, 如 ::after ::first-letter ::selection,雙冒號。express

(4)、組合選擇器

組合選擇器:組合使用多個選擇器。瀏覽器

類型 組合 匹配結果
選擇器組 A , B 匹配 A or B選擇器規則
後代選擇器 A B 匹配B選擇器規則,且B是A的後代(子孫)
子代選擇器 A > B 匹配B選擇器規則,且B是A的子代(必須是直接子代)
相鄰兄弟選擇器 A + B 匹配B選擇器規則,且B是A的弟弟(AB屬於同一父代,且B緊跟A的後面)
任一兄弟選擇器 A - B 匹配B選擇器規則,且B是A的任意弟弟(AB屬於同一父代,且B在A以後,不必定緊挨)

2.二、選擇器優先級

優先級按如下規則遞增:bash

  • 通配符 * 、組合選擇器( , > + - '')和否認僞類:not()對優先級沒有影響(在 :not() 內部聲明的選擇器仍是會按照規則影響)
  • 瀏覽器默認樣式
  • 元素類型選擇器 tagName、僞元素選擇器 ::
  • 類選擇器 .class、 屬性選擇器 [ attr ]、僞類選擇器 :
  • id選擇器 #id
  • 內聯樣式 < tagName style="" >
  • !important

三、值和單位

3.一、值

- 數值
- 百分比
- 顏色:背景顏色 background-color 文字顏色 color  邊框顏色 border
    - colorName
    - HEX
    - RGB
    - HSL
    - RGBA HSLA
    - Opacity
- 函數
    - rgb() rgba() hsla() linear-gradient()
    - rotate() translate()
    - calc()
    - url()
複製代碼

3.二、單位

-   px
-   em em are the most common **relative** unit you'll use in web development.
-   rem
-   ex ch
-   vw vh
-   無單位值
-   動畫 s deg
複製代碼

四、繼承

五、盒模型

5.一、盒模型基礎

  • margin:外邊距,顏色透明
  • border:邊框
  • padding:內邊距,顏色透明
  • content:盒子內容
    • widthheight : Content的寬度和高度,默認爲 auto,即瀏覽器自動計算。
    • max-width/min-width min-height/max-height

注意!再提一下,設置元素的widthheight,其實是設置的content區域的widthheight元素的實際尺寸還需計算paddingbordermargin。 有幾種計算模型須要瞭解:markdown

  • w3c 標準盒模型
Total element width = width + left padding + right padding + left border + right border + left margin + right margin

Total element height = height + top padding + bottom padding + top border + bottom border + top margin + bottom margin
複製代碼
  • IE 盒模型

5.四、輪廓 outline

OUTSIDE the borders, to make the element "stand out".ide

輪廓指的是邊框外的區域,目的是爲了設置使元素顯得突出的樣式

5.二、溢出 overflow

溢出 overflow 控制的是內容區域 content 太大而溢出一片區域時候的狀況。

匹配結果
visible 默認值,溢出部分不會被裁減,內容區域 content會渲染到元素盒子以外
hidden 溢出部分會被裁減, 不可見
scroll 溢出部分會被裁減,但會出現滾動條以查看內容(始終存在垂直和水平滾動條)
auto scroll類似,但只會在必要時,出現滾動條(只有溢出的方向出現滾動條)

5.三、背景剪裁 background-Clip

background-clip: border-box|padding-box|content-box|initial|inherit;
複製代碼

5.五、盒子類型 display

5.六、外邊距合併

塊級格式化上下文 BFC

BFC ( block-formatting contexts )

六、調式CSS

Chrome開發者工具使用指南 | Google Developer

七、媒體查詢 @media

@media not|only mediatype and (expressions) {
  CSS-Code;
}
複製代碼
<link rel="stylesheet" media="mediatype and|not|only (expressions)" href="print.css">
複製代碼

參考:

相關文章
相關標籤/搜索