Rumah hujung hadapan web tutorial css 什么是css盒子模型

什么是css盒子模型

May 14, 2019 pm 04:05 PM
model kotak

css盒子模型又称为框模型,盒子的最内部是元素的实际内容即元素内容,紧挨着元素框外部的是内边距,其次是边框,然后最外层是外边距,这几部分共同组成了盒子模型

盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局。下面是总结的关于css盒子模型的知识,希望对大家有所帮助。

什么是css盒子模型

一、css盒子模型概念

CSS css盒子模型又称框模型 (Box Model) ,包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。如图:

什么是css盒子模型


图中最内部的框是元素的实际内容,也就是元素框,紧挨着元素框外部的是内边距padding,其次是边框(border),然后最外层是外边距(margin),整个构成了框模型。通常我们设置的背景显示区域,就是内容、内边距、边框这一块范围。而外边距margin是透明的,不会遮挡周边的其他元素。

那么,元素框的总宽度 = 元素(element)的width + padding的左边距和右边距的值 + margin的左边距和右边距的值 + border的左右宽度;

元素框的总高度 = 元素(element)的height + padding的上下边距的值 + margin的上下边距的值 + border的上下宽度。

二、css 外边距合并(叠加)

两个上下方向相邻的元素框垂直相遇时,外边距会合并,合并后的外边距的高度等于两个发生合并的外边距中较高的那个边距值,如图:

未标题-2-恢复的.jpg

未标题-2-恢复的.jpg


比较容易理解,所以在页面中有时候遇到实际情况是需要考虑这个因素的。当然外边距合并其实也有存在的意义,如下图:

未标题-2-恢复的.jpg


需要注意的是:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

css reset 中也会经常用到

* {
  margin : 0;
  padding : 0;
}

三、box-sizing属性介绍

box-sizing属性是用户界面属性里的一种,之所以介绍它,是因为这个属性跟盒子模型有关,而且在css reset中有可能会用到它。

box-sizing : content-box|border-box|inherit;

(1) content-box ,默认值,可以使设置的宽度和高度值应用到元素的内容框。盒子的width只包含内容。

即总宽度=margin+border+padding+width

(2) border-box , 设置的width值其实是除margin外的border+padding+element的总宽度。盒子的width包含border+padding+内容

即总宽度=margin+width

很多CSS框架,都会对盒子模型的计算方法进行简化。

(3) inherit , 规定应从父元素继承 box-sizing 属性的值

关于border-box的使用:

1、一个box宽度为100%,又想要两边有内间距,这时候用就比较好

2、全局设置 border-box 很好,首先它符合直觉,其次它可以省去一次又一次的加加减减,它还有一个关键作用——让有边框的盒子正常使用百分比宽度。

四、实际开发中遇到的和框模型相关的应用及小问题。

1、margin越界(第一个子元素的margin-top和最后一个子元素的margin-bottom的越界问题)

以第一个子元素的margin-top 为例:

当父元素没有边框border时,设置第一个子元素的margin-top值的时候,会出现margin-top值加在父元素上的现象,解决方法有四个:

(1)给父元素加边框border (副作用)

(2)给父元素设置padding值 (副作用)

(3)父元素添加 overflow:hidden (副作用)

(4)父元素加前置内容生成。(推荐)

以第四种方法为例:

.parent {     
width : 500px;     
height : 500px;     
background-color : red;       
}.parent : before {     
content : " ";     
display : table;}.child {     
width : 200px;    
 height : 200px;     
 background-color : green;     
 margin-top : 50px;}
<div class="parent">    
<div class="child"></div> </div>

2、 浏览器间的盒子模型。

(1)ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值。

(2)标准盒子模型与IE模型之间的差异:

标准的盒子模型就是上述介绍的那种,而IE模型更像是 box-sizing : border-box; 其内容宽度还包含了border和padding。解决办法就是:在html模板中加doctype声明。

3、用盒子模型画三角形

<!DOCTYPE html><html>
  <head>
    <style>
        .triangle {
            width : 0;
            height: 0;
            border : 100px solid transparent;
            border-top : 100px solid blue; /*这里可以设置border的top、bottom、left、right
            四个方向的三角*/
        }
    </style>
  </head>
  <body>
    <div class="triangle"></div>
  </body></html>

页面显示结果为:


未标题-2-恢复的.jpg

Atas ialah kandungan terperinci 什么是css盒子模型. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membuat Kesan Glassmorfisme Dengan CSS Cara Membuat Kesan Glassmorfisme Dengan CSS Aug 22, 2025 am 07:54 AM

Untuk membuat kesan meniru kaca CSS, anda perlu menggunakan penapis latar belakang untuk mencapai latar belakang kabur, menetapkan latar belakang lut seperti RGBA (255,255,255,0.1), tambah sempadan halus dan bayang-bayang untuk meningkatkan rasa hierarki, dan pastikan terdapat kandungan visual yang cukup di belakang unsur-unsur; 1. Gunakan penapis latar belakang: blur (10px) untuk mengaburkan kandungan latar belakang; 2. Gunakan RGBA atau HSLA untuk menentukan latar belakang telus untuk mengawal tahap ketelusan; 3. Tambah 1PxSolidrgba (255,255,255,0.3) sempadan dan bayang-bayang kotak untuk meningkatkan tiga dimensi; 4. Pastikan bekas mempunyai latar belakang yang kaya seperti gambar atau tekstur untuk membentangkan kesan penembusan kabur; 5. Ia serasi dengan pelayar lama

Cara membuat sempadan bertitik di CSS Cara membuat sempadan bertitik di CSS Aug 15, 2025 am 04:56 AM

Gunakan CSS untuk membuat sempadan bertitik, hanya tetapkan atribut sempadan untuk bertitik. Sebagai contoh, "Sempadan: 3PXDotted#000" boleh menambah sempadan titik hitam 3-pixel ke elemen. Dengan menyesuaikan lebar sempadan, saiz titik boleh diubah. Sempadan yang lebih luas menghasilkan mata yang lebih besar. Anda boleh menetapkan sempadan bertitik untuk sisi tertentu, seperti "Border-top: 2PxDotteded". Sempadan bertitik sesuai untuk elemen peringkat blok seperti div dan input. Mereka sering digunakan dalam keadaan fokus atau kawasan yang boleh diedit untuk meningkatkan kebolehcapaian. Perhatikan kontras warna. Pada masa yang sama, berbeza dengan gaya garis pendek Dashed, bertitik membentangkan bentuk titik bulat. Ciri ini digunakan secara meluas dalam semua pelayar arus perdana.

Cara menukar gaya senarai dalam css Cara menukar gaya senarai dalam css Aug 17, 2025 am 10:04 AM

Untuk menukar gaya senarai CSS, gunakan jenis gaya pertama untuk menukar gaya peluru atau penomboran. 1. Gunakan jenis gaya senarai untuk menetapkan peluru UL ke cakera, bulatan atau persegi, dan bilangan OL adalah perpuluhan, rendah alpha, atas-alpha, rendah-Rom atau atas-Rom. 2. Keluarkan tag sepenuhnya dengan gaya senarai: Tiada. 3. Gunakan senarai gaya senarai: URL ('Bullet.png') untuk menggantikannya dengan imej tersuai. 4. Gunakan senarai gaya senarai: dalam

Cara Melaksanakan Tema Mod Gelap dengan CSS Cara Melaksanakan Tema Mod Gelap dengan CSS Aug 22, 2025 am 09:55 AM

Terdapat dua cara utama untuk melaksanakan Mod Gelap: Satu adalah dengan menggunakan media yang lebih suka warna-skema untuk menanyakan secara automatik untuk menyesuaikan keutamaan sistem, dan yang lain adalah untuk menambah fungsi pensuisan manual melalui JavaScript. 1. Gunakan lebih suka skema-skema untuk menggunakan tema gelap secara automatik mengikut sistem pengguna. Tidak ada keperluan untuk JavaScript, hanya menentukan gaya dalam pertanyaan media; 2. 3. Anda boleh menggabungkan kedua -duanya untuk membaca Localst Pertama apabila halaman dimuatkan.

Cara Menggunakan GRID-Template-areas di CSS Cara Menggunakan GRID-Template-areas di CSS Aug 22, 2025 am 07:56 AM

Thegrid-template-areaspropertyallowsdeveloperstercreateintuitive, readableLelayoutsbydefiningnamedgridareas; eachstringRepresentowandeachwordacolumncell, withgrid-areanamesonchildelementsmatchingthoseIntHetHetPlate, sedemikian "headerheaderererheaderererheadererheadererheadererheadererheadererheadererheadererheadererheadererheaderheaderheadererheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheader."

Cara menukar kursor dalam CSS Cara menukar kursor dalam CSS Aug 16, 2025 am 05:00 AM

UseBuilt-IncursortypesLikePointer, Bantuan, Ornot-AllowedtoprovideimmediatevisualFeedBackFordifferentInteractivements.2.applycustomcursorimageswithTheCursorPropertyuseSaurl, OptionallySpecyfyLySpotandingLudinglikeAtoToAllik.

Cara gaya yang diperintahkan dan tidak teratur dengan CSS Cara gaya yang diperintahkan dan tidak teratur dengan CSS Aug 22, 2025 am 07:59 AM

CssallowsfullcustomizationoforderedandunorderedliststoenhancereAdabilityanddesignconsistency.youcanchangedefaultmarkingsusingthelist-style-typeproperty, suchassettingunorderedliststousesquare, circle, ornobullets, ornobullets

Cara Menambah Bayang Kotak di CSS Cara Menambah Bayang Kotak di CSS Aug 18, 2025 am 11:39 AM

Untuk menambah bayang-bayang kotak, gunakan atribut box-shadow; 1. Sintaks asas adalah badai kotak: mendatar mengimbangi vertikal offset blur radius pengembangan radius bayang-bayang dalam warna; 2. Tiga nilai pertama diperlukan, selebihnya adalah pilihan; 3. Gunakan RGBA () atau HSLA () untuk mencapai kesan telus; 4. Radius pengembangan positif memperluaskan bayang -bayang dan nilai negatif dikurangkan; 5. Pelbagai bayang -bayang boleh ditambah dengan pemisahan koma; 6. Berlebihan harus dielakkan untuk memastikan penglihatan diuji pada latar belakang yang berlainan; Atribut ini disokong dengan baik oleh penyemak imbas, dan penggunaan yang munasabah dapat meningkatkan tekstur reka bentuk.

See all articles