1. 程式人生 > >css---標準流、盒模型、浮動

css---標準流、盒模型、浮動

一、盒模型

1.1 盒子的區域

一個盒子的主要屬性5個:width、height、padding、border、margin

padding:內邊距

border:邊框

margin:外邊框

1.2 認識width、height

一個盒子的真實佔有的寬度:左border+左padding+width+右padding+右border

一個盒子的真實佔有的高度:上border+上padding+height+下padding+下border 

如果想保持一個盒子的真實佔有寬度不變:那麼加width要減padding,加padding要減width

高度同理。

6.3 padding

padding 就是內邊距。padding的區域有背景顏色,background-color填充的是border以內的所有區域

padding是四個方:兩種描述padding的方法。

1)小屬性:

padding-top:30px;

padding-right:20px;

padding-bottom:40px;

padding-left:100px;

2)綜合屬性:

padding:30px 20px 40px 100px;

                 上      右     下      左

要懂得小屬性層疊大屬性:

padding:20px;

padding-left:30px;

很多元素都帶有預設的padding,比如ul,所以在做網站的時候便於控制,需要清除預設的padding,*效率不高,採用並集選擇器羅列所有的標籤清除padding(專業的樣式表)

1.4border

就是邊框。有三要素:粗細,線型,顏色

顏色預設黑色,其他兩個如果不寫,就顯示不出邊框。

border:1px dashed red;

dashed:虛線 solid:實線 dotted:圓點

border 屬性可以被拆分為兩種方式:

1)三要素拆分:

border-width、border-style、border-color

border-width:1px;

border-style:solid;

border-color:red;

等價於:border:1px solid red;

2)方向拆分:

border-top、border-right、border-bottom

 二、標準文件流

標準文件流的微觀現象:

1)空白摺疊現象

2)高矮不齊,底邊對齊

3)自動換行

2.1塊級元素和行內元素

標籤分兩種等級:

1)塊級元素

     霸佔一行,不與其他任何元素並列

     能接受寬高

     如果不設定寬度,寬度將預設為父親的100%

2) 行內元素

    與其他行內元素並排

    不能設定寬高,預設就是文字的寬高

1、HTML將標籤分為容器級和文字級:

容器級:div h dt dd li 等

文字級:p span b a em u i 等

2、CSS將標籤分為塊級元素和行內元素:

塊級元素:div h dt dd li p等

行內元素:a span em b u i  等

注意:不要將兩者混淆!

2.2塊級元素和行內元素的相互轉換

div {
display:inline;
width:50px;
height:500px;
}

此時,div將變成行內元素,這是將不能設定寬高。

span {
display:block;
width:200px;
height:200px;
}

此時,這個標籤可以設定寬高,獨佔一行。

脫離標準流:css中的三種手段

1)浮動

2)絕對定位

3)固定定位

三、浮動

浮動是css裡面佈局最多的屬性

3.1 浮動的元素脫標

一個span標籤不需要轉變成塊級元素就能設定寬高。一旦一個元素浮動了,就能並排了,並且能設定寬高,不論原來是什麼。

span{

float:left;//左浮

width:200px;

height: 200px;

}

3.2浮動的元素相互貼靠

3.3浮動元素有“字圍”效果

<div>

        <img src="images/1.jpg"/>

</div>

<p>文字文字...文字 </p>

讓div浮動,p不浮動,會出現文字圍著圖片的效果。

3.4 浮動元素的收縮

收縮:一個浮動的元素,如果沒有設定width,那麼將自動收縮為文字的寬度

比如:

div{
float:left;
background-color:gold;
}
<div>
  文字
</div>

這個div浮動了,並且沒有設定寬度,那麼將自動縮緊為內容的寬度。