CSS基礎

一  CSS顯示模式css

 

  1,標籤級別api

  CSS將HTML標籤作了分類:文本級,容器級。瀏覽器

  文本級標籤只能嵌套文字,圖片等信息。經常使用的文本級標籤包含:span,p,em,img等。ide

  容器級標籤能夠嵌套其餘全部標籤。經常使用的包含:div,ul,ol,table等全部結構化語義標籤都是容器級,好比header,footer,nav,section等。函數

  

  2,元素分類佈局

  CSS將全部HTML元素分爲三大類:塊級元素,行類元素,行內塊級元素。學習

  塊級元素:獨佔一行;若是沒有設置寬度,將繼承父元素的寬度;若是設置了寬高,將按照設置值顯示。字體

  行內元素:在一行內共存。不能設置寬高(margin和padding依然可使用)。默認按內容大小顯示。ui

  行內塊級:不會獨佔一行,但能夠設置寬高。url

  CSS對元素的這種分類,咱們稱之爲顯示模式。

  

  3,顯示模式轉換

  CSS使用display屬性設置元素的顯示模式。display屬性有3個值:inline(行內),block(塊級),inline-block(行內塊級)。

 

二  CSS選擇器

  

  1,經常使用選擇器

  a),通配符

    CSS使用(*)星號表示通配符選擇器,選中所全部標籤。

1 *{font-size:14px;}

  b),特別重要

    CSS能夠在屬性值後添加!important強調該屬性,該屬性必定會被應用到HTML元素上,不論是否還設置了其餘樣式。

1 p{color:red !important;}

  c),標籤選擇器

    直接使用HTML標籤名做爲選擇器。

1 p{}/*選中全部p元素*/

  d),類選擇器

    CSS使用(.)點表示類選擇器。

1 .wrap{}/*選中全部class爲wrap的元素*/

  e),id選擇器

    CSS使用(#)井號表示id選擇器。

1 #firstname{}/*選中id爲firstname的元素*/

  f),後代選擇器

    CSS使用( )空格表示後代選擇器,左邊表示父元素,右邊表示後代元素。

1 div p{}/*選中div中的全部後代p*/

  g),子選擇器

    CSS使用(>)大於表示自選擇器,左邊表示父元素,右邊表示兒子元素。

1 div>p{}/*選中div中的全部兒子p*/

  h),兄弟選擇器

    CSS使用(+)加號表示兄弟選擇器。

1 div+p{}/*選中緊接在div以後的兄弟p元素*/

  i),屬性選擇器

    CSS使用([])表示屬性選擇器。

1 input[name]/*選中全部帶有name屬性的元素。*/
2 input[name='ren']/*選中全部name屬性值爲ren的元素。*/

  j),並列選擇器

    上面的選擇器直接連在一塊兒,不適用任何符號隔開,便是CSS中的並列選擇器。

1 div.wrap{}/*選中calss爲wrap的p元素。*/

  h),組選擇器

    上面的選擇器使用逗號隔開,便是CSS中的組選擇器。

1 p,.wrap,div,#firstname{}/*同時選中p、class爲wrap、div、id爲firstname的元素。*/

  i),僞類選擇器

    僞類選擇器的形式是:普通選擇器+冒號+關鍵字,僞類用於修飾普通選擇器,經常使用來設置普通選擇器選中元素的特殊狀態。

1 div:hover{}/*d用於設置div被鼠標滑過期的樣式。*/
2 p:first-child{}/*選中在兄弟元素中做爲第一個元素的p元素。*/

    CSS還有不少其餘的僞類選擇器,詳情請參考:https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes

  j),僞元素選擇器

    僞元素選擇器的形式和僞類類似,不一樣點在於,它使用雙冒號鏈接關鍵字。僞元素用來對普通選擇器選中的元素的特殊部分單獨設置樣式。它會把該元素的一部分當作一個完整的元素看待,從而爲其設置單獨的樣式。

1 p::first-line{}/*選中全部p元素的第一行文本。*/
2 p::before{}/*建立一個元素做爲p的第一個子元素,該元素默認是行內元素,可使用content屬性添加內容。*/

    更多僞元素請參考:https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements

  雖然W3C規範要求使用雙冒號來表示僞元素,但大多數瀏覽器依然支持使用單冒號表示僞元素,爲了避免產生混淆,推薦你們使用雙冒號,加以區分。

  

  2,CSS選擇器權重

    !important:infinity。

    內聯樣式:1000。

    id選擇器:100。

    class||屬性||僞類:10。

    標籤:1。

    通配符:0。

  請注意:權重值不是十進制數,極可能是256進制的。這意味着即便你使用11個calss屬性選中一個元素,它的優先級仍是不及一個id選擇器。

  一般,咱們並不須要經過權重計算來判斷css選擇器的優先級,按照如下方式就能夠簡單快速的判斷:  

  !important > 內聯樣式 > id > (class || 屬性選擇器)> 標籤 >通配符。

  只有在使用並列選擇器時,才須要計算權重值來斷定優先級,若是權重值同樣,那麼就按照誰寫在後面誰優先級高的原則。

 

三  CSS屬性

  

  1,文本類屬性

    文本樣式類:

經常使用屬性 含義         可選值                                                    
font-style 字體樣式 italic(斜體),normal(正常的,默認值)
font-size 字體尺寸 全部css支持的
font-family 字體類型 各類字體名稱
font-weight 字體粗細 normal,100-900,bold(粗),bolder(更粗),lighter(細)
text-decoration 文本裝飾 none(無),underline(下劃線),overline(上劃線),line-through(刪除線)
color 文本顏色 grb值,16進制值,單詞
text-shadow 文本陰影 須要四個值:1,水平偏移量;2,垂直偏移量;3,模糊半徑(0表示無陰影);4,影音顏色
text-transform 文本轉換 none(不轉換),uppercase(轉換爲大寫),lowercase(轉換爲小寫),capitalize(首字母轉換爲大寫),full-width(轉換爲全角)

 

    文本佈局類:

經常使用屬性 含義        可選值                                               
text-align 文本對齊方式 left(左對齊),right(右對齊),center(居中)
line-height 行高 全部css支持的
letter-spacing 字間距 全部css支持的
word-spacing 單詞間距 全部css支持的
text-indent 首行縮進量 全部css支持的
text-overflow 溢出處理 clip(不顯示截斷內容,默認值),ellipsis(以省略號顯示被截斷內容,須要配合white-space:nowrap使用纔有效)
white-space 空白和換行處理 normal(合併,可換行),nowrap(合併,不換行),pre(保留)

 

  2,盒子類屬性

  display:設置盒子是否顯示。

1 div{
2  display:none;/*徹底隱藏,不佔用空間*/
3     /*display:block;塊級元素*/
4     /*display:inline;行內元素*/
5     /*display:inline-block;行內塊級*/
6 }

  content:width和height,分別定義盒子內容區域的寬高。

1 p{
2  width:200px;
3  height:200px;
4 }

  padding:環繞在content區域以外的就是內邊距(或者叫填充)。

1 p{
2  padding-top:10px;
3  padding-right:20px;
4  padding-bottom:30px;
5  padding-left:40px;
6     /*padding:10px 20px 30px 40px;簡寫方式,順時針方向*/
7     /*padding:20px; 若是四周padding值相同,可這樣簡寫*/
8 }

  border:環繞在padding和content區域以外的便是邊框。

 1 p{
 2     border-width:5px;/*邊框寬度*/
 3     border-style:solid;/*邊框類型,solid實線,dotted圓點虛線,dashed虛線*/
 4     border-color:black;/*邊框顏色*/
 5     /*border:5px solid black;簡寫方式*/
 6     /*單獨設置某個方向邊框的方式與padding相似*/
 7     /*border-top-color:red;也能夠經過該方式單獨設置某一邊的單個屬性*/
 8     border-radius:5px;/*四角的圓角*/
 9     /*圓角也是一個複合屬性,你能夠單獨設置某一個,例如左上角的圓角:border-top-left-radius*/
10 }

  margin:元素最外層的包裹層就是margin區域。使用時請注意margin的摺疊問題(塌陷),前一篇《CSS概述》中有詳細介紹。

1 p{
2  margin:10px 20px 30px 40px;
3     /*margin設置方式同padding*/
4 }    

  事實上CSS有兩種盒子模型:標準盒模型,怪異盒模型。你可使用box-sizing設置CSS以哪一種模式解析元素。

1 div{
2  box-sizing:content-box;/*默認值,標準模型*/
3     /*box-sizing:border-box;怪異模型*/
4 }

  他們的惟一區別是:標準盒模型解析width,height屬性爲內容區域的寬高,怪異模型則解析爲content+padding+border區域。

  

  3,內容溢出

  咱們已經知道,CSS將全部元素解析爲一個個盒子,並能夠經過設置width和height屬性規定盒子內容區的大小。那麼,當內容過多,盒子大小不足以容納這麼多內容時,CSS是怎麼處理的呢?實際上,CSS爲了不數據丟失(用戶沒法查看全部內容),會在超出設置的範圍以外顯示剩餘內容,進而可能影響到其餘元素的顯示,這種現象咱們稱之爲內容溢出。

  通常有兩種狀況會致使內容溢出,一種是子元素的尺寸大於父元素的尺寸,另外一種是文本超出行內塊級元素的尺寸。你能夠經過設置父元素的overflow屬性來控制CSS如何處理溢出的狀況。

1 div{
2  overflow:hidden;/*隱藏超出部分*/
3     /*overflow:scroll;顯示滾動條*/
4     /*overflow:scroll-x/scroll-y;僅上下或左右方向有滾動條*/
5     /*overflow:auto;通常交給瀏覽器決定*/
6 }

 

四  背景

  

  1,顏色

  背景是修飾HTML經常使用的方式,CSS中使用background屬性設置背景屬性。

1 p{
2  backrgound-color:orange;/*背景顏色*/
3 }

  

  2,圖片

  除了能夠設置背景顏色外,CSS還能夠設置背景圖片。

1 p{
2  backrgound-img:url('url');/*背景圖片*/
3  background-repeat:no-repeat;/*不平鋪(重複)*/
4     /*該屬性還有幾個可選值:repeat:水平垂直都平鋪(默認值);repeat-x:只在x軸平鋪;repeat-y:只在y軸平鋪*/
5 }

  請注意,若是背景圖像和顏色都被設置了,通常狀況下圖像會覆蓋顏色。

  你還能夠經過設置background-size來調整背景圖片的尺寸,以適應網頁的須要。

1 p{
2  background-size:100px 200px;/*指定具體尺寸*/
3     /*若是你不知道具體尺寸,那麼你可使用關鍵字,讓瀏覽器幫你設置大小。
4    cover:保證圖片的寬高比,放大圖片以填滿整個區域,可能致使圖片部份內容溢出。
5   contain:保證圖片不溢出,儘可能填滿整個區域,可能致使部分區域沒法被圖像覆蓋。
*/ 6 }

  

  3,定位

  在圖像不須要填滿整個區域的時候,你可使用background-position來定位圖片,讓其顯示在你想要的位置,須要配合background-repeat:no-repeat使用。

  在學習如何定位以前,咱們應該先了解一下CSS中的座標系:

  

   座標原點即盒子的左頂點,水平向右爲x軸正方向,垂直向下爲y軸正方向。

1 p{
2  background-img:url('url');
3  backrgound-repeat:no-repeat;
4  background-position:50px 50px;/*設置水平和垂直偏移量*/
5 }

  偏移量能夠是正值,也能夠是負值,單位可使px,百分比,em等。

  

  4,關聯

  一般,若是咱們設置了背景圖片,且網頁內容較多,出現滾動條時,當咱們滑動滾動條,背景圖片也會隨着網頁一塊兒滾動。若是你想讓背景圖片固定不動,即便滑動滾動條,也只是內容上下或左右移動,那麼你能夠經過設置背景與滾動條的關聯方式來達到目的。

1 div{
2  background-img:url('url');
3  background-attachment:fixed;
4     /*另外一個取值scroll是該屬性的默認值,即圖片隨滾動條一塊兒滾動*/
5 }

 

  5,簡寫

  若是你想一次設置多個背景相關的屬性,其實你大可沒必要像上面那樣。上面介紹的背景相關屬性能夠簡寫爲:

1 /*background:顏色 圖片 平鋪方式 關聯方式 定位方式*/ 2 div{
3  background:red url('url') no-repeat attachment relative;
4 }

 

  6,漸變

  你必定在網頁上見過漸變色,它是那麼的炫酷,如今,你也能夠經過css定義本身的漸變色了。

  使用linear-gradient()函數建立線性漸變。

  函數須要3個或多個參數,第一個表示漸變方向(能夠是關鍵字或角度deg),第二個表示開始顏色,第三個表示結束顏色,若是在後面添加了更多的顏色,那麼這些顏色都會在漸變過程當中出現。

1 p{
2  background:linear-gradient(to right,red,blue);
3     /*建立一個從左到右的,從紅色到藍色的漸變*/
4 }
5 p{
6  background:linear-gradient(to bottom right,red,blue);
7     /*建立一個從左上角到右下角的,從紅色到藍色的漸變*/
8 }

  使用radial-gradient()函數建立徑向漸變。

  函數須要3個或多個參數,第一個參數定義漸變的圓點,默認值爲center,即元素的中心點,你也能夠經過具體尺寸或關鍵字(top,right,bottom,left,center或他們的組合)指定其位置;第二個參數定義徑向漸變的形狀(circle(圓),ellipse(橢圓,默認值))和大小。而後是起止顏色,同線性漸變。你也能夠給每一個顏色後面添加一個百分比(用空格隔開),表示該顏色在整個漸變區域中的佔比。

1 p{
2  background:radial-gradient(top center,circle,orange 70%,purple 30%);
3     /*定義一個以盒子上邊緣中間點爲圓點,橘色佔70%,紫色佔30%的圓形徑向漸變。*/
4 }

  因爲漸變在CSS3才被引入,全部如今各大瀏覽器對它的支持各不相同,而且語法也與標準語法有必定出入,在使用時請必定做重考慮他們的兼容性問題。更多漸變知識請參考https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Using_CSS_gradients

相關文章
相關標籤/搜索