模塊二學(xué)習(xí)內(nèi)容

### CSS核心樣式

* * *

#### css字體屬性

##### font-weight:字體粗細

* 作用:設(shè)置文字是否加粗顯示辽装。

* 屬性名:font-weight 屬于font屬性的一個單一屬性,屬性值分為單詞和數(shù)字润文。

* 屬性值:

? ? 1. normal  默認值辙培,定義標準的字體线定。?

? ? 2. bold   定義粗字體早芭,b strong 標簽的默認值罗岖。

? ? 3. bolder  定義更粗的字體。

? ? 4. lighter   定義更細的腹躁。

? ? 5. 100-900之間的整數(shù)字  其中400等價于noraml,700等價于bold桑包。

##### font-style:字體風格

* 作用:設(shè)置字是否斜體顯示。

* 屬性名:font-style纺非,屬于font屬性的一個單一屬性哑了。屬性值為單詞。

* 屬性值:

? ? 1. normal  默認值烧颖,設(shè)置正規(guī)的字體弱左。

? ? 2. italic  設(shè)置傾斜的文字,主要針對文字炕淮,要求英文中以字體中的斜體樣式顯示拆火。

? ? 3. oblique   設(shè)置傾斜的文字,只是將字體傾斜涂圆,與字體無關(guān)们镜。

##### line-height:行高

* 作用:設(shè)置的是一行文字實際占有的高度,文字字號在行高中是垂直居中的润歉。

* 屬性名:line-height模狭,屬于font屬性的一個單一屬性。屬性值分為px像素值和百分比踩衩。

* 屬性值:

? ? 1. px像素值  設(shè)置行高的具體的像素值嚼鹉。

? ? 2. 百分比數(shù)值  設(shè)置的本身字號像素值的百分比。

##### font綜合書寫:

* 書寫方式:

? ? 1. font進行綜合書寫時驱富,必須要有字號和字體參與锚赤,而且必須字號在前,字體在后萌朱。

? ? 2. font屬性經(jīng)常對字體宴树、字號、行高進行書寫時晶疼,書寫順序必須是字號酒贬、行高又憨、字體。字號和行高之間必須用/進行分隔锭吨。

? ? 3. 如果font屬性需要設(shè)置加粗和斜體蠢莺,那么這兩個值只能寫在最前面,而且這兩個值可以互換位置零如。后面的字號躏将、行高、字體位置不能更改位置考蕾。

#### CSS文本屬性

##### text-align:水平對齊

* 作用:設(shè)置文本水平方向的對齊祸憋。在盒子中,無論文本是單行還是多行肖卧,都會對應(yīng)方向?qū)R蚯窥。

* 屬性值:

? ? 1. left  居左對齊,大部分標簽的默認值塞帐。

? ? 2. center   居中對齊拦赠。

? ? 3. right   居右對齊。

##### text-decoration:文本修飾

* 作用:設(shè)置文本整體是否有線條的修飾效果葵姥。

* 屬性值:

? ? 1. none  沒有修飾荷鼠,大部分標簽的默認值。

? ? 2. overline  上劃線榔幸。

? ? 3. line-through  中劃線允乐,刪除線,<del>標簽的默認值牡辽。

? ? 4. underline  下劃線喳篇,<a>標簽的默認值。

##### text-indent:文本縮進

* 作用:設(shè)置段落首行是否進行首行縮進态辛。

* 屬性值:

? ? 1. px像素值  表示首行縮進多少像素麸澜。

? ? 2. em單位  表示首行縮進多少個中文字符的位置。

? ? 3. 百分比%  表示縮進文字所在的標簽的父級標簽的width屬性值的百分比奏黑。


? ? 在實際工作中炊邦,最常使用em為單位的屬性值,并且屬性值區(qū)分正負熟史,正表示向右縮進馁害,負表示向左。對于文本標簽因為長度和高度都是其內(nèi)部內(nèi)容自動撐開蹂匹,所以要設(shè)置文本標簽要首先將其設(shè)置為塊碘菜。


* * *

#### CSS盒模型:

盒模型又叫框模型,包含了五個用來描述盒子位置、尺寸的屬性忍啸,分別是寬度width仰坦、高度height、內(nèi)邊距padding计雌、邊框border悄晃、外邊距margin。

##### 盒模型的區(qū)域:

* 可以書寫的區(qū)域:width+height凿滤。

* 盒子可以實體化的區(qū)域:width+height+padding+border

* 盒子實際占位的位置:width+height+padding+border+margin妈橄。

##### width:寬度

* 作用:設(shè)置可以添加元素內(nèi)容的區(qū)域的寬度。

* 屬性值:

? ? 1. auto    默認值翁脆。瀏覽器可計算出實際的高度眷蚓。

? ? 2. px像素值  像素值定義的寬度。

? ? 3. 百分比%  定義參考父元素寬度width的百分比寬度反番。

? ? 如果一個元素不添加width屬性溪椎,默認屬性值為auto,不同的瀏覽器會根據(jù)其特點自動計算出實際寬度恬口,例如<div>元素等獨占一行的,其width屬性的值會自動撐滿父元素的width區(qū)域沼侣,如果是<span>元素不需要獨占一行的祖能,其width屬性的值是內(nèi)部元素內(nèi)容自動撐開的寬度。

? ? <body>元素比較特殊蛾洛,不需要設(shè)置width屬性养铸,寬度會自動適應(yīng)瀏覽器窗口的寬度。

##### height:高度

* 作用:設(shè)置可以添加元素內(nèi)容的區(qū)域的高度轧膘。

* 屬性值:

? ? 1. auto  默認值钞螟。瀏覽器會計算出實際的高度。

? ? 2. px像素值  像素值定義的高度谎碍。

? ? 3. 百分比%   定義參考父元素高度height的百分比高度鳞滨。


? ? 如果一個元素不添加height屬性,默認屬性值為auto蟆淀,瀏覽器會自動計算出實際高度拯啦,也就是內(nèi)部元素內(nèi)容自動撐開的高度。元素的高度自適應(yīng)內(nèi)部內(nèi)容的高度熔任。


##### padding:內(nèi)邊距

* 作用:設(shè)置的是元素的邊框內(nèi)部到寬高區(qū)域之間的距離褒链。

* 特點:可以加載背景,不能書寫嵌套的內(nèi)容疑苔。

* 屬性值:常用px為單位的數(shù)值甫匹。

padding是一個復(fù)合屬性,可以根據(jù)內(nèi)邊距的方向的不同劃分為四個方向的單一屬性。

? ? ```

? ? ? ? p {

? ? ? ? ? ? padding-top: 10px;

? ? ? ? ? ? padding-right: 20px;

? ? ? ? ? ? padding-bottom: 30px;

? ? ? ? ? ? padding-left: 40px;

? ? ? ? }

? ? ```

* 寫法:

? ? 1. 四值法:設(shè)置四個屬性值兵迅,分配為上抢韭、右、下喷兼、左篮绰。


? ? ? ? ```

? ? ? ? ? ? p{

? ? ? ? ? ? ? ? padding:10px 20px 30px 40px

? ? ? ? ? ? }

? ? ? ? ```

? ? 2. 三值法:設(shè)置三個屬性值,分配為上季惯、左右吠各、下。


? ? ? ? ```

? ? ? ? p{

? ? ? ? ? ? padding:10px 20px 30px;

? ? ? ? }

? ? ? ? ```

? ? 3. 二值法:設(shè)置兩個值勉抓,分配為上下贾漏、左右。


? ? ? ? ```

? ? ? ? p{

? ? ? ? ? ? padding:10px 20px藕筋;

? ? ? ? }

? ? ? ? ```


? ? 4. 二值法:設(shè)置兩個值纵散,分配為上下、左右隐圾。

? ? ? ? ? ? p{

? ? ? ? ? ? ? ? padding:10px 20px伍掀;

? ? ? ? ? ? }

##### border: 邊框

* 作用:設(shè)置的是內(nèi)邊距外面的邊界區(qū)域,作為盒子的實體化的最外層暇藏。

* 屬性值:由三個值組成蜜笤,分為線的寬度、線的形狀盐碱、線的顏色把兔。

* border屬性是一個復(fù)合屬性,根據(jù)劃分依據(jù)不同可以有兩種單一屬性的劃分方式瓮顽。

* 按照屬性值類型劃分:

? ? 1. border-width 線寬县好,設(shè)置邊框線的寬度,屬性值寫法類似于padding四種值的寫法暖混。

? ? 2. border-style 線型缕贡,設(shè)置邊框的線條形狀,屬性值為單詞儒恋,類似于padding四種值的寫法善绎。

? ? ? ? ① none  定義無邊框。

? ? ? ? ② solid  定義實線诫尽。

? ? ? ? ③ dashed  定義虛線禀酱,在大多數(shù)瀏覽器中呈現(xiàn)為實線。

? ? ? ? ④ dotted  定義點狀邊框牧嫉,在大多數(shù)瀏覽器中呈現(xiàn)為實線剂跟。

? ? ? ? ⑤ double  定義雙線减途,雙線的寬度等于border-width的值。

? ? ? ? ⑥ groove  定義3D曹洽,其效果取決于border-color的值鳍置。

? ? ? ? ⑦ ridge  定義3D壟狀邊框,其效果取決于border-color的值送淆。

? ? ? ? ⑧ inset  定義3D內(nèi)容凹陷效果税产,其效果取決于border-color的值。

? ? ? ? ⑨ outset  定義3D內(nèi)容凸出效果偷崩,其效果取決于border-color的值辟拷。

? ? 3. border-color 邊框顏色,設(shè)置邊框的顏色阐斜,屬性值為顏色名或者顏色值衫冻,類似于padding四值法。

* 根據(jù)邊框的方向劃分:

? ? 1. 上邊框:border-top

? ? 2. 右邊框:border-right

? ? 3. 下邊框:border-bottom

? ? 4. 左邊框:border-left


每一個單一方向的屬性都必須與復(fù)合屬性border一致谒出,設(shè)置三個屬性值:boder-top: 10px solid #f00

根據(jù)方向和類型可以進一步劃分為單一屬性寫法:border-方向-類型隅俘。細分時必須要先劃分方向,再寫類型劃分笤喳,否則屬性名錯誤礼患。

##### margin:外邊距

* 作用:設(shè)置的是盒子與盒子之間的距離愉舔。但是不能渲染背景捏鱼。

* 屬性值:px像素值柔袁。

外邊距的設(shè)置方式與內(nèi)邊距padding是一樣的

#### 盒模型擴展應(yīng)用

##### 清除默認樣式

* 大部分的標簽都有一個瀏覽器的默認樣式,會對布局造成一些影響捣卤。為了避免默認樣式對整體布局效果造成影響,一定要清除默認樣式八孝。

* 盒模型屬性中內(nèi)外邊距:大部分容器級都有默認邊距董朝,要么用標簽選擇器的并集方式,要么通配符清除干跛。

* <ul> 和<ol>兩種列表有默認的列表前綴:清除list-style屬性子姜。

* <a>標簽的默認樣式,順帶設(shè)置頁面中常用的a的公共樣式:設(shè)置color和text-decoration楼入。

* 清除默認加粗效果:設(shè)置font-weight:normal

##### 高度height應(yīng)用

* 根據(jù)不同的需求哥捕,高度屬性可以設(shè)置也可以不設(shè)置。

* 如果設(shè)置了高度:盒子占有的高度位置就確定死了嘉熊,后面的同級元素就會緊挨著加載遥赚。

* 如果不設(shè)置高度:會根據(jù)標簽內(nèi)部內(nèi)容高度自動撐開。

* 以<div>標簽為例阐肤,根據(jù)情況不同選擇是否設(shè)置高度:

? ? 1. 必須設(shè)置高度:因為盒子高度是固定的凫佛,后面同級元素在高度下面加載讲坎。如果自身盒子內(nèi)部內(nèi)容過多會溢出盒子區(qū)域。此時可設(shè)置overflow屬性對溢出的內(nèi)容進行效果顯示愧薛。

? ? 2. 必須不設(shè)置高度:要求盒子的高度必須自適應(yīng)內(nèi)部的高度晨炕,或者設(shè)置height的屬性值是自動的。

* overflow屬性值:

? ? 1. visible  默認值毫炉,可見的瓮栗,溢出部分內(nèi)容會顯示出來。

? ? 2. hidden  溢出部分直接隱藏瞄勾,隱藏超過邊框范圍的內(nèi)容费奸。

? ? 3. scroll  溢出的部分顯示滾動條,可以拖動滾動條看到隱藏部分丰榴,不論有沒有溢出货邓,都顯示有滾動條。

? ? 4. auto  自動的四濒,如果沒有溢出就正常顯示换况,溢出就自動顯示滾動條。

##### 文本水平居中

* 水平居中:text-align屬性盗蟆。

* 屬性值為單詞戈二,centenr left right 這三個屬性值可以顯示文本顯示位置。

##### 文本垂直居中

* 單行文本垂直居中:讓文字行高line-height等于盒子高度height喳资。

* 多行文本垂直居中:讓元素高度自適應(yīng)或者正好等于多行文字的高度觉吭,設(shè)置元素內(nèi)邊距上下值相同。

##### 元素垂直居中

一個元素內(nèi)部嵌套的子元素仆邓,在父元素中居中鲜滩。

垂直居中:與多行文字類似,讓父元素高度自適應(yīng)节值,子元素高度自動撐開父級的高度徙硅,再給父元素設(shè)置相同的上下邊距。

##### 元素水平居中

針對類似<div>樣式上必須獨占一行的盒子搞疗,如果子盒子寬度低于父盒子寬度嗓蘑,可以設(shè)置盒子的margin值,水平方向的值都設(shè)置為auto匿乃。

原因:auto只有在水平方向有作用桩皿,水平方向的margin如果設(shè)置為auto,邊距會自動無限增大幢炸,直到撐滿整個父元素除了子元素寬度之外的剩余區(qū)域泄隔,如果兩個水平方向都是auto,兩邊只有無限大宛徊,就會達到一個平衡梅尤,兩邊距離相同柜思,就會導(dǎo)致盒子居中。

##### 父子盒模型

一般情況下巷燥,一個父元素內(nèi)部可以放一個或者多個子元素赡盘,而且多個子元素要排成一行先是,必須要保證父元素的寬度一定要足夠(不考慮溢出情況)缰揪,需要遵循一個規(guī)律陨享,所有子元素的寬度加在一起不能大于父元素的寬度。

父元素width ≥ 所有子元素widht + padding + border + margin钝腺。

如果不滿足條件:要么多余的子元素掉下來不能在一排抛姑,要么溢出父元素。

##### 盒模型自動內(nèi)減

父子盒模型中艳狐,只有一個子元素定硝,且子元素都是類似于<div>標簽獨占一行的。

不設(shè)置子元素的width屬性毫目,子元素的width屬性值會自動加載父級元素的width蔬啡。

如果同時設(shè)置了子元素水平方向的padding和border、margin镀虐,不需要手動去進行內(nèi)減箱蟆,子元素的with會自動收縮尺寸。

子元素所有的水平方向的位置所有屬性的加和等于父元素的width刮便。

##### margin塌陷現(xiàn)象

margin塌陷現(xiàn)象:在垂直方向如果有兩個元素的外邊距有相遇的空猜,瀏覽器加載的真正的外邊距不是兩個間距的加和,而是兩個邊距中值較大的恨旱,邊距值小的塌陷到邊距值大的值內(nèi)部辈毯。

* 同級元素塌陷:上面的元素有下邊距,下面的元素有上邊距搜贤,兩個邊距相遇漓摩,真正的盒子間距離是較大的那個值。

* 父子元素塌陷:

? ? 1. 父子元素之間也會出現(xiàn)margin塌陷入客,父元素和子元素的都設(shè)置了同方向的margin-top值,兩個屬性之間沒有其他的內(nèi)容進行隔離腿椎,導(dǎo)致兩個屬性相遇桌硫,會發(fā)生margin塌陷。

? ? 2. 本身父元素與上一個元素的距離是0啃炸,子元素如果設(shè)置了垂直方向的上邊距铆隘,會帶著父元素一起掉下來。

* 解決margin塌陷問題:

? ? 1. 同級元素:如果兩個元素垂直方向有間距南用,只需要設(shè)置一個元素膀钠,不要進行拆分掏湾。

? ? 2. 父子元素:讓兩個邊距不要相遇,中間可以使用父元素border或者padding將邊距分隔開肿嘲;更加常用的方法融击,父子盒模型之間的距離就不要用兒子的margin去踹出來,而是父級的padding擠出來雳窟。

另外尊浪,水平方向的margin沒有塌陷現(xiàn)象。

#### 標準文檔流

##### 微觀現(xiàn)象

* 空白折疊現(xiàn)象封救。

* 文字類的元素如果排在一行會出現(xiàn)一種高低不齊拇涤、底邊對齊效果。

* 自動換行誉结,元素內(nèi)一行內(nèi)容寫滿元素的width時會自動進行換行鹅士。

##### 元素等級

* 在標準流中,大部分的元素是區(qū)分等級的惩坑,習(xí)慣將元素劃分為幾種常見的加載級別:塊級元素掉盅、行內(nèi)元素、行內(nèi)塊元素等旭贬。

* 塊級元素:大部分容器級標簽包括p標簽都是塊級元素怔接,比如<div>、<h1>等稀轨。

? ? a. 塊級元素可以設(shè)置寬高扼脐,在瀏覽器中正常加載。

? ? b. 塊級元素必須獨占一行奋刽,不能與其他任何標簽并排一行瓦侮。

? ? c. 塊級元素如果不設(shè)置寬度,會自動撐滿父級的width區(qū)域佣谐,高度不設(shè)置肚吏,會被內(nèi)容自動撐開高度。

* 行內(nèi)元素:大部分的文本級標簽狭魂,比如<span>罚攀、<a>、<b>等雌澄。

? ? a. 行內(nèi)元素不能正常加載寬度和高度屬性斋泄,其他的盒模型屬性雖然能設(shè)置,但是容易出現(xiàn)家在問題镐牺。

? ? b. 行內(nèi)元素可以與其他的行內(nèi)或者行內(nèi)塊元素并排一行顯示炫掐。

? ? c. 行內(nèi)元素不論是否設(shè)置寬高,寬度和高度都只能被內(nèi)容自動撐開睬涧。

* 行內(nèi)塊元素:比如<img>募胃、<input>等旗唁。

? ? a. 行內(nèi)塊元素可以設(shè)置高度和寬度。

? ? b. 行內(nèi)塊元素可以設(shè)置其他的行內(nèi)或者行內(nèi)塊并排一行顯示痹束。

? ? c. 行內(nèi)塊元素如果不設(shè)置寬高检疫,要么以原始尺寸加載要么被內(nèi)容自動撐開。

? ? d. 行內(nèi)塊依舊就有標準流的微觀性質(zhì)参袱,例如空白折疊現(xiàn)象电谣。


#### CSS顯示模式

##### 顯示模式 display

標準流中的元素有自己默認的瀏覽器加載模式,但是加載模式不是一成不變的抹蚀,后期可以通過display屬性更改一個標簽的顯示模式剿牺。

* 屬性值:根據(jù)屬性值不同,可以加載對應(yīng)元素等級的顯示模式环壤。

? ? 1. block  表示元素要以塊級元素模式加載晒来,具備塊級特點。

? ? 2. inline  表示元素以行內(nèi)元素模式加載郑现,具備行內(nèi)特點湃崩。

? ? 3. inline-block  表示標簽以行內(nèi)模塊加載,具備行內(nèi)塊特點接箫。

? ? 4. none  表示標簽及內(nèi)部內(nèi)容自動隱藏攒读,讓出原有標準流的位置。


##### 脫離標準流

display屬性更改的顯示模式并沒有改變標準流本質(zhì)性質(zhì)辛友,頁面還是只能從上而下加載薄扁,存? 在空白折疊等微觀性質(zhì)。要想實現(xiàn)更多的界面布局效果需要脫離標準流的限制废累。

標簽元素脫離標準流的方法包括:浮動邓梅、絕對定位、固定定位邑滨。

##### 浮動定義

* 作用:讓元素脫離標準流日缨,同一級的浮動的元素可以并排在一排顯示。

* 屬性名:float掖看。

*? 屬性值:

? ? 1. left  左浮動

? ? 2. right  右浮動

##### 浮動性質(zhì)

* 標準文檔流的特點是區(qū)分行塊匣距,浮動的元素脫離了標準流的顯示,具備行塊二象性哎壳,浮動的元素可以設(shè)置寬高毅待,還可以并排成一行,而且不會有空白折疊現(xiàn)象耳峦,如果元素不設(shè)置寬高,可以被元素內(nèi)容自動撐高焕毫。

* 浮動的元素依次貼邊蹲坷,浮動方向設(shè)置不同驶乾,進行布局時,加載位置方向不同循签。以left為例级乐,如果父元素寬度足夠,所有子元素會按照html元素書寫順序一次向左進行貼邊县匠。如果父元素的寬度不夠风科,那么接下來的元素會繼續(xù)在下面一次貼邊。

* 浮動的元素沒有margin塌陷乞旦,margin塌陷現(xiàn)象是出現(xiàn)在標準流中的贼穆,浮動元素已經(jīng)脫離標準流,不再具有margin塌陷現(xiàn)象兰粉。

* 浮動的元素讓出標準流位置故痊,元素浮動之后,脫離了標準流玖姑,會將原來占有的 標準流的位置讓給后面的同級元素,浮動的元素會壓在后面的標準流元素的上面愕秫,造成壓蓋效果。

* 字圍現(xiàn)象焰络,統(tǒng)計元素中前面的元素浮動戴甩,后面的元素不浮動,不浮動的元素內(nèi)部還有文字闪彼,文字不會被蓋住甜孤,圍繞這個浮動元素進行加載。

利用浮動的這個依次貼邊性質(zhì)备蚓,可以完成多種網(wǎng)頁布局效果课蔬,例如:平均分布表格效果,導(dǎo)航欄效果郊尝,常見的電商或者企業(yè)網(wǎng)站布局二跋。

##### 浮動問題

* 標準流中的元素,不設(shè)置高度的情況下流昏,會被內(nèi)部的標準流元素自動撐高扎即,如果內(nèi)部的子元素進行了浮動,浮動的子元素是無法撐高標準流的父親元素况凉。

* 父元素沒有高度谚鄙,會影響后面的標準流位置,如果浮動的子元素足夠高時刁绒,有可能會影響到后面浮動元素的貼邊闷营。

##### 清除浮動一:height

給標準流的父元素強制給一個合適的高度。

* 解決:父元素有了高度,前面的浮動不能影響后面元素的標準流位置和貼邊傻盟。

* 問題:父元素高度不是自適應(yīng)速蕊,一旦子元素的高度變化,問題會再次出現(xiàn)娘赴。

##### 清除浮動二:clear屬性

* 作用:清除標簽元素自身受到的前面的浮動元素的影響规哲。

* 屬性值:

? ? 1.? left  清除前面左浮動帶來的影響。

? ? 2.? right  清除前面右浮動帶來的影響诽表。

? ? 3.? both  清除前面所有浮動帶來的影響唉锌。

* clear: both;

* 解決:浮動元素影響后面的元素標準流位置和貼邊。

* 問題:父元素不能高度自適應(yīng)竿奏,兩個父元素之間如果有margin效果不正確袄简。

給標準流父元素添加clear屬性,父元素不受前面浮動影響议双,不會再占有浮動讓出的位置痘番。

##### 清除浮動三:隔墻法

###### 外墻法

* 外墻法:在兩個大的父盒子之間,添加一個空的<div>標簽平痰,標簽上帶有clear:both屬性汞舱。

* 解決:浮動影響后面元素標準流位置和貼邊,模擬父元素之間的距離宗雇。

* 問題:父元素沒有高度自適應(yīng)昂芜。

###### 內(nèi)墻法

* 內(nèi)墻法:在父元素的最后面添加一個空的<div>標簽,標簽上帶有clear:both屬性赔蒲。

* 解決:父元素高度自適應(yīng)泌神,浮動影響后面的元素位置和貼邊。

* 缺點:浮動是css樣式屬性帶來的問題舞虱,內(nèi)墻法使用html結(jié)構(gòu)去輔助解決問題欢际,如果頁面中浮動元素很多,需要添加多個沒有語義的空標簽矾兜,造成html結(jié)構(gòu)的冗余损趋。

##### 清除浮動四:偽類

本質(zhì)是使用偽類方法利用css代碼書寫一段內(nèi)墻。

* 偽類選擇器:通過選中的標簽添加偽類椅寺,去選中標簽的某個狀態(tài)或者位置浑槽。

* :after 這個偽類表示選中的是某個標簽內(nèi)部的最后的位置。

* 書寫方法:前面必須加普通的選擇器返帕,后面連續(xù)書寫偽類名稱桐玻。

* 將偽類添加給一個選中父盒子的選擇器后面,一般要給清除浮動的父盒子設(shè)置一個clearfix的類名荆萤。

注意::after中必須要添加content屬性镊靴,content屬性設(shè)置為空就可,如果不設(shè)置為空,那么就要將:after 添加一個visibility:hidden偏竟;屬性算行,高度設(shè)置為0;

##### 溢出隱藏

* 給內(nèi)部有浮動元素的父元素添加溢出隱藏overflow:hidden; 屬性苫耸,可以解決浮動的所有問題。

* 高度自適應(yīng)原因:一個元素沒有設(shè)置高度儡陨,同時設(shè)置了溢出隱藏褪子,瀏覽器在加載盒子尺寸時,遇到溢出隱藏瀏覽器會強制去檢索內(nèi)部的子元素的高度骗村,不論子元素是標準流還是浮動嫌褪,都會將最高的高度作為父盒子高度去加載。

* 浮動影響后面的元素:父元素有了高度之后胚股,可以管理內(nèi)部所有的浮動元素笼痛,不會延伸到后面標簽中影響貼邊。

###### 如果父元素高度是固定的琅拌,建議使用height屬性解決缨伊,如果不是自適應(yīng)的,建議使用overflow屬性解決浮動問題进宝。

#### <a>標簽的四個偽類選擇器

##### 偽類

* 偽類和類之間有一定的相似之處刻坊,也存在明顯的區(qū)別。

* 普通的類:必須給標簽設(shè)置對應(yīng)的class屬性值党晋,才能選中標簽谭胚,而且類選擇器后面添加的屬性,會立即加載到瀏覽器之上未玻。

* 偽類:不需要給標簽添加任何屬性灾而,偽類名都是語法提前規(guī)定好的,書寫時偽類必須搭配其他選擇器使用扳剿,偽類選擇器后面添加的樣式不一定會立即加載到瀏覽器之上旁趟,只有用戶出發(fā)了對應(yīng)的行為,偽類的樣式才會立即加載舞终。

* 偽類和偽元素的區(qū)別:

? ? * 偽類:是添加在一個具體的已經(jīng)有了的元素之上的轻庆,選中的是元素的某種狀態(tài),元素又可能因為狀態(tài)的改變導(dǎo)致偽類選中的內(nèi)容會動態(tài)發(fā)生變化敛劝。類似于偷偷的給元素添加一個class類余爆。在DOM中并不會真的找到這個類,所以叫偽類夸盟。偽類的權(quán)重與類選擇器一樣蛾方。

? ? * 偽元素:在DOM中新生成了一個元素,選中的是這個新元素,類似于標簽選擇器的效果桩砰,在DOM中無法選中這個新元素拓春,偽元素的權(quán)重與標簽選擇器一樣。

##### <a>標簽的偽類

* <a> 標簽可以根據(jù)用戶行為不同劃分為四種狀態(tài)亚隅,通過對<a>標簽的偽類可以將四種狀態(tài)選中設(shè)置為不同的樣式效果硼莽,用戶觸發(fā)對應(yīng)行為,就可以加載對應(yīng)的樣式煮纵。

* <a>標簽的四種偽類:

? ? 1. a:link  訪問前狀態(tài)

? ? 2. a:visited  訪問后狀態(tài)

? ? 3. a:hover  鼠標懸浮時狀態(tài)

? ? 4. a:active  鼠標點擊狀態(tài)

* <a>標簽的偽類書寫順序:

? ? * <a>標簽上可能會同時出發(fā)2到3個狀態(tài),每個狀態(tài)的屬性都會進行加載懂鸵,相同的屬性之間會發(fā)生疊層。

? ? * 偽類的權(quán)重是相同的行疏,只能根據(jù)書寫順序匆光,后寫的層疊先寫的。

? ? * 為了讓每個偽類的狀態(tài)正常進行加載酿联,書寫順序必須是:訪問前l(fā)ink终息,訪問后visited,鼠標懸浮hover贞让,鼠標點擊active周崭。

##### <a>標簽的偽類實際應(yīng)用

一般會將訪問前和訪問后狀態(tài)設(shè)置為一樣的效果,保證了頁面的統(tǒng)一性喳张,可以選擇性的設(shè)置鼠標懸浮時和鼠標點擊狀態(tài)休傍。

<a>標簽任何普通的選擇器,可以同時選中四種狀態(tài)蹲姐,可以將四種狀態(tài)設(shè)置為相同的樣式磨取,屬性可以設(shè)置所有的<a>標簽?zāi)J顯示樣式的屬性,包括盒模型柴墩、文字等忙厌。

注意:其他標簽也可以設(shè)置:hover偽類狀態(tài)。

#### CSS背景屬性

CSS中通過background屬性來設(shè)置背景江咳,它是一個綜合屬性逢净,可以拆分成多個單一屬性。

##### background-color:背景顏色

* 作用:在盒子區(qū)域添加背景顏色的修飾歼指。

* 加載區(qū)域:在border以及內(nèi)加載背景顏色爹土。

* 屬性值:顏色名,顏色值踩身。

##### background-image:背景圖片

* 作用:給盒子添加圖片的背景修飾胀茵。

* 加載區(qū)域:默認的加載到邊框及以內(nèi)部分,后期如果圖片不重復(fù)加載挟阻,加載從border以內(nèi)開始琼娘。

* 屬性值:url(圖片路徑) eg: background-image: url(images/meng.jpg)

* url:uniform resource locator峭弟,統(tǒng)一資源定位符,小括號內(nèi)部書寫查找圖片的路徑脱拼。

背景圖和背景顏色可以同時設(shè)置瞒瘸,背景圖會壓蓋背景顏色,沒有背景圖的區(qū)域會顯示背景顏色熄浓。

##### background-repeat:背景重復(fù)

* 作用:設(shè)置添加的背景圖是否在盒子中重復(fù)進行加載情臭。

* 屬性值:

? ? 1. repeat  重復(fù),默認值赌蔑,表示會使用背景圖片重復(fù)加載填滿整個盒子背景區(qū)域谎柄。

? ? 2. no-repeat  不重復(fù),不論背景圖是否大于盒子范圍惯雳,都只加載一次。

? ? 3. repeat-x  水平重復(fù)鸿摇,使用背景圖片水平重復(fù)加載鋪滿第一行石景,垂直方向不重復(fù)。

? ? 4. repeat-y  垂直重復(fù)拙吉,使用背景圖片垂直重復(fù)加載鋪滿第一列潮孽,水平方向不重復(fù)。

##### background-position:背景位置

* 作用:主要用于設(shè)置不重復(fù)的圖片在北京區(qū)域的加載開始位置筷黔。

* 屬性值:分為三種寫法往史,單詞表示法,像素表示法佛舱,百分比表示法椎例。不論哪種寫法,屬性值都有兩個请祖,值之間用空格分離订歪。

* 單詞表示法:

? ? * 水平方向可選單詞:left、center肆捕、right

? ? * 垂直方向可選單詞:top刷晋、center、bottom

* 第一個屬性值:表示背景圖片在水平方向的位置慎陵。

* 第二個屬性值:表示背景圖片在垂直方向的位置眼虱。

* 單詞表示圖片與盒子背景區(qū)域進行對應(yīng)方向的對齊。

頂點的坐標原點是左上角席纽。

##### background-attachment:背景附著

* 設(shè)置的是背景圖片是否要隨著頁面或者盒子的滾動而滾動捏悬。

* 屬性值:

? ? 1. scroll  滾動的, 表示背景圖片與盒子保持相對位置不變润梯,隨著頁面的滾動而滾走邮破。

? ? 2. fixed  固定的诈豌,背景圖的定位參考點從盒子border以內(nèi)的左上頂點變成瀏覽器的左上角的頂點。頁面滾動時抒和,背景圖固定在瀏覽器窗口的某個位置矫渔,不會隨著頁面滾動而滾走。

##### background綜合寫法

background屬性可以將五個單一屬性的值進行合寫摧莽。

屬性值:可以有1-5個屬性值庙洼,值之間用空格進行分隔,背景定位的兩個屬性值算作一個屬性值镊辕,不能被分開油够,也不能顛倒順序,五個屬性值之間可以互換位置征懈。

eg:

```

background: {url(image/bg.jpg) no-repeat center top fixed #f00}

```

注意:如果屬性值沒有設(shè)置完全石咬,其他沒有設(shè)置的單一屬性會按照默認值加載。

如果想去層疊綜合屬性中的一部分卖哎,其他的屬性保持不變鬼悠,最好使用單一屬性寫法進行層疊。

##### 背景半透明

css3支持背景半透明的寫法亏娜,顏色值增加了一種rgba模式焕窝。

* rgba模式:在rgb基礎(chǔ)上增加了一個不透明度的設(shè)置,不透明度alpha取值范圍在0-1之間维贺,0表示完全透明它掂,1表示完全不透明,0.5表示半透明溯泣。

* 書寫方式:rgba(紅色,綠色,藍色,不透明度)

注意:背景半透明是指盒子背景半透明虐秋,盒子里面的內(nèi)容不受影響,同樣垃沦,可以給文字和邊框透明熟妓,都是rgba的格式來寫。

##### background-size:背景縮放

通過background-size 設(shè)置背景圖片的尺寸栏尚,就像我們設(shè)置<img>的尺寸一樣起愈,在移動web開發(fā)中做屏幕適配應(yīng)用非常廣泛。

* 屬性值:

? ? 1. px值  1-2像素值译仗,只設(shè)置1個值抬虽,垂直方向等比例拉伸,設(shè)置兩個值纵菌,按照設(shè)置值加載阐污。

? ? 2. 百分比  同像素值設(shè)置方法相同,設(shè)置百分比時咱圆,數(shù)值參照盒子的寬笛辟、高屬性功氨。

? ? 3. cover  自動調(diào)整縮放比例,把背景圖像擴展在足夠大手幢,使背景圖片完全覆蓋背景區(qū)域捷凄,如有溢出部分則會被隱藏。

? ? 4. contain  自動調(diào)整所房里围来,把圖像擴展至最大尺寸跺涤,保證圖片始終完整顯示在背景區(qū)域,但是有可能不會填滿背景區(qū)域监透。

##### 多背景

css中規(guī)定桶错,一個盒子上,可以添加多個背景圖片胀蛮。

background-image的屬性值書寫時院刁,以逗號分隔多背景的URL路徑地址。

注意:背景加載時粪狼,先寫的背景壓蓋住后面的背景圖片退腥。

```

background-image:url(image/bg_1.jpg),url(image/bg_2.jpg);

```

#### position:定位屬性

設(shè)置定位的元素,它需要根據(jù)某個參考元素發(fā)生位置的偏移鸳玩。

* 屬性值:

? ? 1. relative  相對定位

? ? 2. absolute  絕對定位

? ? 3. fixed  固定定位

* 偏移量屬性:定位的元素要想發(fā)生位置的移動,必須搭配偏移量屬性進行設(shè)置演闭。

? ? 1. 水平方向:left不跟、right。

? ? 2. 垂直方向:top米碰、bottom窝革。

* 屬性值:常用px為單位的數(shù)值,或者百分比吕座。

##### 相對定位

* 屬性值:relative,相對的意思虐译。

* 參考元素:標簽加載的原始位置。

* 性質(zhì):相對定位的元素不脫離標簽的原始狀態(tài)(標準流吴趴、浮動)漆诽,不會讓出原來的位置。

在元素顯示效果上锣枝,原位留坑厢拭,形影分離。

* 注意事項:

? ? 1. 偏移量屬性的值是區(qū)分正負的撇叁。

? ? 2. 同一個方向供鸠,不能設(shè)置兩個偏移量屬性,如果水平方向設(shè)置了left和right屬性陨闹,只會加載left屬性楞捂。垂直方向只加載top屬性薄坏。

? ? 3. 由于相對定位的參考元素是自身,left的正值等于right的負值寨闹,top的正值等價于bottom的負值胶坠。

* 實際應(yīng)用:

? ? 1. 由于相對定位元素比較穩(wěn)定,不會隨意讓出位置鼻忠,可以將相對定位的元素作為后期絕對定位的參考元素撑教,就是所說的子絕父相情況沙郭。

? ? 2. 相對定位比較穩(wěn)定,可以在占有原有位置的情況下,對加載效果區(qū)域進行位置調(diào)整孵稽,進行微調(diào)設(shè)置∥痰樱或者對文字進行微調(diào)形庭。

##### 絕對定位

* 屬性值:absolute,絕對的意思埋酬。

* 參考元素:參考得到是距離最近的有定位的祖先元素哨啃,如果祖先都沒有定位,參考<body>写妥。

* 性質(zhì):絕對定位的元素脫離標準流拳球,會讓出標準流位置,可以設(shè)置寬高珍特,也可以隨時定義未知祝峻,絕對定位的元素不設(shè)置寬高只能被內(nèi)容撐開。

* 注意事項:

? ? 1. 絕對定位的參考元素是不固定的扎筒,不同的參考元素以及不同的偏移量組合莱找,會導(dǎo)致絕對定位元素的參考點不同,具體位置效果不同嗜桌。

? ? 2. 在絕對定位中奥溺,由于參考點不同,left正值不再等價于right的負值骨宠。

* 絕對定位參考點:

? ? 1. 以<body>為參考元素時浮定,參考點的確定與偏移量方向相同。

? ? ? ? ①. 如果有top參與的定位层亿,參考點就是<body>頁面的左上頂點和右上頂點壶唤。自身的對比點是盒子的所有盒模型屬性最外面的左上角或者右上角。

? ? ? ? ②. 如果有bottom參與的絕對定位棕所,參考點是<body>頁面首屏的左下頂點或者右下頂點闸盔。對比點是盒子的所有的盒模型屬性最外面的左下角或者右下角。

? ? 2. 祖先級為參考元素琳省,如果祖先級中有定位的元素迎吵,就不會去參考<body>躲撰。根據(jù)絕對定位的參考元素的定位類型不同,有三種方式:子絕父相击费、子絕父絕拢蛋、子絕父固。由于相對定位的祖先位置更穩(wěn)定蔫巩,大多使用子絕父相的情況谆棱。


##### 固定位置

* 屬性值:fixed,固定的意思圆仔。

* 參考元素:瀏覽器窗口垃瞧。

* 參考點:瀏覽器窗口的四個頂點。跟偏移量組合方向有關(guān)坪郭。

由于瀏覽器窗口的四個頂點的位置不會發(fā)生變化个从,會導(dǎo)致固定定位的元素會始終顯示定位位置。

* 性質(zhì):固定定位的元素脫離標準流歪沃,讓出標準流位置嗦锐,可以設(shè)置寬高,根據(jù)偏移量屬性可以任意設(shè)置在瀏覽器窗口的位置沪曙。固定定位的元素會始終顯示在瀏覽器窗口上奕污。

##### 定位的應(yīng)用

###### 壓蓋效果

所有的定位類型都可以實現(xiàn)壓蓋效果。

由于絕對定位的元素脫標液走,不占標準流位置碳默。壓蓋效果更徹底,實際工作中育灸,常見的是絕對定位支座的壓蓋腻窒。

###### 居中

定位的元素昵宇,如果想在參考元素中居中顯示磅崭,有自己的居中方法:

1. 在居中的方向使用一個偏移量屬性,例如left瓦哎,設(shè)置屬性值為50%砸喻。導(dǎo)致圖片的左頂點移動到參考元素的中心位置。百分比形式的屬性值蒋譬,參考的是參考元素的border以內(nèi)的寬度和高度割岛。

2. 給絕對定位的子盒子設(shè)置一個同方向的margin,例如margin-let犯助,屬性值為負的自身寬度的一半癣漆。

注意:不論子盒子的寬度是否比參考元素更寬,都可以使用以上方法進行居中設(shè)置剂买。

##### 拓展應(yīng)用

1. 解決標準流中惠爽,寬的子盒子在窄的父盒子中的居中癌蓖,可以設(shè)置大的子盒子相對定位,利用相對定位居中的方法進行居中婚肆。

2. 浮動的元素居中租副,在不改變原始浮動狀態(tài)情況下,可以利用相對居中方法较性。

實際使用定位時用僧,可能出現(xiàn)多個定位的元素加載到同一個位置的情況,這時候壓蓋的順序是可以控制的赞咙。

* 默認壓蓋順序:定位的元素不區(qū)分定位類型责循,都回去壓蓋標準流或者浮動的元素。如果都是定位的元素人弓,在HTML中后寫的定位壓蓋先寫的定位沼死。

* 自定義壓蓋順序:如果想更改定位的元素的壓蓋順序,可以設(shè)置一個z-index屬性崔赌。屬性值為數(shù)字意蛀。

* 自定義壓蓋順序的注意事項:

? ? 1. 屬性值大的會壓蓋屬性值曉得,設(shè)置z-index屬性的會壓蓋沒有設(shè)置的健芭。

? ? 2. 如果屬性值相同县钥,比較HTML書寫順序,后寫的會壓蓋先寫的慈迈。

? ? 3. z-index 屬性只能設(shè)置給定位的元素才會生效若贮,如果給沒有定位的元素設(shè)置,不會生效痒留。

? ? 4. 父子盒模型中谴麦,如果父子盒子都進行了定位,與其他的父子級有壓蓋的部分:

? ? ① 父級盒子:如果不設(shè)置z-index伸头,后寫的壓蓋先寫的匾效,如果設(shè)置了z-index,值大的壓蓋值小的恤磷。

? ? ② 子級盒子:如果父級沒有設(shè)置z-index屬性面哼,子級z-index大的會壓蓋小的,如果父級設(shè)置了z-index值扫步,無論子級值是多少魔策,都是父級的值大的子級壓蓋父級值小的子級,俗稱從父效應(yīng)河胎。


* * *

### HTML5新增語義化標簽

##### 新增語義化標簽

* <header>:頭部標簽

* <nav>:導(dǎo)航標簽

* <main>:主體標簽

* <article>:獨立的內(nèi)容標簽

* <section>:區(qū)段標簽

* <aside>:側(cè)邊欄標簽

* <footer>:尾部標簽

#### 多媒體標簽

多媒體標簽包含兩個闯袒,具體如下:

* 音頻:<audio>

* 視頻:<video>

使用他們可以很方便的在頁面中嵌入音頻和視頻,而不是使用落后的flash和其他瀏覽器插件。

##### <audio>音頻標簽

html在不適用插件的情況下也可以原生的支持音頻格式文件的播放政敢,當然支持格式是有限的原茅。

| 格式 |MIME-type? | IE9 | Firefox3.5 | opera10.5 | Chrome3.0 | Safari3.0 |

| --- | --- | --- | --- | --- | --- | --- |

| Ogg |audio/mpeg? |? |√? | √ | √ |? |

| MP3 | audio/ogg | √ |? |? | √ | √ |

|Wav? | audio/wav |? | √ | √ |? | √ |

###### <audio>音頻標簽常見屬性

* 屬性名和屬性值:

1. autoplay  值為autoplay,如果出現(xiàn)該屬性堕仔,則音頻在就緒后馬上播放擂橘。

2. controls  值為controls,如果出現(xiàn)該屬性摩骨,則向用戶顯示控件通贞,比如播放按鈕。

3. loop  值為loop恼五,如果出現(xiàn)該屬性昌罩,則每當音頻結(jié)束時重新開始播放。

4. preload  值為preload灾馒,如果出現(xiàn)該屬性茎用,則音頻在頁面加載時進行加載,并預(yù)備播放睬罗,如果使用"autoplay"轨功,則忽略該屬性。

5. src  值為url容达,要播放的音頻的URL古涧。

* 語法格式

```

<audio src ="文件地址" controls = "controls"></audio>

```

* 兼容寫法

```

<audio controls = "controls">

? ? <source src="happy.mp3" type="audio/mpeg">

? ? <source src="happy.ogg" type="audio/ogg">

? ? ? ? 您的瀏覽器暫不支持audio標簽。

</audio>

```

##### <video>視頻標簽

html在不適用插件的情況下也可以原生的支持視頻格式文件的播放花盐,當然支持格式是有限的羡滑。

| 格式 |MIME-type? | IE | Firefox | opera | Chrome | Safari |

| --- | --- | --- | --- | --- | --- | --- |

| Ogg |video/ogg? |×? | 3.5+ | 10.5+ | 5.0+ | × |

| MP4 | video/mp4 | 9.0+ | × | × | 5.0+ | 3.0+ |

|Wav? | audio/wav | × | 4.0+ | 10.6+ | 6.0+ | × |

###### <video>視頻標簽常見屬性

* 屬性名和屬性值:

1. autoplay  值為autoplay,視頻就緒自動播放(谷歌瀏覽器需要添加muted來解決自動播放問題)

2. controls  值為controls算芯,如果出現(xiàn)該屬性柒昏,則向用戶顯示控件,比如播放按鈕熙揍。

3. loop  值為loop职祷,如果出現(xiàn)該屬性,則每當視頻結(jié)束時重新開始播放诈嘿。

4. preload  值有兩個堪旧,為auto時預(yù)先加載視頻削葱,為none時不預(yù)先加載視頻奖亚,如果使用"autoplay",則忽略該屬性析砸。

5. src  值為url昔字,要播放的視頻的URL。

6. width  值為px像素值,設(shè)置播放器寬度作郭。

7. height  值為px像素值陨囊,設(shè)置播放器高度。

8. poster  值為imgurl夹攒,加載等待的畫面圖片蜘醋。

9. muted  值為muted,靜音播放

* 語法格式:

```

<video src ="文件地址" controls = "controls"></video>

```

* 兼容寫法

```

<video controls = "controls" width = "300">

? ? <source src="move.ogg" type="video/ogg">

? ? <source src="move.mp4" type="video/mp4">

? ? ? ? 您的瀏覽器暫不支持video標簽咏尝。

</video>

```

#### HTML5新增表單標簽和屬性

##### H5新增<input>表單類型

| 屬性值 | 描述 |

| --- | --- |

| type = "email" | 限制用戶輸入必須為email類型 |

| type = "url"? ? | 限制用戶輸入必須為url類型 |

| type = "date" | 限制用戶輸入必須為日期類型 |

| type = "time" | 限制用戶輸入必須為時間類型 |

| type = "month" | 限制用戶輸入必須為月類型 |

| type = "week" | 限制用戶輸入必須為周類型 |

| type = "number" | 限制用戶輸入必須為數(shù)字類型 |

| type = "range" | 滑動條 |

| type = "tel" | 手機號碼 |

| type = "search" | 搜索框 |

| type = "color" | 顏色 |

##### 新增<datalist>

* <datalist>標簽規(guī)定了<input>元素可能的選項列表

* <datalsit>元素包含了一組<option>元素压语,這些元素表示可能定義可選值,在<input>元素輸入過程中编检,會自動響應(yīng)<option>元素的值胎食。

* 綁定<input>標簽必須設(shè)置list屬性,屬性值等于<datalist>的id的屬性值允懂。

![15860c6591753db9c4148cdbb9ff5836.png](en-resource://database/694:0)

##### 新增表單屬性

| 屬性 | 值 | 描述 |

| --- | --- | --- |

| required | required | 表單擁有該屬性表示其內(nèi)容不能為空 |

| placeholder | 提示文本 | 表單的提示信息厕怜,存在默認值將不提示 |

| autofocus | autofocus | 自動聚焦屬性,頁面加載完成自動聚焦到指定表單蕾总,一般頁面中放一個 |

| autocomplete | off/on | 當用戶在字段開始鍵入時粥航,瀏覽器基于以前輸入的值顯示處在字段中填寫的選項,默認為打開生百。需要放在表單內(nèi)添加name躁锡,同時成功提交 |

| multiple | multiple | 可以選擇多文件提交 |

### CSS3

#### CSS3新增選擇器

##### 子級選擇器

* 作用:子級選擇器用于選取帶有特定父元素的元素。

* 書寫語法:element > element2

* 注意:如果element2元素不是父元素element1的直接子元素置侍,則不會被選擇映之。

* > 符號之前書寫父級的選擇器,> 符號之后寫子級選擇器蜡坊,必須滿足父子級關(guān)系才能選中標簽杠输。

##### 兄弟選擇器

###### 相鄰兄弟選擇器

相鄰兄弟選擇器用于選擇緊接在另一個元素后面的兄弟元素,而且二者有相同的父元素秕衙。

* 書寫語法:E1+E2

* 注意:

? ? a. 選中的是緊跟在E1之后的同級元素E2蠢甲。

? ? b. 只能選中緊跟在后面的一個E2元素。

? ? c. 二者有相同的父元素

? ? d. +符號前后可以添加空格書寫据忘。


###### 其他兄弟選擇器

其他兄弟選擇器匹配同一個父元素中在element1后面的所有element2元素

* 書寫語法:element1 ~ element2

* 注意:

? ? a. 選擇element1 之后出現(xiàn)的所有element2鹦牛。

? ? b. 兩種元素必須擁有相同的父元素,但是element2不比直接緊跟隨element1勇吊。

? ? c. ~ 符號前后可以添加空格書寫曼追。


##### 結(jié)構(gòu)偽類選擇器

| 選擇器 | 簡介 |

| --- | --- |

| 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個 |

* nth-child(n)

? ? * n可以是數(shù)字,關(guān)鍵字和公式汉规。

? ? * n如果是數(shù)字礼殊,就是選擇第幾個驹吮。

? ? * 常見的關(guān)鍵詞 even偶數(shù) odd奇數(shù)。

? ? * 如果n是公式晶伦,則從0開始計算碟狞,n從0,1婚陪,2......一直遞增

? ? * 但是第0元素或者超出了元素的個數(shù)會被忽略族沃。

* E:nth-child(n) 和E:nth-of-type(n)的區(qū)別

? ? * E:nth-child(n) 匹配父元素的第n個子元素E,需要同時滿足兩個條件泌参。

? ? * E:nth-of-type(n) 匹配同類型中的第n個同級兄弟元素E竭业,會忽視其他同級的非同類型元素。

##### 偽元素選擇器

* 新增偽元素

| 選擇器 | 描述 |

| --- | --- |

| E::before | 在E元素內(nèi)部的前面插入一個元素 |

| E::after | 在E元素內(nèi)部的湖面插入一個元素 |

| E::first-letter | 選擇到了E容器內(nèi)的第一個字母 |

| E::first-line | 選擇到了E容器內(nèi)的第一行文本 |

* H5寫法和傳統(tǒng)寫法區(qū)別

? ? * 單冒號 E:before

? ? * 雙冒號 E::before

? ? * 瀏覽器對以上寫法都能識別及舍,雙冒號是h5的語法規(guī)范未辆。

* 偽元素的注意事項:

* 偽元素只能給雙標簽添加,不能給單標簽添加锯玛。

* 偽元素的冒號前不能有空格咐柜,如E ::before 這個寫法是錯誤的。

* 偽元素里必須寫上屬性content:"";

* before和after創(chuàng)建一個元素攘残,但是屬于行內(nèi)元素拙友。

* 因為在DOM里面看不見剛才創(chuàng)建的元素,所以我們稱為偽元素歼郭。

##### 屬性選擇器

| 選擇器 | 描述 |

| --- | --- |

| E[att] | 選擇具有att屬性的E元素 |

| E[att="val"] | 選擇具有att屬性且屬性值等于val的E元素 |

| E[att^="val"] | 匹配具有att屬性遗契,且值以val開頭的E元素 |

| E[att$ ="val"] | 匹配具有att屬性,且值以val結(jié)尾的E元素 |

| E[att*="val"] | 匹配具有att屬性病曾,且值中含有val的E元素 |

#### CSS3盒模型

##### box-sizing

CSS3中可以通過box-sizing來指定盒模型牍蜂,這樣我們就可以設(shè)置如何計算一個元素的總寬度和總高度。

* 屬性名:box-sizing

* 屬性值:

? ? * content-box  默認值泰涂,標準盒子模型鲫竞,盒模型是外擴的。width和height只包括內(nèi)容的寬和高逼蒙。在width和height之外繪制的內(nèi)邊距和邊框从绘。

? ? * border-box  怪異模式,盒模型是內(nèi)減的是牢,width和height屬性包括內(nèi)容僵井,內(nèi)邊距和邊框,但不包括外邊距驳棱,為元素指定的任何內(nèi)邊距和邊框都將在已設(shè)定的width和height內(nèi)進行繪制批什。

#### CSS3新增屬性

##### 邊框圓角

* 屬性名:border-radius

* 作用:設(shè)置邊框的圓角。

* 屬性值:可以是像素值蹈胡,或者百分比渊季,百分比參考的是盒子整體寬度、高度罚渐。

* 單一屬性:

? ? * border-top-left-radius: 左上角半徑却汉;

? ? * border-top-right-radius: 右上角半徑;

? ? * border-bottom-right-radius: 右下角半徑;

? ? * border-bottom-left-radius: 左下角半徑荷并。

* 簡寫方法合砂,border-radius相當于四個單一屬性的簡寫方法,類似于padding的寫法源织。

* /的屬性值寫法:border-radius 屬性值中出現(xiàn)了/斜線翩伪,那么/前面可以設(shè)置水平方向四種值的寫法,/后面可以設(shè)置垂直方向的四種值得寫法谈息。

? ? ? ? p{

? ? ? ? ? ? border-radius:50% 20% 40% / 20% 30%;

? ? ? ? }


* 瀏覽器兼容:Internet Explorer8 及以下版本瀏覽器不支持border-radius屬性缘屹,其他瀏覽器都支持。

##### 文字陰影

在css3中侠仇,text-shadow可向文本應(yīng)用陰影轻姿。通過屬性值能夠規(guī)定水平陰影,垂直陰影逻炊,以及陰影的顏色互亮。

| 屬性值 | 描述 |

| --- | --- |

| h-shadow | 必需。水平陰影的位置余素。允許負值豹休。 |

| v-shadow | 必需。垂直陰影的位置桨吊。允許負值威根。? |

| blur | 可選,模糊的距離视乐。 |

| color | 可選医窿。陰影的顏色。 |

* 語法:text-shadow屬性向文本添加陰影炊林,屬性值有2-3個長度值和一個可選的顏色值進行規(guī)定姥卢,省略的長度是0;

? ? ? ? h1 {

? ? ? ? ? ? text-shadow: 3px 4px 4px #F00;

? ? ? ? }


* 多層陰影:屬性也可以想文本添加多個陰影渣聚,逗號分隔多個陰影值独榴。多陰影中,先寫的陰影蓋在后寫的陰影上奕枝。

##### 盒子陰影

在CSS3中棺榔,box-shadow屬性用于對盒子邊框添加陰影。

| 屬性值 | 描述 |

| --- | --- |

| h-shadow | 必需隘道。水平陰影的位置症歇。允許負值郎笆。 |

| v-shadow | 必需。垂直陰影的位置忘晤。允許負值宛蚓。? |

| blur | 可選,模糊的距離设塔。 |

| spread | 可選凄吏。陰影的尺寸。 |

| color | 可選闰蛔。陰影的顏色痕钢。 |

| inset | 可選。將外部陰影改為內(nèi)部陰影 |

* 語法:box-shadow 屬性向盒子添加陰影序六,屬性值有2-4個長度值任连、可選的顏色值以及可選的inset關(guān)鍵詞來規(guī)定,省略的長度是0例诀;

*? 多層陰影:可以向盒子添加多個陰影课梳,逗號分隔多個陰影的屬性值。多陰影中余佃,先寫的陰影壓蓋在后寫的陰影上暮刃。

#### CSS3新增屬性

##### 過渡屬性

* 屬性名:transition

* 作用:在不使用Flash或者javaScript,使用trasition實現(xiàn)補間動畫爆土。并且當前元素狀態(tài)改變的時候椭懊,就會實現(xiàn)過渡的動畫效果

* 語法格式:trasition: 過渡的屬性 過度時間 運動曲線 延時時間;

* 單一屬性寫法

| 屬性 | 描述 |

| --- | --- |

| trasition | 簡寫屬性步势,用于在一個屬性中設(shè)置四個屬性 |

| transition-property | 規(guī)定用于過渡的css屬性的名稱 |

| transition-duration | 定義過渡效果花費的時間氧猬。默認是0s |

| transition-timing-function | 規(guī)定過渡效果的時間曲線。默認是"ease" |

| transition-delay | 規(guī)定過渡效果何時開始坏瘩。默認是0s |

###### transition-property

* none 表示沒有屬性過渡盅抚。

* all 表示所有變化的屬性都過渡。

* 屬性名 使用具體的屬性名倔矾,多個屬性名之間用逗號隔開妄均。

###### transition-duration:過渡時間

* 過渡時間:以s秒為單位。

* 延時時間:以s秒為單位哪自。0s也必須加單位丰包。

###### transition-timing-function 時間曲線

| 屬性值 | 描述 |

| --- | --- |

| linear | 以相同速度開始至結(jié)束的過渡效果 |

| ease | 以慢速開始,然后加速壤巷,最后慢速結(jié)束的過渡效果 |

| ease-in | 以慢速開始的過渡效果 |

| ease-out | 以慢速結(jié)束的過渡效果 |

| ease-in-out | 以慢速開始和結(jié)束的過渡效果 和ease有點類似? |

| cubic-bezier(x1,y1,x2,y2) | 在cubic-bezier函數(shù)中定義自己的值邑彪。x1,x2是0至1之間的數(shù)值,y1,y2取任意值胧华,四個數(shù)值表拉扯點的坐標 |

* 瀏覽器兼容:

? ? * IE10寄症、Firefox宙彪、Chrome以及Opera支持transition屬性。

? ? * Safari需要前綴-webkit-有巧。

? ? * 在IE9以及更早的版本释漆,不支持transition屬性。

#### transform:2D轉(zhuǎn)換

* 屬性名:transform剪决。

* 作用:對元素進行移動灵汪、縮放檀训、旋轉(zhuǎn)柑潦、拉長或拉伸。配合過渡和即將學(xué)習(xí)的動畫知識峻凫,可以取代大量之前只能靠Flash才可以實現(xiàn)的效果渗鬼。

* 屬性值:多種轉(zhuǎn)換方法的屬性值,可以實現(xiàn)不同的效果轉(zhuǎn)換荧琼。

##### translate():位移

transform的屬性值為translate()時譬胎,可以實現(xiàn)位移效果。

| 值 | 描述 |

| --- | --- |

| translate(x,y) | x,y分別為水平和垂直方向位移的距離命锄,可以為px值或者百分比堰乔,區(qū)分正負。 |

| translate(x) | 只有一個數(shù)值脐恩,表示水平方向的位移

##### scale():縮放

transform的屬性值為scale()時镐侯,可以實現(xiàn)元素縮放效果。

| 值 | 描述 |

| --- | --- |

| scale(x,y) | x,y分別為改變元素的寬度和高度的倍數(shù) |

| scale(n) | 表示寬度和高度同時縮放n倍 |

| scaleX(n) | 縮放寬度 |

| scaleY(n) | 縮放高度 |

##### rotate():旋轉(zhuǎn)

transform屬性值設(shè)置為rotate()驶冒,實現(xiàn)元素的旋轉(zhuǎn)苟翻。

* 書寫語法:rotate(數(shù)字deg)

其中,deg為度數(shù)單位骗污,正數(shù)表示順時針旋轉(zhuǎn)崇猫,負數(shù)表示逆時針旋轉(zhuǎn)。

注意:元素旋轉(zhuǎn)后需忿,坐標軸也跟著發(fā)生轉(zhuǎn)變诅炉。因此,多個屬性值同時設(shè)置給transform時屋厘,書寫順序不同導(dǎo)致轉(zhuǎn)換效果有差異汞扎。

##### skew():傾斜

transform屬性值設(shè)置為skew()時,實現(xiàn)元素的傾斜擅这。

* 書寫語法:skew(數(shù)字deg,數(shù)字deg)

兩個屬性值分別表示水平和垂直方向傾斜的角度澈魄,屬性值可以為正,可以為負仲翎,第二個值不寫默認為0痹扇。

##### transform-origin:基準點

* 作用:設(shè)置調(diào)整元素的水平和垂直方向原點的位置铛漓。

| 屬性值 | 描述 |

| --- | --- |

| x | 定義X軸的原點在何處,可能的值為:left鲫构、center浓恶、right、像素值结笨、百分比 |

| y | 定義Y軸的原點在何處包晰,可能的值為:left、center炕吸、right伐憾、像素值、百分比 |

#### 3D轉(zhuǎn)換

transform屬性不知能實現(xiàn)2D轉(zhuǎn)換赫模,也可以制作3D立體轉(zhuǎn)換效果树肃,比普通的x、y軸組成的平面多了一條z軸瀑罗。

##### perspective:透視

* 屬性名:perspective胸嘴。

* 作用:設(shè)置在z軸的視線焦點的觀察位置,從而實現(xiàn)3D查看效果斩祭。

* 屬性值:像素值劣像,數(shù)值越大,觀察點距離z軸原點越遠摧玫,圖形效果越完整且接近原始尺寸耳奕。

* 注意:透視屬性需要設(shè)置給3D變化元素的父級。

##### 3D旋轉(zhuǎn)

| 值 | 描述 |

| --- | --- |

| rotateX(angel) | 定義沿著X軸的3D旋轉(zhuǎn) |

| rotateY(angel) | 定義沿著Y軸的3D旋轉(zhuǎn) |

| rotateZ(angel) | 定義沿著Z軸的3D旋轉(zhuǎn) |

##### 3D位移

| 值 | 描述 |

| --- | --- |

| translateX(x) | 設(shè)置X軸的位移值 |

| translateY(y) | 設(shè)置Y軸的位移值 |

| translateZ(z) | 設(shè)置Z軸的位移值 |

##### transform-style

用于設(shè)置被嵌套的子元素在父元素的3D空間中展示席赂,子元素會保留自己的3D轉(zhuǎn)換坐標吮铭。

* 屬性值:

? ? * flat:所有子元素在2D平面呈現(xiàn)。

? ? * preserve-3d:保留3D空間颅停。

##### 瀏覽器兼容問題

IE10谓晌、Firefox以及Opera支持transform屬性。

Chrome和Safari需要前綴-webkit-癞揉。

IE9 需要前綴 -ms-纸肉。

#### 動畫

css3中提供了自己的動畫制作方法,這可以在許多網(wǎng)頁中取代動畫圖片喊熟、Flash動畫以及JavaScript柏肪。

css3動畫制作分為兩步:創(chuàng)建動畫、綁定動畫芥牌。

##### @keyframes 規(guī)則

@keyframes規(guī)則用于創(chuàng)建動畫烦味。

在@keyframes中規(guī)定某項css樣式,就能創(chuàng)建由從一種樣式逐漸變化為另一種樣式的結(jié)果∶恚可以改變?nèi)我舛嗟臉邮饺我舛嗟拇螖?shù)柏靶。

需要使用百分比來規(guī)定變化發(fā)生的時間,或用關(guān)鍵詞"from"和"to"溃论,等同于0%和100%屎蜓。

* @keyframes書寫方法

? @keyframes 動畫名稱{

? ? ? ? 動畫過程,可以添加任意百分比處的動畫細節(jié)钥勋。


? }

##### animation屬性

需要將@keyframes中創(chuàng)建的動畫綁定到某個選擇炬转,否則不產(chǎn)生動畫效果。

* 語法:

div{

? ? animation:動畫名稱? 過度時間 速度曲線 動畫次數(shù) 延時時間算灸;

}

* 單一屬性列表:

| 屬性 | 描述 |

| --- | --- |

| animation-name | 規(guī)定@keyframes動畫的名稱扼劈。 |

| animation-duration | 規(guī)定動畫完成一個周期所花費的秒或者毫秒,默認是0 |

| animation-timing-function | 規(guī)定動畫的速度曲線乎婿,默認是"ease" |

| animation-delay | 規(guī)定動畫何時開始测僵,默認是0 |

| animation-iteration-count | 規(guī)定動畫播放的次數(shù)街佑,默認是1谢翎,infinite表示無限次 |

##### 瀏覽器兼容

IE10、Firefox以及Opera支持@keyframes規(guī)則和animation屬性沐旨。

Chrome 和Safari 需要前綴 -webkit-森逮。

IE9,以及更早的版本磁携,不支持@keyfames規(guī)則或者animation屬性褒侧。

```

????????.box?{

????????????width:100px;

????????????height:?100px;

????????????margin:100px?100px;

????????????background-color:?yellowgreen;

????????????animation:?move?5s?linear?0s?infinite;

????????}

????????@keyframes?move?{

????????????0%{

????????????????transform:?translate(0,0);

????????????}

????????????25%{

????????????????transform:?translate(500px,0);

????????????}

????????????50%{

????????????????transform:?translate(500px,500px);

????????????}

????????????75%{

????????????????transform:?translate(0,500px);

????????????}

????????????100%{

????????????????transform:?translate(0,0);

????????????}

????????}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谊迄,隨后出現(xiàn)的幾起案子闷供,更是在濱河造成了極大的恐慌,老刑警劉巖统诺,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歪脏,死亡現(xiàn)場離奇詭異,居然都是意外死亡粮呢,警方通過查閱死者的電腦和手機婿失,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啄寡,“玉大人豪硅,你說我怎么就攤上這事⊥ξ铮” “怎么了懒浮?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長识藤。 經(jīng)常有香客問我砚著,道長眯牧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任赖草,我火速辦了婚禮学少,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秧骑。我一直安慰自己版确,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布乎折。 她就那樣靜靜地躺著绒疗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骂澄。 梳的紋絲不亂的頭發(fā)上吓蘑,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音坟冲,去河邊找鬼磨镶。 笑死,一個胖子當著我的面吹牛健提,可吹牛的內(nèi)容都是我干的琳猫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼私痹,長吁一口氣:“原來是場噩夢啊……” “哼脐嫂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起紊遵,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤账千,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后暗膜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匀奏,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年桦山,在試婚紗的時候發(fā)現(xiàn)自己被綠了攒射。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡恒水,死狀恐怖会放,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钉凌,我是刑警寧澤咧最,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響矢沿,放射性物質(zhì)發(fā)生泄漏滥搭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一捣鲸、第九天 我趴在偏房一處隱蔽的房頂上張望瑟匆。 院中可真熱鬧,春花似錦栽惶、人聲如沸愁溜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冕象。三九已至,卻和暖如春汁蝶,著一層夾襖步出監(jiān)牢的瞬間渐扮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工掖棉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留墓律,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓啊片,卻偏偏與公主長得像只锻,于是被迫代替她去往敵國和親玖像。 傳聞我的和親對象是個殘疾皇子紫谷,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355