CSS 入門看這一篇就夠了:)

一、元素顯示模式總結

元素模式 元素排列 設置樣式 默認寬度  包含  常見標籤 
 塊級元素 一行只能放一個  可以直接設置寬高  父容器的100%  容器級可以包含任何標籤   <h1>~<h6>、<p>、<div>、<ul>、<ol>
行內元素  一行可以放多個  不可以直接設置寬高  本身內容的寬度   容納文本或其他行內元素  <a>、<span>
行內塊元素   一行可以放多個 可以直接設置寬高  本身內容的寬度     <img />、<input />、<td>


二、CSS 三大特性

1、層疊性:相同選擇器設置相同的樣式,此時一個樣式就會覆蓋(層疊)另一個衝突的樣式。

2、繼承性:子標籤會繼承父標籤裏的某些樣式,如文本顏色和字號。

3、優先級:當同一個元素指定多個選擇器,就會有優先級的產生;選擇器相同則執行層疊性,否則根據選擇器權重執行。

優先級注意點:權重是由四組數字組成,但是不會有進位。(可以理解爲類選擇器永遠大於元素選擇器,ID選擇器永遠大於類選擇器)

選擇器 選擇器權重
繼承或* 0,0,0,0
元素選擇器 0,0,0,1
類選擇器,僞類選擇器 0,0,1,0
ID 選擇器 0,1,0,0
行內樣式 style="" 1,0,0,0
!important 重要的 無窮大

 

三、圓角邊框

border-radius 屬性用於設置元素的外邊框圓角,語法 border-radius: length;(以length爲半徑畫圓相切於邊框兩邊所形成的圓角)

四個屬性:border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius。

 

四、陰影

1、盒子陰影:box-shadow 屬性用於爲盒子添加陰影。語法 box-shadow: h-shadow v-shadow blur spread color inset;

2、文字陰影:text-shadow 屬性用於給文本添加陰影。語法 text-shadow: h-shadow v-shadow blur color;

h-shadow 水平陰影,v-shadow 垂直陰影,blur 模糊距離,spread 陰影尺寸,color 陰影顏色,inset 將外部陰影改爲內部陰影。

 

五、浮動

設置了浮動 float 的元素最重要特性:

1、脫離標準流的控制浮動到指定位置,俗稱脫標。

2、浮動的盒子不再保留原先的位置

3、浮動元素具有行內塊元素特性

 

六、清除浮動

由於父盒子很多情況下,不方便給高度,但是子盒子浮動又不佔有位置,最後父盒子高度爲0,就好影響下面的標準流盒子。

清除浮動的方法:額外標籤法、父級 overflow: hidden、父級 after 僞元素、父級雙僞元素。

 

七、定位

定位模式 是否脫標 移動位置 是否常用
static 靜態定位 不能使用邊偏移 幾乎不用
relative 相對定位 否(佔有位置) 相對於自身位置移動 常用
absolute 絕對定位 是(不佔有位置) 帶有定位的父級 常用
fix 固定定位 是(不佔有位置) 相對於瀏覽器可視窗口 常用 
sticky 粘性定位 否(佔用位置) 相對於瀏覽器可視窗口  常用 

 (在使用定位佈局時,可能會出現盒子重疊的情況,可使用 z-index 來控制盒子的前後順序)

 

八、vertical-align 屬性應用

CSS 的 vertical-align 屬性經常用於設置圖片或者表單(行內塊元素)和文字垂直對齊,只對行內或行內塊元素有效。

語法:vertical-align: baseline | top | middle | bottom,默認以基線對齊。

 

九、結構僞類選擇器

選擇符 簡介
E:first-child 匹配父元素中的第一個子元素 E
E:last-child 匹配父元素中最後一個 E 元素
E:nth-child(n) 匹配父元素中第 n 個子元素 E
E:first-of-type 指定類型 E 的第一個
E:last-of-type 指定類型 E 的最後一個
E:nth-of-type(n) 指定類型 E 的第 n 個

 

十、盒子模型

CSS3 中可以通過 box-sizing 來指定盒模型,有兩個值:content-box、border-box。

1、box-sizing: content-box 盒子大小爲 width + padding + border。(默認情況)

2、box-sizing: border-box 盒子大小爲 width。

 

十一、過渡屬性

transition: 要過渡的屬性 花費的時間 運動曲線 何時開始

 

十二、2D 轉換

1、2D 移動是 2D 轉換裏面的一種功能,可以改變元素在頁面的位置,類似定位。

語法:transform: translate(x,y); 

translate 不會影響其他元素的位置,translate 中的百分比單位是相對於自身元素的,對行內標籤沒得效果。

2、2D 旋轉指的是讓元素在二維平面內順時針旋轉或者逆時針旋轉。

語法:transform: rotate(度數);

單位是 deg,角度爲正時,順時針旋轉,否則逆時針旋轉,默認旋轉的中心點時元素中心點。

3、2D 轉換中心點

語法:transform-origin: x y;

4、2D 轉換之縮放

語法:transform: scale(x,y)

x,y 分別是寬高放大的倍數,也可以簡寫爲 transform: scale(n);

可以設置轉換中心點縮放,默認以中心點縮放,而且不影響其他盒子。

 

十三、動畫

 1、用 keyframes 定義動畫

<!--類似於這種,可以是其他百分比例,0% 和 100% 相當於from 和 to -->
@keyframes 動畫名稱{
    0%{

    }
    50%{
        width: 100px;
    }
    100%{
        width: 200px;
    }
}

2、使用動畫

div {
    width: 50px;
    height: 50px;
    background-color: pink;
    margin: 100px auto;
    animation-name: 動畫名稱;
    animation-duration: 持續時間;
}

3、動畫其他屬性

animation-timing-function(速度曲線)、animation-delay(延時)、animation-iteration-count(播放次數) ......

 

十四、3D 轉換

1、3D 移動在 2D 移動的基礎上多加了一共可以移動的方向,就是 z 軸方向。

語法:transform: translate3d(x,y,z);

2、透視 perspective

3、3D 旋轉:transform: rotate3d(x,y,z,deg)

4、3D 呈現 transform-style

transform-style: preserve-3d;(默認flat,不開啓 3D 立體空間)。

代碼寫給父級,但是影響的是子盒子。

 

十五、彈性盒 flex

flex 是 flexible Box 的縮寫,採用 flex 佈局的元素,稱爲 flex 容器,他的所有子元素自動成爲容器成員,稱爲 flex 項目。

flex 佈局就是通過給父盒子添加 flex 屬性,來控制子盒子的位置和排列方式。

當我們爲父盒子設爲 flex 佈局後,子元素的 float、clear 和 vertical-align 屬性將失效。

1、常見父項屬性:flex-direction(設置主軸的方向)、justify-content(設置主軸上的子元素排列方式)、flex-wrap(設置子元素是否換行)

align-content(設置側軸上的子元素的排列方式,僅對多行有效),align-items(設置側軸上的子元素排列方式,僅用於單行)

flex-flow(複合屬性,相當於同時設置了 flex-direction 和 flex-wrap)

2、常見子項屬性:flex(子項目佔的比例)、align-self(控制子項目自己在側軸的排列方式)、order(子項的排列順序)

 

十六、常見問題彙總

1、子元素設置 margin-top 後,父元素跟隨下移的問題

2、外邊距合併塌陷問題

浮動元素、絕對定位(固定定位)元素都不會觸發外邊距合併的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章