配套視頻下載地址php
什麼邊框?html
邊框就是環繞在標籤寬度和高度周圍的線條ide
邊框屬性的格式佈局
連寫(同時設置四條邊)spa
border: 邊框的寬度 邊框的樣式 邊框的顏色;code
示例代碼視頻
<style> .box{ width: 100px; height: 100px; background-color: red; border: 5px solid blue; /*border: 5px solid;*/ /*border: 5px blue;*/ /*border: solid blue;*/ } </style>
快捷鍵:htm
bd+ border: 1px solid #000;圖片
注意點:開發
連寫格式中顏色屬性能夠省略, 省略以後默認就是黑色
連寫格式中樣式不能省略, 省略以後就看不到邊框了
連寫格式中寬度能夠省略, 省略以後仍是能夠看到邊框
按方向連寫(分別設置四條邊)
border-top: 邊框的寬度 邊框的樣式 邊框的顏色;
border-right: 邊框的寬度 邊框的樣式 邊框的顏色;
border-bottom: 邊框的寬度 邊框的樣式 邊框的顏色;
border-left: 邊框的寬度 邊框的樣式 邊框的顏色;
示例代碼
<style> .box{ width: 100px; height: 100px; background-color: red; border-top:5px solid blue; border-right:10px dashed green; border-bottom:15px dotted purple; border-left:20px double pink; } </style>
快捷鍵:
bt+ border-top: 1px solid #000;
br+ border-right: 1px solid #000;
bb+ border-bottom: 1px solid #000;
bl+ border-left: 1px solid #000;
按要素連寫(分別設置四條邊)
border-width: 上 右 下 左;
border-style: 上 右 下 左;
border-color: 上 右 下 左;
示例代碼
<style> .box{ width: 500px; height: 500px; background-color: red; border-width: 5px 10px 15px 20px; border-style: solid dashed dotted double; border-color: blue green purple pink; /*border-color: blue green purple;*/ /*border-color: blue green;*/ /*border-color: blue;*/ } </style>
注意點:
這三個屬性的取值是按照順時針來賦值, 也就是按照上右下左來賦值, 而不是按照平常生活中的上下左右
這三個屬性的取值省略時的規律
上 右 下 左 > 上 右 下 > 左邊的取值和右邊的同樣
上 右 下 左 > 上 右 > 左邊的取值和右邊的同樣 下邊的取值和上邊同樣
上 右 下 左 > 上 > 右下左邊取值和上邊同樣
非連寫(方向+要素)
border-top-width: ;
border-top-style:;
border-top-color:;
border-right-width:;
border-right-style:;
border-right-color:;
border-bottom-width:;
border-bottom-style: ;
border-bottom-color:;
border-left-width:;
border-left-style:;
border-left-color:;
示例代碼
<style> .box{ width: 500px; height: 500px; background-color: red; border-top-width: 5px; border-top-style: solid; border-top-color: blue; border-right-width: 10px; border-right-style: dashed; border-right-color: green; border-bottom-width: 15px; border-bottom-style: dotted; border-bottom-color: purple; border-left-width: 20px; border-left-style: double; border-left-color: pink; } </style>
注意點:
同一個選擇器中若是設置了多個邊框屬性, 後面的會覆蓋前面的
.box3{ border: 5px solid red; border-right:5px dashed red; }
什麼是內邊距?
邊框和內容之間的距離就是內邊距
格式
單獨設置四條邊
padding-top: ;
padding-right: ;
padding-bottom: ;
padding-left: ;
示例代碼
<style> div{ width: 98px; height: 90px; border: 1px solid #000; background-color: red; } .box1{ padding-top: 20px; padding-right:40px; padding-bottom:80px; padding-left:160px; } </style>
同時設置四條邊
padding: 上 右 下 左;
示例代碼
<style> div{ width: 98px; height: 90px; border: 1px solid #000; background-color: red; } .box1{ /*padding:20px 40px 80px 160px;*/ /*padding:20px 40px 80px;*/ /*padding:20px 40px;*/ padding:20px; } </style>
注意點:
這三個屬性的取值省略時的規律
上 右 下 左 > 上 右 下 > 左邊的取值和右邊的同樣
上 右 下 左 > 上 右 > 左邊的取值和右邊的同樣 下邊的取值和上邊同樣
上 右 下 左 > 上 > 右下左邊取值和上邊同樣
給標籤設置內邊距以後, 標籤佔有的寬度和高度會發生變化
給標籤設置內邊距以後, 內邊距也會有背景顏色
什麼是外邊距?
標籤和標籤之間的距離就是外邊距
格式
單獨設置四條邊
margin-top: ;
margin-right: ;
margin-bottom: ;
margin-left: ;
示例代碼
<style> .box1{ margin-top:20px; margin-right:40px; margin-bottom:80px; margin-left:160px; } </style>
同時設置四條邊
margin: 上 右 下 左;
示例代碼
<style> .box1{ margin:20px 40px 80px 160px; /*margin:20px 40px 80px;*/ /*margin:20px 40px;*/ /*margin:20px;*/ } </style>
注意點:
這三個屬性的取值省略時的規律
上 右 下 左 > 上 右 下 > 左邊的取值和右邊的同樣
上 右 下 左 > 上 右 > 左邊的取值和右邊的同樣 下邊的取值和上邊同樣
上 右 下 左 > 上 > 右下左邊取值和上邊同樣
外邊距的那一部分是沒有背景顏色的
外邊距合併現象
默認佈局的垂直方向上外邊距是不會疊加的, 會出現合併現象, 誰的外邊距比較大就聽誰的
示例代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>外邊距合併現象</title> <style> span{ display: inline-block; width: 100px; height: 100px; border: 1px solid #000; } div{ height: 100px; border: 1px solid #000; } .hezi1{ margin-right:50px; } .hezi2{ margin-left:100px; } .box1{ margin-bottom:50px; } .box2{ margin-top:100px; } </style> </head> <body> <span class="hezi1">我是span</span><span class="hezi2">我是span</span> <div class="box1">我是div</div> <div class="box2">我是div</div> </body> </html>
margin-top問題
若是兩個盒子是嵌套關係, 那麼設置了裏面一個盒子頂部的外邊距, 外面一個盒子也會被頂下來
若是外面的盒子不想被一塊兒定下來,那麼能夠給外面的盒子添加一個邊框屬性
在企業開發中, 通常狀況下若是須要控制嵌套關係盒子之間的距離, 應該首先考慮padding, 其次再考慮margin(margin本質上是用於控制兄弟關係之間的間隙的)
示例代碼
<style> .big{ width: 500px; height: 500px; background-color: red; /*不設置邊框, big也會被small的頂部外邊距頂下去*/ border: 5px solid #000; } .small{ width: 200px; height: 200px; background-color: blue; margin-top:150px; margin-left:150px; } </style>
text-align:center;和margin:0 auto;區別
text-align: center; 是設置盒子中存儲的文字/圖片水平居中
margin:0 auto;是讓盒子本身水平居中
示例代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>53-盒子居中和內容居中</title> <style> .father{ width: 800px; height: 500px; background-color: red; /*文字圖片會居中*/ /*text-align: center;*/ /*盒子自身會居中*/ margin:0 auto; } .son{ width: 100px; height: 100px; background-color: blue; } </style> </head> <body> <div class="father"> 我是文字<br/> <img src="p_w_picpaths/girl.jpg" alt=""> <div class="son"></div> </div> </body> </html>
什麼是CSS盒模型?
CSS盒模型僅僅是一個形象的比喻, HTML中的標籤都是盒模型
CSS盒模型指那些能夠設置寬度高度/內邊距/邊框/外邊距的標籤
這些屬性咱們能夠用平常生活中的常見事物——盒子做一個比喻來理解,因此HTML標籤又叫作盒模型
示例代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>48-CSS盒子模型</title> <style> span,a,b,strong{ display: inline-block; width: 100px; height: 100px; border: 6px solid #000; padding: 20px; margin: 20px; } </style> </head> <body> <span>我是span</span> <a href="#">我是超連接</a> <b>我是加粗</b> <strong>我是強調</strong> </body> </html>
盒模型寬度和高度
內容的寬度和高度
就是經過width/height屬性設置的寬度和高度
元素的寬度和高度
寬度 = 左邊框 + 左內邊距 + width + 右內邊距 + 右邊框
高度 同理可證
規律
增長了padding/border以後元素的寬高也會發生變化
- 若是增長了padding/border以後還想保持元素的寬高, 那麼就必須減去內容的寬高
元素空間的寬度和高度
寬度 = 左外邊距 + 左邊框 + 左內邊距 + width + 右內邊距 + 右邊框 + 右外邊距
高度 同理可證
CSS3中新增了一個box-sizing屬性, 這個屬性能夠保證咱們給盒子新增padding和border以後, 盒子元素的寬度和高度不變
box-sizing取值
content-box
元素的寬高 = 邊框 + 內邊距 + 內容寬高
border-box
元素的寬高 = width/height的寬高
增長padding和border以後要想保證盒子元素的寬高不變, 系統會自動減去一部份內容的寬度和高度
示例代碼
<!--增長padding/border以後元素寬高會變大--> <style> .box1{ width: 200px; height: 200px; background-color: blue; float: right; border: 20px solid #000; padding: 20px; } </style> <!--增長padding/border以後元素寬不會變大--> <style> .box1{ box-sizing: border-box; width: 200px; height: 200px; background-color: blue; float: right; border: 20px solid #000; padding: 20px; } </style>