千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        400-811-9990
        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        上海
        • 北京
        • 鄭州
        • 武漢
        • 成都
        • 西安
        • 沈陽
        • 廣州
        • 南京
        • 深圳
        • 大連
        • 青島
        • 杭州
        • 重慶
        當(dāng)前位置:哈爾濱千鋒IT培訓(xùn)  >  技術(shù)干貨  >  什么是CSS盒模型呢?

        什么是CSS盒模型呢?

        來源:千鋒教育
        發(fā)布人:qyf
        時(shí)間:2023-02-08 16:55:35

          在網(wǎng)站布局中,我們會(huì)使用各種各樣的元素,這些元素本質(zhì)上就是一個(gè)個(gè)小的容器,也稱之為盒子,盒子里面可以放置文本,圖片,或者其他元素。

          什么是 CSS 盒模型呢?

          CSS 盒模型本質(zhì)上是一個(gè)包裹每個(gè) HTML 元素的盒子,包含 margin、border、padding 和 content 四個(gè)部分。

          瀏覽器就是通過盒模型,來計(jì)算元素在網(wǎng)頁中占據(jù)的空間大小的。

        圖片 1

          前面我們介紹過這些盒模型的要素:Content,表示盒子的內(nèi)容,包含文本、圖像等等。Padding,表示填充內(nèi)容周圍的一個(gè)區(qū)域,它是透明的。Border,表示圍繞填充和內(nèi)容的邊框。Margin,表示邊框以外的區(qū)域,它也是透明的。

          我們來舉個(gè)例子。

          創(chuàng)建一個(gè) 019-css-box-model 文件夾,在文件夾里創(chuàng)建一個(gè) box-model-1.html 文件和一個(gè)box-model-1.css 文件。

          構(gòu)建 html 基礎(chǔ)代碼,引入樣式文件。為了便于比較效果,我們定義兩個(gè) div 元素,添加不同的類名,補(bǔ)全文本。

        HTML

        <div class="box1">

            盒子模型組成部分:內(nèi)容,內(nèi)邊距,邊框,外邊距

        </div>

        <div class="box2">

            盒子模型組成部分:內(nèi)容,內(nèi)邊距,邊框,外邊距

        </div>

        CSS

        * {

          margin:0;

          padding:0

        }

        div {

          width: 200px;

          height: 200px;

        }

        .box1 {

          background-color: orange;

          border:20px solid gray;

          padding:20px;

          margin:20px;

        }

        .box2 {

          background-color: yellow;

        }

          打開 CSS 文件,定義通配符選擇器,聲明樣式 margin: 0,padding: 0。取消所有元素默認(rèn)的邊距和填充樣式。

          定義 div 選擇器,聲明樣式:width: 200px,height: 200px。為兩個(gè) div 元素添加寬度和高度。

          定義 .box1 選擇器,聲明樣式:background-color: orange。

          定義 .box2 選擇器,聲明樣式:background-color: yellow。

          在瀏覽器里預(yù)覽效果,兩個(gè)有背景顏色的盒子就做好了。

          給 box1 添加樣式:border: 20px solid gray,為橙色的盒子增加一個(gè)邊框。

          對(duì)比黃色的盒子,橙色盒子總寬度增加了 40px,總高度也增加了 40px。

          繼續(xù)給 box1 添加樣式:padding: 20px。

          此時(shí)橙色的盒子繼續(xù)變大。對(duì)比黃色的盒子,寬度和高度又增加了40px。

          繼續(xù)給 box1 添加樣式:margin: 20px。

          這時(shí)我們發(fā)現(xiàn),因?yàn)樘砑恿送膺吘啵壬凶拥奈恢冒l(fā)生了偏移。

          通過這個(gè)例子我們發(fā)現(xiàn),給元素添加內(nèi)填充、邊框以及外邊距之后,盒子會(huì)變大并發(fā)生位置變化。

          那么,如何在所有瀏覽器中正確設(shè)置一個(gè)元素的寬度和高度呢?這對(duì)于精確的頁面布局,意義重大!

          計(jì)算盒子的寬度和高度,請(qǐng)牢記這兩個(gè)公式:

          盒子的寬度 = 內(nèi)容寬度 + 左填充 + 右填充 + 左邊框 + 右邊框 + 左邊距 + 右邊距

          盒子的高度 = 內(nèi)容高度 + 上填充 + 下填充 + 上邊框 + 下邊框 + 上邊距 + 下邊距

          再次強(qiáng)調(diào):當(dāng)應(yīng)用 CSS 設(shè)置一個(gè)元素的 width 和 height 屬性時(shí),只是設(shè)置了元素內(nèi)容區(qū)域的寬度和高度。要計(jì)算一個(gè)元素的完整尺寸,必須要加上填充、邊框和邊距。

          我們將上面這種計(jì)算元素大小的盒模型,稱作標(biāo)準(zhǔn)盒模型。

          那能不能給元素設(shè)置了 margin 和 padding 屬性后,元素本身的寬高就固定為設(shè)置的這個(gè)值呢?這就要應(yīng)用另外一種盒模型,叫做怪異盒模型。

          給元素聲明 box-sizing 屬性,取值為 border-box,這個(gè)元素就按照怪異盒模型來呈現(xiàn)大小了。

          我們先來做個(gè)例子。

          在 019-css-box-model 文件夾下,創(chuàng)建一個(gè) box-model-2.html 文件和一個(gè)box-model-2.css 文件。

          構(gòu)建 html 基礎(chǔ)代碼,引入樣式文件。為了便于比較效果,我們還是定義兩個(gè) div 元素,添加不同的類名,補(bǔ)全文本。

        HTML

        <div class="box1">

            我是一個(gè)div,用來演示怪異盒子

        </div>

        <div class="box2">

            我是一個(gè)div,用來進(jìn)行做比較

        </div>

        CSS

        *{

            margin:0;padding:0

        }

        div{

            width: 200px;

            height:200px;

        }

        .box1{

            background-color: orange;

            box-sizing: border-box;

            border:20px solid gray;

            padding:20px;

            margin:20px

        }

        .box2{

            background-color: yellow;

        }

          打開 CSS 文件,定義通配符選擇器,聲明樣式 margin: 0,padding:0。取消所有元素默認(rèn)的邊距和填充樣式。

          定義 div 選擇器:聲明樣式:width: 200px,height: 200px。

          定義 .box1 選擇器,聲明樣式:background-color: orange。

          定義 .box2 選擇器,聲明樣式:background-color: yellow。

          在瀏覽器里預(yù)覽效果,兩個(gè)有背景顏色的盒子就做好了。

          給 box1 添加樣式:box-sizing: border-box,觸發(fā)怪異盒模型。繼續(xù)添加樣式 border: 20px solid gray,padding:20px。

          可以看到,box1 添加了邊框和內(nèi)邊距,但是大小并沒有改變,寬高仍然是200px。顯而易見,內(nèi)容的大小被壓縮了。

          繼續(xù)為 box1 添加樣式:margin: 20px。

          大家可以猜一下,外邊距會(huì)不會(huì)繼續(xù)壓縮內(nèi)容呢?

          仔細(xì)觀察一下,box1 位置發(fā)生了偏移,觀察一下容器的大小,并沒有變化。

          所以,怪異盒模型寬度和高度的計(jì)算公式為:

          盒子的寬度 = CSS樣式設(shè)置的 width 值 + 左邊距 + 右邊距

          盒子的高度 = CSS樣式設(shè)置的 height 值 + 左邊距 + 右邊距

          實(shí)際上,box-sizing 屬性還有一個(gè)值: content-box,就是用來觸發(fā)元素的標(biāo)準(zhǔn)盒模型。這也是元素盒模型的默認(rèn)值,如果沒有給元素設(shè)置 box-sizing 屬性,容器的大小就按照標(biāo)準(zhǔn)盒模型來計(jì)算。

          回到樣式代碼,將 box1 的 box-sizing 屬性值修改為 content-box。

          我們發(fā)現(xiàn),容器總寬高變?yōu)榱?320px。

          注釋掉box-sizing: content-box,容器的總寬高仍然是 320px。

        圖片 2

        HTML

        <!--回答問題: -->

        <div class='box'></div>

        <style>

            div {

                width:100px;

                height:100px;

                background-color:orange;

                box-sizing:content-box;

                border:10px solid gray;

            }

            .box {

                width:200px;

                padding:200px;

                border-top:10px solid yellow;

                margin:20px 30px;

            }

        </style>

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

        猜你喜歡LIKE

        抖音買1000粉會(huì)封嗎?那些短視頻運(yùn)營你不得不知道的事情

        2023-04-20

        做短視頻你不得不知道的事情之抖音流量池分配規(guī)則

        2023-04-20

        視頻剪輯軟件哪個(gè)好?電腦軟件vs手機(jī)軟件

        2023-03-01

        最新文章NEW

        抖音發(fā)日常和作品有什么不一樣

        2023-04-19

        mysql和mariadb有什么區(qū)別

        2023-03-17

        CSS選擇器的權(quán)重如何判斷?

        2023-02-10

        相關(guān)推薦HOT

        更多>>

        快速通道 更多>>

        最新開班信息 更多>>

        網(wǎng)友熱搜 更多>>

        主站蜘蛛池模板: 国产va免费精品高清在线观看| 无人在线观看视频高清视频8| 和黑帮老大365天完整版免费| 67194成人手机在线| 少妇高潮喷潮久久久影院| 亚洲一区无码中文字幕| 波多野结衣丝袜诱惑| 国产一区二区三区欧美| 2021国产精品露脸在线| 夜夜橹橹网站夜夜橹橹| 久久久亚洲精品无码| 最近中文国语字幕在线播放| 亚洲香蕉久久一区二区| 精品久久洲久久久久护士免费| 国产开嫩苞实拍在线播放视频| 99久久综合给久久精品| 妇女bbbb插插插视频| 久久伊人色综合| 日韩美女视频一区| 亚洲欧美自拍另类图片色| 男人免费桶女人45分钟视频| 国产乱人伦app精品久久| 麻豆国产精品一二三在线观看| 国内精品福利在线视频| 三级网在线观看| 我被继夫添我阳道舒服男男| 五月天亚洲婷婷| 欧美一级爽快片淫片高清在线观看| 伊人久久大香线蕉av五月天| 精品久久久久久无码中文字幕| 国产亚洲精品第一综合| 麻豆乱码国产一区二区三区| 国产精品爽爽V在线观看无码| 一级毛片**免费看试看20分钟| 成年免费a级毛片免费看无码| 久久精品国产精品亚洲毛片| 最近2019在线观看| 亚洲日本中文字幕天天更新| 欧美第一页草草影院浮力| 免费人妻无码不卡中文字幕18禁| 精品一区精品二区|