CSS
簡介
cascading style sheets 層疊樣式表
用于調整HTML元素的樣式, CSS通常編寫在.css檔案中.
優點:
讓網頁的内容 與 網頁的表現 完全分離. 提高了代碼的複用性.
常用樣式
樣式的編寫格式:
1. 樣式表由多個樣式組成.
2. 每一個樣式, 是一個鍵值對.
3. 鍵與值之間使用英文冒号連接配接 . 多個鍵值對之間使用英文分号分割.
常用樣式:
1. 字型大小
font-size:長度+機關;
2. 文字顔色
color:顔色值;
3. 内容位置
text-align:left/center/right;
4. 元素的寬度
width:長度+機關;
5. 元素的高度
height:長度+機關;
6. 背景顔色:
background-color:顔色值;
7. 背景圖檔
background:url("圖檔路徑");
css的三種使用方式
1. 内聯樣式表
定義在每一個元素的style屬性中.
格式: <開始标簽 style="樣式鍵:樣式值;樣式鍵:樣式值...">
案例:
<div style="text-align:center;color:#3a3;font-size:30px">
從前有座山 ,山上有座尼姑庵.
</div>
2. 内部樣式表
定義在style标簽中.
格式:
<style type="text/css">
選擇器1{
樣式清單;
}
選擇器2{
樣式清單;
}
...
選擇器n{
樣式清單;
}
</style>
3. 外部樣式表
定義在外部的.css檔案中,通過link标簽引入
css檔案的編寫格式:
@charset "UTF-8";
選擇器1{
樣式清單;
}
選擇器2{
樣式清單;
}
...
選擇器n{
樣式清單;
}
HTML中引入.css檔案的格式
<link rel="stylesheet" type="text/css" href="css的檔案路徑" target="_blank" rel="external nofollow" >
選擇器
作用: 用于標明一組元素 , 将樣式清單給定到選擇的元素.
基本選擇器
元素名稱選擇器
作用: 根據元素的名稱, 標明一個或一組元素.
格式:
元素名稱{
樣式清單;
}
id選擇器
作用: 根據元素的id屬性值, 標明一個或一組元素.
格式:
#元素id屬性值{
樣式清單;
}
類選擇器
作用: 根據元素的class屬性值 , 標明一個或一組元素
格式:
.元素的class屬性值{
樣式清單;
}
id和class的差別
id在程式中, 通常表示唯一的辨別.
class在程式中, 表示類. 相同class的元素, 我們認為是同一分類. 一個元素可以擁有多個class值.
給元素添加多個class值的格式:
一個class屬性名等于多個值, 值與值之間使用空格隔開.
例如: 設定如下div元素的class值為a和b
<div class="a b"></div>
CSS 樣式的三大特性
- 繼承性
部分父元素的樣式, 會被子元素所繼承.
- 層疊性
對于同一個元素, 通過多種方式添加的多組樣式.不沖突的部分疊加,沖突的部分參考優先級.
- 優先級特性
樣式來源優先級:
1. 内聯樣式 優先級最高
2. 相同選擇器的情況下 , 定義距離body較近的内部樣式表或外部樣式表中的選擇器.
3. 預設樣式
4. 繼承得到的樣式.
選擇器優先級:
1. id選擇器: 權重100
2. 類選擇器: 權重10
3. 元素名稱選擇器: 權重1
絕對優先樣式 慎用
在樣式值的後面,加入絕對優先關鍵字: !important;
案例:
div{
text-align: left !important;
}
選擇器
滑鼠懸停選擇器
當滑鼠處于元素上方時, 樣式生效.
當滑鼠離開元素後, 樣式還原.
格式:
選擇器:hover{
}
擷取焦點選擇器
當輸入元件處于輸入狀态時, 樣式生效.
當輸入元件輸入完畢時, 樣式還原.
格式:
選擇器:focus{
}
組合選擇器
選擇器組
通過多個選擇器, 組合起來鎖定一個或多個元素.
(被選擇的元素,需要滿足選擇器組中的所有選擇器)
格式:
元素名稱選擇器選擇器1選擇器2…選擇器n{
樣式清單;
}
例如: 選擇所有class值為class1的div元素
div.class1{
}
選擇器清單
将一組樣式, 給定到多個選擇器的結果
(被選擇的元素,隻需要滿足選擇器清單中的任意一個選擇器)
格式:
選擇器1,選擇器2…選擇器n{
樣式清單;
}
例如:設定div和p元素的文字顔色為綠色:
div,p{
color:#0f0;
}
派生選擇器
子選擇器
格式:
選擇器1>選擇器2{
}
作用:
從選擇器1的結果元素中, 選擇比對選擇器2的子元素.
例如: 選擇所有div中的子标簽p
div>p{
}
例如: 選擇id為content元素的子元素div
#content>div{
}
後代選擇器
格式:
選擇器1 選擇器2{
}
作用:
從選擇器1的結果元素中, 選擇比對選擇器2的後代元素.
例如: 選擇所有div中的後代标簽p
div p{
}
例如: 選擇id為content元素的後代元素div
#content div{
}
常用樣式
背景樣式
背景顔色
background-color:顔色值;
-
背景圖檔
background-image:url(“圖檔位址1”),url(“圖檔位址2”)…url(“圖檔位址n”);
堆疊順序:URL定義的越靠前, 顯示時越靠上.
-
背景圖檔控制 - 平鋪
backgorund-repeat:
取值:
- 預設平鋪:repeat;
- 僅橫向平鋪:repeat-x;
- 僅縱向平鋪:repeat-y;
- 不平鋪:no-repeat;
-
背景圖檔控制 - 縮放
background-size:寬度% 高度%;
-
背景圖檔控制 - 滑動
background-attachement:
- scroll : 預設圖檔跟随内容滑動
- fixed : 固定不滑動
-
背景圖檔控制 - 定位
background-position:x偏移值 y偏移值;
文字樣式
字型大小
font-size:長度+機關;
-
字型顔色
color:顔色值;
-
文字位置
text-align:left/center/right;
-
文字加粗
font-weight:bold;
-
文字線
text-decoration:
取值:
- underline : 下劃線
- overline : 上劃線
- line-through: 删除線
-
文字斜體:
font-style:oblique;
-
文本行高:
line-height:長度+機關;
-
文字陰影
text-shadow:橫向偏移 垂直偏移 [陰影模糊距離] 陰影顔色;
-
字型設定
font-family:字型名稱;
安裝字型
@font-face{
font-family:“自定義名稱”;
src:url(“字型檔案路徑”);
}
盒模型 ( 框模型 )
指的是元素在網頁中占用空間大小的 計算模型.
一個元素在網頁中占用的高度: 元素自身高度+上下内邊距+上下邊框的寬度+上下外邊距;
一個元素在網頁中占用的寬度: 元素自身寬度+左右内邊距+左右邊框的寬度+左右外邊距;
邊框
邊框樣式
格式1. 一次性指定四個方向邊框的寬度 樣式 顔色值;
border:寬度 樣式 顔色值;
格式2.
單獨指定某一個方向的邊框 寬度 樣式 顔色值;
左: border-left:寬度 樣式 顔色值;
上: border-top:寬度 樣式 顔色值;
右: border-right:寬度 樣式 顔色值;
下: border-bottom:寬度 樣式 顔色值;
邊框的樣式值:
- 實線 : solid
- 虛線邊框 : dashed
- 點組成邊框 : dotteds
格式1.
一次指定四個角的圓角寬度值
border-radius:長度+機關;
格式2.
單獨指定每一個角的圓角寬度值
上左角: border-top-left-radius:長度+機關;
上右角: border-top-right-radius:長度+機關;
下左角: border-bottom-left-radius:長度+機關;
下右角: border-bottom-right-radius:長度+機關;
邊框陰影
格式:
box-shadow:x偏移 y偏移 [陰影模糊大小] 陰影大小 陰影顔色
處理溢出邊框的内容
格式:
overflow:
- visible : 溢出的内容顯示, 預設值.
- hidden : 溢出的内容隐藏.
- scroll : 添加橫向 縱向滾動條.
- auto : 當内容溢出時. 才添加滾動條
表格的雙線邊框問題
border-collapse: collapse;
内邊距 padding
指的是元素的内容 與 元素的邊框的距離.
格式1.
一次指定四個方向的内邊距
padding:長度+機關;
格式2.
一次指定上下 和 左右的内邊距
padding:上下長度+機關 左右長度+機關;
格式3.
一次指定上 ,右 ,下,左的内邊距
padding:上 右 下 左;
格式4.
一次指定一個方向的内邊距
左: padding-left:長度+機關;
右: padding-right:長度+機關;
上: padding-top:長度+機關;
下: padding-bottom:長度+機關;
外邊距 margin
指的是元素的邊框 距離 其它元素的盒模型的距離. 值可以是負數
格式1.
一次指定四個方向的外邊距
margin:長度+機關;
格式2.
一次指定上下 和 左右的外邊距
margin:上下長度+機關 左右長度+機關;
格式3.
一次指定上 ,右 ,下,左的外邊距
margin:上 右 下 左;
格式4.
一次指定一個方向的外邊距
左: margin-left:長度+機關;
右: margin-right:長度+機關;
上: margin-top:長度+機關;
下: margin-bottom:長度+機關;
外邊距的特殊使用
- 兩個塊元素之間 ,上下的内邊距不會疊加. 值較大者生效.
- 外邊距可以是負值
- 可以指定一個元素的左右外邊距值為自動 auto , 自動居中.
定位
用于控制元素在網頁中顯示的位置
預設定位 (靜态定位)
預設元素分為三類:
1. 塊元素 : 獨占一行, 可以設定寬度和高度. div,ul,ol,li,table…
2. 行内元素 : 與其他元素共享一行, 一行排滿自動換行,寬度和高度無法設定, 隻能由内容撐開. span,i,b,a…
3. 行内塊元素 : 與其他元素共享一行, 一行排滿自動換行,寬度和高度可以設定. img,button,input…
display:
- block : 塊元素
- inline : 行内元素
- inline-block : 行内塊元素
- none : 隐藏不顯示.
浮動定位
格式: float:left/right;
相對定位
作用: 相對目前元素在預設定位下的位置 , 控制它進行x和y軸的移動.
特性: 原有空間保留, 移動的新位置, 采用覆寫顯示.
格式: position:relative;
絕對定位
不占用網頁空間, 采用覆寫顯示的一種定位方式.
格式: position:absolute;
固定定位
不占用網頁空間 ,采用漂浮覆寫顯示的一種定位方式.
格式: position:fixed;
相對定位/絕對定位/固定定位 如何确定元素的位置
上述的三種定位方式, 通過如下四種樣式 來确定元素的位置:
1. top: 長度+機關;
2. left: 長度+機關;
3. right: 長度+機關;
4. bottom: 長度+機關;
相對定位情況下:
元素相對于自身目前的位置, 進行指定方向的偏移.
例如: 讓元素從原有位置, 向右移動10個像素. left:10px; 或 right:-10px;
絕對定位情況下:
指的是元素距離指定方向邊框的距離.
注意: 如果元素沒有一個使用定位(相對定位/絕對定位/固定定位)的祖先元素, 則上述的邊框指的是浏覽器邊框;
如果元素擁有一個使用定位的父元素 , 則上述的邊框指的是這個使用了定位的祖先元素的邊框.
固定定位情況下:
距離浏覽器邊界某個方向的距離;
相對定位/絕對定位/固定定位 堆疊順序
設定堆疊順序:
z-index:整數;
預設值為0 , 值越大越靠上. 負數表示顯示在内容的後面.
當值相同時 , 元素編寫時越靠後, 顯示時越靠上.
設定元素的垂直對齊方式
vertical-align:
- top : 頂端對齊
- text-top: 文字頂端對齊
- bottom: 底部對齊
- text-bottom : 文字底部
- middle : 中部對齊 , (多個元素必須同時設定 才能生效.)
- 百分比% : 按照父元素的行高屬性值. 來計算對齊的百分比. (父元素必須有行高值)
滑鼠形狀
cursor :
取值:
- default : 預設滑鼠形狀, 跟随場景變化自動變化.
- pointer : 手指形狀 (用于提示使用者可點選)
- text : 焦點形狀 (工字形)
- wait : 等待
- help : 幫助
- progress: 進度中
- url(路徑),auto: 檔案格式: cur,ico
清單樣式
list-style-type:none;
取消前置數字或圖示.
不透明度
opacity:0-1的浮點型數字
當值為1時 , 不透明
當值為0時 , 完全透明
當值為0.5時, 半透明.
過渡
在元素的樣式變更時 , 為變更增加過渡時長, 讓樣式的變更流暢.
格式1.
transition:樣式 時長s;
格式2.
transition:all 時長s;
轉換
用于改變元素的形狀 大小 位置的一種樣式
2D轉換
- transform :
- 移動: tanslate(x,y) ;x和y分别表示移動的橫向和縱向像素數量.
- 旋轉: rotate(數值deg)
- 縮放: scale(x,y);橫向和縱向的縮放倍數.
- 翻轉: skew(xdeg,ydeg)
3D旋轉
- transform:
X軸旋轉: rotateX(數值deg)
y軸旋轉: rotateY(數值deg);
動畫 *
指的是元素在多個樣式之間 自動平穩的過渡.
定義的格式:
@keyframes 自定義名稱{
0%{
樣式清單;
}
...
100%{
樣式清單
}
}
使用動畫的格式:
選擇器{
animation:動畫名稱 時長s;
animation-iteration-count:數字;/*重複執行的次數*/
}
響應式
以移動裝置優先顯示:(當手機裝置打開時, 像素自動放大)
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
當螢幕寬度小于500像素時 , 生效的樣式:
@media (max-width:500px){
選擇器{
}
選擇器{
}
}
當螢幕寬度大于500像素時 , 生效的樣式:
@media (min-width:500px){
選擇器{
}
選擇器{
}
}