前端基礎總結之css系列
很多,一定要掌握
css總結
CSS總結
css相關的屬性
color
文字的顏色
取值
關鍵字:red、pink
rgb
每一項 0~255
rgba
a透明度
0:完全透明
1:完全不透明
0.5:半透明
取值範圍是:0~1
十六進位制
#
要麼是6位
#ffaabb
要麼是3位
#fab
font-相關的屬性
文字相關的屬性
相關屬性
font-size
字型的大小
font-weight
字型的粗細
取值
關鍵字
加粗:bold
正常:normal
純數字
加粗:700
正常:400
font-style
字型樣式
取值
italic
傾斜
normal
正常
font-family
字型的型別
font-相關屬性的連寫形式
swsf
font:style weight size family
注意覆蓋的問題
單獨寫的樣式寫在連寫的後面
連寫的完整版
font:style weight size/line-height family
省略問題
可以省略前兩個
background-相關屬性
背景相關的屬性
相關屬性
background-color
背景顏色
background-image
背景圖片
預設是平鋪效果
background-repeat
背景是否平鋪
repeat
平鋪
no-repeat
不平鋪
repeat-x
x軸平鋪
repeat-y
y軸平鋪
background-position
背景圖片的位置
取值
關鍵字
水平方向
left center right
垂直方向
top center bottom
px
混用
50px center
x軸50px 垂直方向居中
background-size
設定背景圖片的大小
取值
第一個值
背景圖片的寬度
數字+px
100%:表示就是當前盒子的寬度
第二個值
背景圖片的高度
數字+px
100%:表示就是當前盒子的高度
background-相關的屬性的連寫形式
background:color image repeat position
覆蓋問題
單獨寫的樣式寫在連寫的後面
text-相關屬性
文字相關屬性
相關屬性
text-indent
首行縮排
首行縮排兩個字元
2em
1em=font-size
px
text-decoration
文字的修飾
取值
none
無(沒有修飾)
一般用於清除a標籤的下劃線
underline
下劃線
line-through
刪除線
text-align
文字的對齊方式(水平方向)
取值
left
center
水平居中
right
line-height
行高
定義:兩行文字基線之間的距離
作用:讓文字垂直居中
line-height:標籤的高度
取值
數字+px
數字+em
1em=font-size
瀏覽器預設文字大小:16px
百分比
百分比*font-size
單純的數字(倍數)
倍數*font-size
vertical-align
垂直對齊方式
作用:處理行內塊元素對齊方式的問題
一般只會給行內塊元素設定
取值
top
middle
bottom
baseline
overflow
設定內容溢位部分的樣式
取值
visible
超出不隱藏
hidden
超出隱藏
scroll
滾動條
缺點:無論內容是否超出,都有滾動條
auto
根據內容的多少自動顯示或者隱藏滾動條
border-radius
邊框圓角
常見的使用
1、畫一個圓
盒子是正方形
設定border-radius:50%;
2、膠囊按鈕
盒子是一個矩形
設定border-radius:盒子的高度一半;
cursor
滑鼠樣式
取值
default
預設的箭頭樣式
pointer
小手的樣式
text
工字型
居中方法總結
水平居中
text-align:center
文字
行內元素
span a
行內塊元素
img、input
margin:0 auto
標準流中的塊級元素
垂直居中
line-height:標籤的高度
文字
行內元素
span a
行內塊元素
input
img
需要單獨給img標籤設定vertical-align:middle
定位
1、子絕父相
2、top:50%;
3、transform:translateY(-50%);
讓塊級元素垂直居中
選擇器
作用:找到頁面中的標籤,設定樣式
基本選擇器
標籤選擇器
標籤名 {}
通過標籤名,找到頁面中所有符合的標籤
一類
類選擇器
.類名 {}
通過類名,找到頁面中所有帶有這個類名的標籤
注意點:
一個標籤可以設定多個類名
一個類選擇器可以選中多個標籤
多對多
id選擇器
#id屬性{}
通過id屬性,找到頁面中帶有這個id的標籤
注意點
一個標籤只能有一個id屬性
一個id選擇器只能選中一個標籤
一對一
id相當於身份證號碼,在一個頁面中是唯一的,不能重複的!!!!
複雜選擇器
萬用字元
* {}
找到頁面中所有的標籤,設定樣式
效率低 耗效能
並集選擇器
選擇器1,選擇器2 {}
找到選擇器1和選擇器2選中的標籤設定樣式
注意點:
並集選擇器可以同時寫多個選擇器,選擇器之間用逗號隔開!!
交集選擇器
選擇器1選擇器2 {}
既又原則
既符合選擇器1又符合選擇器2的標籤設定樣式
注意點
交集選擇器中可以寫多個選擇器,但是選擇器與選擇器之間是緊挨著的!!!!
如果多個選擇器之間有標籤選擇器,必須寫在最前面
後代選擇器
選擇器1 選擇器2 {}
在選擇器1選中標籤的後代(兒子、孫子、重孫子....)中,找到符合選擇器2的標籤,設定樣式
子代選擇器
選擇器1>選擇器2 {}
在選擇器1選中標籤的子代(兒子),找到符合選擇器2的標籤,設定樣式
連結偽類選擇器
選擇的不僅僅是標籤,而是標籤的某種狀態
a:link
連結未點選時的狀態
a:visited
連結訪問之後的狀態
a:hover
滑鼠懸停時的狀態
可以用在其他元素
a:active
滑鼠按下的狀態
書寫順序
lvha
結構偽類選擇器
作用:通過標籤的html結構關係,找到對應的標籤
常見的情況
li:first-child {}
1、找到頁面中所有的li
2、找到li的父元素
3、找到父元素的第一個子元素
4、判斷第一個子元素是否是li
是
加樣式
不是
不加樣式
li:last-child {}
1、找到頁面中所有的li
2、找到li的父元素
3、找到父元素的最後一個子元素
4、判斷最後一個子元素是否是li
是
加樣式
不是
不加樣式
li:nth-child(數字)
找到偶數個
2n
找到奇數個
2n+1/2n-1
找到前12個
-n+12
屬性選擇器
作用:通過標籤的屬性找到對應的標籤
結構:標籤名[屬性名=“屬性值”] {css樣式}
常用的情況
input[type='text'] {}
找到頁面中所有的文字框
input[type='button'] {}
找到頁面中所有的表單按鈕
css的書寫位置(css的三種引入方式)
內嵌樣式
書寫位置
css寫在style標籤裡面
style標籤可以寫在任意位置,但是規範最好寫在title標籤下面
作用範圍
當前頁面
應用場景
小案例、小demo
行內樣式
書寫位置
css寫在標籤的style屬性中
作用範圍
當前標籤
應用的場景
基礎班不用,之後js操作的樣式都是行內樣式
外聯樣式
書寫位置
單獨的css檔案中,如果要使用通過link標籤引入
作用範圍
多個頁面(誰引入誰生效)
應用場景
專案中用的最多
css的三大特性
繼承性
子元素有預設繼承父元素樣式的效果
哪些屬性可以繼承?(記憶方法)
color
text-
font-
line-
不能繼承的特殊情況
a標籤的顏色不能繼承
其實是繼承下來了,但是被瀏覽器預設設定的樣式給覆蓋掉了
h系列的font-size不能繼承
其實是繼承下來了,但是被瀏覽器預設設定的樣式給覆蓋掉了
塊級元素有預設繼承父盒子寬度的效果
其實並不是繼承,只是因為獨佔一行的效果
如果子元素自己有樣式(自己設定、瀏覽器預設加的),都不會問父元素要
層疊性
層疊的樣式不同時,樣式會疊加
共同作用在標籤上
層疊的樣式相同時,樣式會覆蓋
寫在下面的樣式生效!!!
優先順序
公式
繼承<萬用字元<標籤選擇器<類選擇器<id選擇器<行內樣式<!important
注意點
!important不能提升繼承的優先順序
繼承永遠是繼承,優先順序最低!!
!important書寫位置
font-size:100px !important ;
!important只能提升單個樣式的優先順序
不能提升選擇器的優先順序
權重(應付複合選擇器)
計算公式
0000
第一級表示行內樣式的個數
第二級表示id選擇器的個數
第三級表示類選擇器的個數
第四級表示標籤選擇器的個數
!important優先順序最高!!!!!!
元素的三種顯示方式
塊級元素
display:block
特點
獨佔一行
寬度預設繼承父元素的寬度
高度預設由內容撐開(自適應)
可以設定寬高
代表標籤
div、h、p
行內元素
display:inline
特點
一行顯示多個
寬度和高度預設由內容撐開
不可以設定寬高
代表標籤
span a
偽元素預設顯示行內元素
行內塊元素
dispaly:inline-block
特點
一行顯示多個
可以設定寬高
代表標籤
input img
三種顯示方式的轉換
display:block/inline/inline-block
盒子模型
四個部分組成
內容:content
內邊距:padding
盒子邊框與內容之間的距離
邊框:border
外邊距:margin
盒子與盒子之間的距離
具體每個部分的組成
border:邊框
屬性
border-width
邊框的粗細
border-style
邊框的樣式
solid 實線
dashed 虛線
dotted 點線
border-color
邊框的顏色
連寫
border:width style color
快捷鍵:bd+
給單方向設定邊框
border+方位名詞
去除邊框:border:none;
padding:內邊距
表示:邊框與內容之間的距離
取值
一個值
上下左右
兩個、三個、四個
從上開始賦值 順時針賦值,如果沒有設定的 看對面的!!!
給單方向設定padding
padding+方位名詞
盒子大小的計算公式
盒子的寬度=左border+左padding+內容的寬度+右padding+右border
盒子實際大小的組成部分
內容
width/height
內邊距
padding
邊框
border
設定盒子的大小
手動內減
自己計算,多出的部分在內容中減去
自動內減
box-sizing:border-box
margin:外邊距
表示:盒子與盒子之間的距離
取值
一個值
上下左右
兩個、三個、四個
從上開始賦值 順時針賦值,如果沒有設定的 看對面的!!!
給單方向設定margin
margin+方位名詞
margin的單方向應用
上下的margin
margin-top
讓盒子往下移動
margin-bottom
讓下面的盒子往下移動
左右的margin
margin-left
讓盒子往右移動
margin-right
讓右邊的盒子往右移動
margin的特殊現象
margin的合併現象
水平方向:左右margin會疊加
兩者之間的距離為margin的和
垂直方向:上下的margin會合並
取兩者之間margin的最大值!!!
margin的塌陷現象
現象是什麼?
兩個塊級元素巢狀,如果給子盒子設定margin-top 父盒子會一起往下移動!!!
解決方法
給父盒子設定border-top
給父盒子設定padding-top
給父盒子設定overflow:hidden
觸發了BFC
塊級格式化上下文
給父盒子設定浮動
把父盒子轉換成行內塊
浮動
浮動的作用
現在的作用:讓垂直佈局的盒子變成水平佈局(一個左,一個右)
最開始:圖文環繞
屬性
float:left
左浮動
float:right
右浮動
特點
浮動的元素會脫離標準流(脫標)
飄起來了(不佔位置)
比標準流高半個級別
浮動找浮動
浮動的元素受到邊界的影響
浮動之後的元素會有類似於行內塊的效果
一行可以顯示多個
可以設定寬度
其實浮動元素只能覆蓋標準流中的塊級元素(會把文字、行內塊.....擠到一邊去)
清除浮動
為什麼要清除浮動???
清除浮動帶來的影響
浮動之後的元素不能撐開父元素(脫標),父元素的高度就為0,就會影響之後的佈局
如何清除浮動
額外標籤法
1、在父元素裡面的最後新增一個塊級元素
2、給新增的塊級元素設定清除浮動的核心程式碼
clear:both
缺點:在頁面中添加了多餘的標籤,影響頁面的結構不清晰
偽元素清除法
本質上原理和額外標籤一樣,新增的是偽元素
偽元素:由css新增的元素
常用的偽元素
::before
...之前
::after
...之後
偽元素清除法的程式碼
給父元素設定overflow:hidden
觸發了BFC
直接給父元素設定高度
定位
靜態定位
position:static
不能通過配合方位屬性使用!!!
相對定位
position:relative
特點
相對於自己原來的位置進行移動
佔位置:沒有脫標
絕對定位
position:absolute
特點
相對於
預設相對於瀏覽器進行移動
如果父元素有定位(相對、絕對、固定),相對於有定位的父元素進行移動
不佔位置:脫標了
子絕父相
子元素絕對定位
父元素相對定位
應用
讓塊級元素水平居中
1、子絕父相
2、left:50%;
3、transform:translateX(-50%);
讓塊級元素水平居中都居中
1、子絕父相
2、left:50%;
3、top:50%;
4、transform:translate(-50%,-50%);
固定定位
position:fixed
特點
永遠相對於瀏覽器進行移動
不佔位置:脫標
注意點:脫標之後的元素寬度預設由內容撐開!!!
層級關係
標準流<浮動<定位
三種定位之間層級關係預設一樣,寫在下面的可以覆蓋上面的
如果要手動設定定位元素的層級
z-index:整數;
數字越大,層級越高!!!
css的三種隱藏方式
overflow:hidden
內容超出部分隱藏
是讓超出的內容隱藏!!!不是讓的元素隱藏!!!
visibility:hidden
元素隱藏,頁面中看不見
佔位置!!!!
display:none
元素隱藏,頁面中看不見
不佔位置!!!
巢狀的特殊情況
p標籤不能巢狀div
會把p標籤解析成兩個
a標籤不能巢狀a標籤
也會解析成兩個並列的a標籤
精靈圖
精靈圖的作用(好處)
減輕伺服器的請求次數,減輕伺服器的壓力
使用
1、新建一個盒子
2、通過ps量取精靈圖中小圖片的大小 設定盒子
3、將精靈圖設定為盒子的背景圖片
4、通過background-position:來設定背景圖片的位置 x和y的值 都是負數
注意:精靈圖本質上就是一個盒子(div)設定背景圖片,不能使用img標籤做!!
字型圖示
字型圖示的作用
可以減輕伺服器的壓力
字型圖示本質上文字,通過css設定字型圖示的顏色、大小、樣式
字型圖示放大不會失真!!!
使用:
下載
開啟demo_fontclass.html說明書
根據說明書的步驟 去使用!!!
1、引入iconfont.css這個檔案
2、在頁面中寫入i標籤 新增對應的類名即可!!