站點: 前端開發文檔
原文: CSS選擇器
原文: CSS繼承屬性
原文: CSS3核心模塊
原文: CSS盒子模型
原文: CSS背景圖像
原文: CSS清除浮動
原文: CSS定位
並集:對選擇器進行分組,被分組的選擇器能夠分享相同的聲明。用逗號將須要分組的選擇器開分。html
h1,h2,h3,h4,h5,h6{}
交集:兩種屬性同屬一個元素前端
p.name{}
、p#id{}
、.name1.name2{}
後代(派生):根據元素在位置上的關係定義樣式,使用空格隔開,後代選擇器儘可能不要超過3個,沒必要把每一個層級都列出,只須要寫關鍵點便可node
li strong {}
子代:只能選擇做爲某元素的子元素,只選擇子代,日後孫子一代不選擇git
h1 > strong {}
兄弟和相鄰兄弟:選擇緊接在另外一元素後的,而且兩者有相同父元素github
h1 + p {}
屬性:對帶有指定屬性的HTML元素設置樣式,權重爲10web
title
屬性的全部元素設置樣式,[title] {}
title="name"
的全部元素設置樣式,[title=name] {}
input[type="text"] {}
僞類:面試
:active
:被激活的元素:focus
:有鍵盤輸入焦點的元素:hover
:鼠標懸停:link
:未被訪問的連接:visited
:已被訪問的連接:first-child
:元素的第一個子元素:lang
:帶有指定lang
屬性的元素權重:windows
div
(1)class/類選擇器
(10)id
(100)結構選擇器(新增僞類(面試題))瀏覽器
:not
:排除:nth-child(n)
:第幾個元素 從1開始設置:nth-child(2n)
:偶數元素 從0開始設置:nth-child(2n+1)
:奇數元素:nth-of-type(n)
:某個元素下同類型的第幾個元素:nth-last-child
:倒數第幾個元素:first-child->:nth-child(1)
::fisrt-of-type
:第一個同級兄弟元素:last-of-type
:最後一個同級兄弟元素:nth-of-type(n)
:第幾個同級兄弟元素:last-child
:最後一個子元素:only-child
:僅有一個子元素:only-of-type
:只有一個同類型的子元素:empty
:空內容:checked
:被選中 主要用在input
表單元素屬性選擇器frontend
E[attr=val]
:E[attr|=val]
:只能等於val
或只能以val-
開頭E[attr*=val]
:包含val
字符串E[attr~=val]
:屬性值有多個,其中一個是val
E[attr^=val]
:以val
開頭E[attr$=val]
:以val
結尾目標僞類選擇器
:target()
:用來匹配URL指向的目標元素(存在URL指向該匹配元素時,樣式效果纔會生效)僞元素:
:first-line
:匹配首行文本,只能用於塊級元素:first-letter
:匹配首字符:before/:after
:DOM元素先後插入額外的內容
before/after
就要加上content=''
display: block;
:獨佔一行display: inline-block;
:不獨佔一行無繼承性的屬性
display
:規定元素應該生成的框的類型文本屬性:
vertical-align
:垂直文本對齊text-decoration
:添加文本裝飾text-shadow
:文本陰影效果white-space
:空白符的處理unicode-bidi
:設置文本的方向盒子模型的屬性:
width
、height
margin
、margin-top/right/bottom/left
border
、border-top/right/bottom/left
border-style
、border-top/right/bottom/left-style
border-width
、border-top/right/bottom/left-width
border-color
、border-top/right/bottom/left-color
padding
、padding-top/right/bottom/left
背景屬性:
background
background-color
background-image
background-repeat
background-position
background-attachment
定位屬性:
float
clear
position
top/right/bottom/left
min-width/min-height
、max-width/max-height
overflow
clip
z-index
生成內容屬性:
content
counter-reset
counter-increment
輪廓樣式屬性:
outline-style
outline-width
counter-color
outline
有繼承性的屬性
字體系列屬性
font
:組合字體font-family
:字體系列font-weight
:字體粗細font-size
:字體尺寸font-style
:字體風格font-variant
:小寫字母轉換爲大寫,字體尺寸更小font-stretch
:對當前font-family
進行伸縮變形。全部主流瀏覽器不支持。font-size-adjust
:爲某個元素規定一個aspect
值,保持首選字體的x-height
文本系列屬性
text-indent
:文本縮進text-align
:文本水平對齊line-height
:行高word-spacing
:字間距letter-spacing
:字符間距text-transform
:控制文本大小寫direction
:文本書寫方向color
:文本顏色visibility
表格佈局屬性
caption-side
border-collapse
border-spacing
empty-cells
table-layout
列表佈局屬性
list-style-type
list-style-image
list-style-position
list-style
quotes
cursor
頁面樣式屬性
page
page-break-inside
windows
orphans
過渡動畫
transition
:過渡動畫
transition-property
:過渡屬性 all[attr]
transition-duration
:過渡時間transition-delay
:延遲時間transition-timing-function
:運行類型
ease
:(逐漸變慢)默認值linear
:勻速ease-in
:加速ease-out
:減速cubic-bezier
:貝塞爾曲線過渡動畫效果思考步驟:
transition
屬性2D變換
transform
:變形屬性
rotate()
:旋轉函數
deg
:度數transform-origin
:旋轉的基點skew()
:傾斜函數
skewX()
skewY()
scale()
:縮放函數 默認值是1
scaleX()
scaleY()
translate()
:位移函數
translateX()
translateY()
animation-聲明關鍵幀
關鍵幀——@keyframes
相似於flash
關鍵幀的時間單位
0%
、25%
、100%
等(設置某個時間段內任意時間點的樣式)from(0%)
、to(100%)
:格式
@keyframes
:動畫名稱{動畫狀態}
animation-調用動畫
必要屬性
animation-name
:動畫名稱(關鍵幀名稱)animation-duration
:動畫執行時間可選屬性:
animation-timing-function
linear
:勻速ease
:緩衝ease-in
:由慢到快ease-out
:由快到慢ease-in-out
:由慢到快再到慢ease-bezier(num,num,num,num)
:特定的貝塞爾曲線類型,4個數值需在[0,1]區間內animation-delay
:動畫延遲animation-iteration-count
:重複次數animation-direction
:動畫運行的方向 normal|reverse|alternate|alternate-reverse
animation-play-state
:動畫狀態 running|paused
animation-fill-mode
:動畫結束後的狀態 none|forwards|backwards|both
3D變換
transform-style: flat|preserve-3d
:3D空間展現perspective
:景深效果transform: persective(800px)
:直接做用在子元素上transform
:新增函數
translate3d(tx, ty, tz)
:translateX()
translateY()
translateZ()
rotate3d(rx, ry, rz, a)
:rotateX()
rotateY()
rotateZ()
scale3d(sx, sy, sz)
:sacleX()
sacleY()
sacleZ()
圓角 border-radius
border-radius
:1-4個數字/1-4個數字
沒有/
則水平半徑和垂直半徑同樣
border-radius: 10px/5px;
線性漸變 linear-gradient
linear-gradient
:([<起點>||<角度>,]?<點>,<點>...)參數
徑向漸變 radial-gradient
radial-gradient
shape
形狀:ellipse
、circle
或設置水平半徑,垂直半徑size
:漸變的大小,即漸變中止位置:
closet-side
:最左邊farthest-side
:最遠邊closet-corner
:最近角farthest-corner
:最遠角(默認值)position
:關鍵詞|數值|百分比背景
background-origin
padding-box
:從padding
區域顯示border-box
:從border
區域顯示content-box
:從content
區域顯示background-clip
padding-box
:從padding
區域向外裁剪border- box
:從border
區域向外裁剪content-box
:從content
區域向外裁剪text
:文本裁剪background-size
100% 100%
:百分比10px 10px
:數值contain
:按原始比例收縮,背景圖顯示完整,但不必定鋪滿整個容器cover
:按原比例收縮,背景圖可能顯示不完整,但鋪滿整個容器background-attachment
fixed
(固定的) 默認是滾動的盒子陰影
box-shadow
:h v blur spread color inset;
h
:水平方向偏移v
:垂直方向偏移blur
:模糊半徑spread
:擴展半徑color
:顏色inset
:內陰影,默認是外陰影文本陰影
text-shadow
:x y blur color
x
軸偏移 y
軸偏移 模糊度 顏色文字添加邊框
text-stroke
:2px blue
1px
的透明邊框,可讓文字變得平滑濾鏡
-webkit-filter:normal;
:正常-webkit-filter:grayscale(1);
:灰度,取值範圍0-1-webkit-filter:brightness(0);
:亮度,取值範圍0-1-webkit-filter:invert(1);
:反色,取值範圍0-1,0爲原圖,1爲完全反色-webkit-filter:sepia(0.5);
:疊加褐色,取值範圍0-1-webkit-filter:hue-rotate(30deg);
:色相(按照色相環旋轉,順時針方向)(紅-橙-黃-黃綠-綠-藍綠-藍-藍紫-紫-紫紅-紅)此處爲疊加黃色濾鏡-webkit-filter:saturate(4);
:飽和度,取值範圍0-*,0爲無飽和度,1爲原圖,值越高,飽和度越大-webkit-filter:contrast(2);
:對比度,取值範圍0-*,0爲無對比度(灰色),1爲原圖,值越高對比度越大-webkit-filter:opacity(0.8);
:透明度,取值範圍0-1,0爲全透明,1爲原圖遮罩
mask-image
:mask-position
:mask-repeat
:border
邊框
三角形箭頭:
border
、border-width
、border-style
、border-color
三角形:
border
的3個屬性:border-width/border-style/border-color
,寬度和高度都爲0
,三角形箭頭方向設定顏色,其他方向顏色設爲透明transparent
margin
邊距
margin
邊距重疊: 取大值,不是二者相加之和。margin-top
的傳遞:大盒嵌套小盒,小盒加margin-top
值,傳遞到大盒,致使總體下移。
解決margin
的兼容性問題:
float: left;
overflow: hidden;
padding-top: 0/1px;
border-top: 1px solid transparent;
background
背景
主要屬性:
background-color
:背景顏色,簡寫background
transparent
inherit
指定背景顏色,從父元素繼承background-image
:背景圖片
url
:圖片URL地址node
:默認值 背景上未放置圖片inherit
:指定背景圖片從父元素繼承一個元素能夠引入多張背景圖片;
background-image
放置在元素的左上角,並重復垂直和水平方向background-repeat
:背景重複
background-image
的垂直和水平方向repeat
默認repeat-x
只有水平位置重複repear-y
只有垂直位置重複no-repeat
不重複inherit
從父元素繼承background-position
:背景定位
x
、y
水平位置,垂直位置。左上角是0
。單位(px,關鍵字,百分數)left right top bottom center
,僅指定一個關鍵字,其餘值將會是center
x
軸方向,默認y
軸爲center
inherit
從父元素繼承background-attachment
:背景關聯
scroll
默認fixed
固定inherit
從父元素繼承background-size
:背景圖像的尺寸大小
<length>
長度值指定圖像大小。不容許負值<percentage>
百分比指定圖像大小。不容許負值auto
圖像的真實大小cover
將背景圖像等比例縮放到徹底覆蓋容器,有可能超出容器contain
等比例所放到寬/高與容器的寬/高相等,背景圖像始終被包含在容器內background-origin
:設置背景圖像的參考原點(位置)
padding-box
:從padding
區域(含padding
)開始顯示背景border-box
:從border
區域(含border
)開始顯示背景content-box
:從content
區域開始顯示背景background-clip
:設置對象的背景圖像向外裁剪的區域
padding-box
:從padding
區域(不含padding
)開始向外裁剪背景border-box
:從border
區域(不含border
)開始向外裁剪背景content-box
:從content
區域開始向外裁剪背景text
:從前景內容的形狀(好比文字)做爲裁剪區向外裁剪,實現使用背景做爲填充色之類的遮罩效果。background-position: x y
overflow: hidden
overflow
溢出隱藏margin-top
的傳遞問題(面試題):
單行文本出現省略號(4個必備條件,缺一不可)
width
寬度(不寫寬度,默認繼承父元素寬度)overflow: hidden;
(溢出隱藏)white-space: nowrap;
text-overflow: ellipsis;
文字隱藏的方式,以省略號的方式隱藏多行文本出現省略號(必備條件,主要應用在移動端)
display: -webkit-box;
彈性盒模型-webkit-box-orient: vertical;
規定元素的排列方式:垂直排列-webkit-line-clamp: 2;
:文字的行數(自定義)overflow: hidden;
溢出隱藏多個元素在一行顯示的方法
display: inline;
display: inline-block;
float: left/right;
display: inline-block;
元素的特色
verticle-align
屬性會影響inline-block
元素,值可能會設爲top
若是HTML源碼中元素間有空格,列與列之間會產生空隙
解決方法:
dispay: inline-block;
,父元素增長一個屬性font-size: 0;
,同時在元素自己增長font-size
屬性進行覆蓋display:inline-block;
在IE6/7下不兼容的解決方法
display: inline; zoom: 1;
屬性IE7下塊元素兼容display: inline-block;
寫法?
display: inline;
),而後觸發塊元素的layout
(如:zoom: 1;
等)。div {display: inline-block; *display: inline; *zoom: 1;}
float
浮動float
元素的特色
left
時,浮動元素依次從父級盒子的左側向右排列display: block;
文檔流和脫離文檔流
float
元素產生的影響
background-color
不起做用padding
不會被撐開border
不會被撐開float
清除浮動的方法
height
(不推薦)overflow: hidden;
;給最後一個浮動元素後面添加一個塊級元素,這個塊級元素帶有clear: both;
屬性
clear
清除浮動元素對文檔流內元素的影響(可讓文檔流內的元素識別到浮動元素的高度)left
清除float
爲left
的影響right
清除float
爲right
的影響both
清除float
全部的影響inherit
從父級元素上繼承該屬性值clearfix
清除浮動(固定代碼)
:after
清除浮動必備條件,缺一不可display: block;
確保元素是一個塊級元素clear: both;
不容許左右兩邊有浮動對象content: '';
僞元素:brfore/:after
自帶的屬性,若是不寫,僞元素不起做用height: 0;
防止在低版本瀏覽器中默認height: 1px;
的狀況,用height: 0;
去覆蓋font-size: 0;
字體大小overflow: hidden;
溢出隱藏visibility: hidden;
讓全部可見性的元素隱藏overflow: hidden;
和visibility: hidden;
有什麼區別?
(面試題):如何讓一個元素消失?
opacity: 0;
[0-1] 透明度display: none;
隱藏widht/height/line-height + overflow
:寬/高/行高 + 溢出隱藏visibility: hidden;
讓全部可見性的元素隱藏clear: both;
的特色
相對定位-position: relative;
top
和bottom
同時有值的狀況下,top
值生效,支持負值left
和right
同時有值的狀況下,left
值生效,支持負值絕對定位-position: absolute;
top
和bottom
同時有值,top
生效;left
和right
同時有值,left
生效。top
和bottom
同時設置值的狀況下,會將這個盒子拉大,上下值都起做用,左右同理。z-index
屬性,必需要和定位元素(絕對,相對,固定)同時使用,纔會起做用。固定定位-position: fixed;
top/bottom/left/right
四個方位z-index
改變層級z-index
屬性的特色
z-index
屬性修改定位元素的層級關係z-index
默認值都同樣z-index
值是數字沒有單位,支持負數z-index
值,子元素的z-index
值進行比較