
批改狀態(tài):合格
老師批語:
在 CSS 中,所有的元素都被一個(gè)個(gè)的“盒子(box)”包圍著,理解這些“盒子”的基本原理,是我們使用CSS實(shí)現(xiàn)準(zhǔn)確布局、處理元素排列的關(guān)鍵。
CSS中組成一個(gè)塊級(jí)盒子需要:
content box: 這個(gè)區(qū)域是用來顯示內(nèi)容,大小可以通過設(shè)置 width 和 height.
padding box: 包圍在內(nèi)容區(qū)域外部的空白區(qū)域; 大小通過 padding 相關(guān)屬性設(shè)置。
border box: 邊框盒包裹內(nèi)容和內(nèi)邊距。大小通過 border 相關(guān)屬性設(shè)置。
margin box: 這是最外面的區(qū)域,是盒子和其他元素之間的空白區(qū)域。大小通過 margin 相關(guān)屬性設(shè)置。如下圖:
這個(gè)圖片內(nèi)部200*200的地方是content內(nèi)容區(qū)域,padding是內(nèi)邊距,border是邊框,,margin是外邊距。相信大家看了這個(gè)簡(jiǎn)介之后對(duì)于盒模型有一定的理解。下面來介紹一下padding和margin的語法
屬性 | 幾值 | 語法/含義 |
---|---|---|
padding-top | 是設(shè)置上內(nèi)邊距,大小用數(shù)值表示 | |
padding-right | 是設(shè)置右內(nèi)邊距,大小用數(shù)值表示 | |
padding-buttom | 是設(shè)置下內(nèi)邊距,大小用數(shù)值表示 | |
padding-left | 是設(shè)置左內(nèi)邊距,大小用數(shù)值表示 | |
padding | 四值 | 0px(上) 0px(右) 0px(下) 0px(左) 順時(shí)針編寫 |
padding | 三值 | 0px(上) 0px(左右相等) 0px(下) |
padding | 兩值 | 0px(上下相等) 0px(左右相等) |
padding | 一值 | 0px(上下左右相等) |
屬性 | 幾值 | 語法/含義 |
---|---|---|
margin-top | 是設(shè)置上外邊距,大小用數(shù)值表示 | |
margin-right | 是設(shè)置右外邊距,大小用數(shù)值表示 | |
margin-buttom | 是設(shè)置下外邊距,大小用數(shù)值表示 | |
margin-left | 是設(shè)置左外邊距,大小用數(shù)值表示 | |
margin | 四值 | 0px(上) 0px(右) 0px(下) 0px(左) 順時(shí)針編寫 |
margin | 三值 | 0px(上) 0px(左右相等) 0px(下) |
margin | 兩值 | 0px(上下相等) 0px(左右相等) |
margin | 一值 | 0px(上下左右相等) |
屬性 | 含義 |
---|---|
box-sizing-border-box | 可以改變這個(gè)屬性盒子原本計(jì)算大小的規(guī)則,將文本內(nèi)容,內(nèi)邊距,邊框,外邊距的大小值計(jì)算方式合成一個(gè)主體 |
box-sizing-content-box | 還原這個(gè)屬性盒子的計(jì)算方式,只能將文本內(nèi)容,外邊距,邊框大小值計(jì)算在內(nèi),外邊框大小值不計(jì)算在內(nèi) |
我們可以從這張圖片里面看到瀏覽器的默認(rèn)計(jì)算盒模型大小的方式,我們給盒子設(shè)置了高200px,寬200px,邊框上下高左右寬1px,內(nèi)邊距上下高10px,左右寬5px,外邊距上下寬10px,上下高10px,但是瀏覽器的計(jì)算方式不會(huì)把外邊距給計(jì)算到內(nèi),所以設(shè)計(jì)網(wǎng)頁頁面的時(shí)候往往外邊距會(huì)破壞整個(gè)網(wǎng)頁布局,所以我們要用到box-sizing-border-box功能,請(qǐng)往下看。
設(shè)置好box-sizing:border-box后,計(jì)算方式改變成了把文本內(nèi)容,內(nèi)邊距,邊框,外邊距的大小值計(jì)算方式合成了一個(gè)主體,就是原本設(shè)置好的寬200像素,高200像素,這樣可以更好的設(shè)計(jì)頁面布局大小。
我們一般會(huì)用這個(gè)代碼進(jìn)行頁面的初始化,把所有元素的外邊距,內(nèi)邊距設(shè)置為0,計(jì)算方式設(shè)置為box-sizing:border-box
<style type="text/css">
* {
padding: 0px;
margin: 0px;
box-sizing: border-box;
}
</style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>box-sizing功能并實(shí)例</title>
<style type="text/css">
* {
padding: 0px;
margin: 0px;
box-sizing: border-box;
}
#box {
/* 設(shè)置盒子邊框大小為1個(gè)像素 */
border: 1px solid;
background: aqua;
/* 設(shè)置盒子寬度為200像素 */
width: 200px;
/* 設(shè)置盒子高度為200像素 */
height: 200px;
/* 設(shè)置內(nèi)邊距上下高度為10像素 左右寬度為5像素 */
padding: 10px 5px;
/* 設(shè)置外邊距上下高度/左右寬度為10像素 */
margin: 10px;
/* box-sizing: border-box; */
}
</style>
</head>
<body>
<div id="box">box</div>
</body>
</html>
屬性 | 含義 |
---|---|
position: static | 默認(rèn)定位 |
position:relative | 相對(duì)定位,相對(duì)自己的定位元素位置,沒有脫離文檔流 |
position:absolute | 絕對(duì)定位,相對(duì)自己的原始定位位置,脫離文檔流 |
position:fixed | 固定定位,相對(duì)html位置,脫離文檔流 |
從這個(gè)圖片我們可以看出,用相對(duì)定位去定位一個(gè)盒子,我們可以定位它距離html的頂邊,左邊,距離大小,還可以證明relative相對(duì)定位屬性沒有把這個(gè)盒子脫離文檔流,盒子還在文檔流中。
從這個(gè)圖片我們可以看出,absolute絕對(duì)定位把第一個(gè)盒子脫離文檔流了,第二個(gè)盒子代替了它原先的位置。它和相對(duì)定位不同的是,相對(duì)定位沒有脫離文檔流,二絕對(duì)定位脫離了文檔流,絕對(duì)定位是相對(duì)自己原始的位置。
從圖片上可以看出,固定定位也脫離了文檔流,而且還固定在設(shè)置好的坐標(biāo)上不會(huì)動(dòng)彈,就算是自己滑動(dòng)滾輪使得頁面上下滑動(dòng),它還是在這個(gè)坐標(biāo)上不會(huì)隨意動(dòng)彈。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>相對(duì)定位與絕對(duì)定位的區(qū)別與聯(lián)系</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
:root {
border: 2px solid;
}
/* 我這邊設(shè)置了兩個(gè)盒子來演示定位元素的區(qū)別
1.相對(duì)定位元素:position:relative */
/*#box1 {
設(shè)置盒子邊框大小
border: 1px solid;
設(shè)置盒子寬度大小
width: 200px;
設(shè)置盒子高度大小
height: 200px;
設(shè)置盒子背景顏色
background: aqua;
設(shè)置相對(duì)定位元素:position:relative
position: relative;
距離相對(duì)html頂部50像素距離
top: 50px;
距離相對(duì)html左部50像素距離
left: 50px;
}*/
/* 2.絕對(duì)定位元素:position:absolute
#box1 {
/* 設(shè)置盒子邊框大小
border: 1px solid;
/* 設(shè)置盒子寬度大小
width: 200px;
/* 設(shè)置盒子高度大小
height: 200px;
/* 設(shè)置盒子背景顏色
background: aqua;
/* 設(shè)置絕對(duì)定位元素:position:absolute
position: absolute;
top: 3em;
left: 3em;
} */
#box1 {
/* 設(shè)置盒子邊框大小 */
border: 1px solid;
/* 設(shè)置盒子寬度大小 */
width: 200px;
/* 設(shè)置盒子高度大小 */
height: 200px;
/* 設(shè)置盒子背景顏色 */
background: aqua;
/*設(shè)置盒子是固定定位:position:fixed**/
position: fixed;
left: 220px;
}
#box2 {
/* 設(shè)置盒子邊框大小 */
border: 1px solid;
/* 設(shè)置盒子寬度大小 */
width: 200px;
/* 設(shè)置盒子高度大小 */
height: 2000px;
/* 設(shè)置盒子背景顏色 */
background: palevioletred;
/* position: relative;
top: 3em; */
}
</style>
</head>
<body>
<div id="box1">我是固定定位</div>
<div id="box2">我是默認(rèn)定位</div>
</body>
</html>
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)