css盒子模型

盒子模型(box model)又叫盒模型,框模型。CSS将页面中的所有元素都设置为了一个矩形的盒子,之后对页面的布局就变成了将不同盒子摆放到不同的位置。

盒子的组成

一个盒子包括content(内容区),padding(内边距),border(边框)和margin(外边距)。其中,前三者决定盒子可见框的大小,margin决定盒子的位置。
在这里插入图片描述

content内容区

元素中的所有子元素和文本内容都在内容区进行排列;
内容区的大小由width(宽度)和height(高度)来设置;

padding内边距

内容区与边框间的距离就是内边距,如上图所示,共有四个方向的内边距,即padding-top,padding-right,padding-bottom,padding-right;
设置padding时可以进行简写,简写情况如下:

  1. 一个值:则上右下左四个方向全部设置;
  2. 两个值: 第一个值为上下方向的padding,第二个值为左右方向的padding;
  3. 三个值:第一个为上内边距,第二个为左右内边距,第三个为下内边距;
  4. 四个值:按上右下左顺序设置内边距

设置内边距会影响盒子大小,背景颜色会延申到内边距中。

border边框

边框就是盒子边缘,其大小也会影响盒子大小,设置边框必须至少包含三个样式:

  1. border-width: 边框的宽度,默认为3px,使用方法与padding基本一致。
  2. border-color: 边框颜色,省略不写则默认使用color的颜色。
  3. border-style: 边框样式,默认值为none,表示没有边框,可设置的值有:solid:实线;dotted:点状;dashed:虚线;double:双线。

可以使用border-xxx-xxx的形式转为一条边框设置样式,例如border-top-width:5px;表示单独将上边框宽度设置为5px,border-left-color:red;表示将左边框设置为红色。

可以使用border-xxx的形式设置一条边框的所有样式,样式没有顺序要求,例如border-top:orange solid 2px;表示将上边框设置为橘色,实线,2px。

可以使用border同时设置四个边框,同样没有顺序要求。

margin外边距

外边距不会影响盒子可见框的大小,但会影响盒子的位置,外边距也有四个方向可以设置:margin-top,margin-right,margin-bottom,margin-right。margin也可以进行简写,简写与padding相同。

margin可以设置正值和负值,当设置负值时,盒子向反方向移动。

margin-right在默认情况下即使修改也不会产生效果。

box-sizing

box-sizing用于设置盒子尺寸的计算方式,就是设置width与height的决定范围。
可选值:

  1. content-box:默认值,width与height用于设置content大小;
  2. border-box:width与height用于设置可见框的大小,即width与height指content,padding,border的总和。

outline轮廓线

用于设置元素的轮廓线,用法与border一样。

outline与border的区别:outline不会影响可见框的大小,即不会对页面布局造成影响。

box-shadow阴影

用于设置元素的阴影效果,不会影响页面布局。

用法:例如box-shadow: 5px 6px 7px red;用于使元素有一个向左偏移5px,向下偏移6px,模糊半径为7px,颜色为red的阴影。
box-shadow后的第一个值表示水平偏移量,第二个值表示垂直偏移量,第三个值表示模糊半径,第四个值表示阴影颜色。

border-redius圆角

border-redius用于给盒子边框设置圆角,值为圆的半径大小。

border-redius可以设置椭圆圆角,需要给定两个值,第一个代表横轴半径,第二个代表纵轴半径。

可以使用border-top-left-redius给左上边框设置,其他三个方向类似。一般情况下使用简写border-redius直接设置(顺时针):

  1. 一个值给四个方向同时设置相同圆角;
  2. 两个值对应左上与右下,右上与左下;
  3. 三个值对应左上,右上与左下,右下;
  4. 四个值对应左上,右上,右下,左下。

这种情况下要设置椭圆需用/隔开,例如border-redius: 10px/20px。

将元素设置为一个圆形可以使用百分比:border-redius:50%;

### 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盒子模型的一些基本介绍及常见应用场景下的实现方法论探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值