CSS盒子模型

CSS是网页设计的一项重要技术,而盒子模型又是CSS的核心内容。因此,正确理解盒子模型对网页的设计起着极其重要的作用。那么,关于盒子模型我们需要掌握哪些内容呢?

首先,什么是盒子模型?

 CSS盒子模式具备的属性: 内容(content)、填充(padding)、边框(border)、边界(margin)。如下图所示:

  

 

为什么叫它盒子模型呢?这是由于它和我们日常生活中的盒子完全类似。内容(CONTENT)就是盒子里装的东西;而填充(PADDING)就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框 (BORDER)就是盒子本身了;至于边界(MARGIN)则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出。而在网页 设计上,最重要的内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套)。

 

下面举个小例子具体介绍一下盒子模型。

实例一:


HTML代码:

<div class="first">
    <div class="second">

       womendoushi

    </div>

</div>


CSS代码:

.first

{

    width:202px;

    height:30px;

}

.second

{

    width:180px;

    height:30px;

    padding:20px;

    border:10px solid #f00;

    margin:5px;

}

下图是second盒子在网页的显示情况:


由内向外不同的颜色区域分别对应盒子模型的内容(content)、填充(padding)、边框(border)、边界(margin)属性。下图是各属性对应的数值大小:


我们可以看到设置的width、height属性对应的仅仅是内容区域,而不是整个盒子。相信看了上面这个例子,大家对盒子模型的内部结构有了一定的了解。

 

下面就让我们来看看两个盒子之间的关系。同样以上面的例子讲解,我们稍作改动:

实例二:

HTML代码:

<div class="first">

       <div class="second">

           womendoushi

       </div>

 </div>

 

CSS代码不变。

下图是最终的显示情况:


从HTML代码中我们知道second盒子是“装在”first盒子中的,而从CSS代码中我们发现:first盒子的总高度是30px,而second盒子的总高度是:height + 2 * padding + 2 * border + 2 * margin =30px + 2 * 20px + 2 * 10px + 2 * 5px = 100px  ,这样first盒子的高度就小于second盒子的高度,而在浏览器中我们却发现一切都显示正常,比较人性化吧,这也是CSS盒子模型与我们日常生活中盒子的本质区别。

 

不过,我们也不要为这种人性化设计太过高兴,万事都有利弊之分,我们只要稍作改动,问题立马就出来了,下面让我们试试:

实例三:

HTML代码:

<div class="first">

            <div class="second">

                womendoushi

            </div>

        </div>

        <div  class="third">

            现在还正常吗?

        </div>

</div>

同样,CSS代码不变。


显示结果如下:


看到结果了吧,你还会为它的人性化设计而高兴吗?下面让我们分析一下原因。由于second盒子是包含在first盒子中的,所以在确定third盒子的位置时不会考虑second盒子,仅会考虑first盒子,这样就会导致上面的悲剧。

 

相信看了以上三个例子,大家对CSS盒子模型的内部结构和盒子之间的位置关系有了一定的了解,但想要更好、简洁的布局网页内容,还必须了解浮动(float)技术。 所谓浮动呢,我理解就是要有一个文字围绕图片(当然也可以是别的)的效果,效果图如下:

 

关于浮动呢,我还没有深入了解,这里就不误人子弟了,CSS盒子模型也就介绍到这里了。


### CSS 盒子模型详解 CSS盒子模型是网页设计和布局中的核心概念之一。它描述了HTML文档结构化的方式以及如何通过样式控制这些元素的空间分配。 #### 1. 盒子模型的组成部分 每个HTML元素都可以看作是一个矩形盒子,该盒子由以下几个部分组成[^1]: - **内容 (Content)**: 这是盒子的主要区域,用于放置文本或其他媒体内容。 - **内边距 (Padding)**: 它位于内容边缘与边框之间的空白区域,用来增加内容周围的可读空间。 - **边框 (Border)**: 边框围绕着内边距和内容,可以设置不同的宽度、颜色和风格来定义边界线。 - **外边距 (Margin)**: 外边距是在边框之外的一片透明区域,用于分隔相邻的盒子并防止它们相互接触。 #### 2. 盒子模型属性 以下是几个重要的盒子模型相关属性及其功能说明: ##### 2.1 `width` 和 `height` 属性 这两个属性分别设定盒子的内容区宽度和高度。需要注意的是,默认情况下,指定的尺寸仅适用于内容区域而不包括 padding, border 或 margin 的值[^2]。 ##### 2.2 `border` 边框属性 可以通过此属性自定义边界的外观,比如粗细、线条样式(实线、虚线等)以及颜色[^3]。 ##### 2.3 `padding` 内边距 用于调整内部填充量,即内容与其周围边框间的距离。它可以单独应用于上、右、下、左各个方向或者统一应用到所有侧面[^1]。 ##### 2.4 `margin` 外边距 负责管理与其他元素之间外部间距的部分。同样支持多向配置,并且当两个垂直 margins 邻近时会发生折叠现象——取两者较大者作为最终间隔[^2]。 ##### 2.5 盒子模型占位计算 总的实际占用面积等于 content area 加上其四周的所有附加层厚度之和。例如给定一个具有固定 width/height 值为100px 的 div 元素加上额外参数如下所示,则实际渲染出来的大小将是 `(100 + 5 + 5 + 20 + 20)` px × `(100 + 5 + 5 + 20 + 20)` px: ```css div { width: 100px; height: 100px; border: 5px solid black; /* 上下左右均为5像素 */ padding: 20px; /* 各侧均设为20像素 */ } ``` #### 3. box-sizing 属性 为了简化复杂布局的设计过程,引入了一个名为 `box-sizing` 的新特性。默认行为遵循传统标准模式 (`content-box`) ,其中声明的 dimensions 不含 paddings/borders;而另一种选项叫做 alternate model(`border-box`) 可让开发者更直观地操作整体尺寸因为此时所指代的就是整个可视范围内的确切数值. ```css /* 使用 border-box 来改变盒模型的行为方式*/ * { box-sizing: border-box; } ``` 以上便是关于CSS盒子模型的一些基本介绍及常见应用场景下的实现方法论探讨。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值