1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > CSS 盒子模型(border padding margin)

CSS 盒子模型(border padding margin)

时间:2020-12-10 19:29:00

相关推荐

CSS 盒子模型(border padding margin)

CSS盒子模型

Css盒子模型本质上是一个盒子,封装周围的html元素,他包括边框、内容、外边距、内边距。

1.边框

边框(border)可以设置元素的边框,他由三部分组成:边框宽度(粗细)、边框样式、边框颜色。

border: border-width boder-style border-color

<style>div {width: 300px;height: 200px;/* border-width 边框的粗细 一般情况下都用 px */border-width: 5px;/* border-style 边框的样式 solid 实线边框 dashed 虚线边框 dotted 点线边框*/border-style: solid;/* border-style: dashed; *//* border-style: dotted; *//* border-color 边框的颜色 */border-color: yellow;}</style>

边框的复合写法:border: 1px solid red; (没有顺序)

边框的分开写法:border-top: 1px solid red; (只设置上边框,其余边框的设 置同理)

表格的细线边框(border-collapse)

border-collapse属性控制浏览器绘制表格边框的方式,控制相邻单元格的边框。

border-collapse: collapse;

collapse:合并表示相邻边框合在一起

边框会影响盒子的实际大小(变宽会额外增加盒子的实际大小),有如下两种解决办法:

1.测量盒子大小时不量边框。

2.若测量盒子时包含了边框,则需要用height、width减去边框。

<style>/* 我们需要一个200*200的盒子, 但是这个盒子有10像素的红色边框 */div {width: 180px;height: 180px;background-color: pink;border: 10px solid red;}</style>

2.内边距

内边距(padding)是指边框与内容的距离

padding-left(左内边距)/right(右内边距)/top(上内边距)/bottom(下内边距)

注意:当我们给盒子指定padding之后

1.添加了内边距,内容和边框有了距离。

2.padding影响了盒子的实际大小,也就是说若盒子有宽度和高度,此时指定内边框会撑大盒子

解决方案

如果想让盒子跟效果图保持一样的大小,则让height/width减去多余出来的内边距即可

padding不会撑开盒子的情况

没有指定盒子的宽度/高度,此时padding不会撑开盒子的大小

<style> h1 {height: 200px;background-color: yellow;padding: 30px;}div {width: 300px;height: 100px;background-color: red;}div p {padding: 30px;background-color: blue;}</style></head><body><h1></h1><div><p></p></div></body>

3.外边距(margin)

外边距(margin)控制盒子与盒子之间的距离

margin-left/right/top/bottom

外边距的典型应用:可以让盒子水平居中,但是必须满足以下条件:

块级盒子必须指定宽度左右外边距设置为auto

常见的三种写法:

margin-left: auto; margin-right:auto; margin: auto; margin: 0 auto;

若想要给行内元素或行内块元素设置水平居中,则只需给其父元素添加text-align:center即可。

外边距合并

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并问题。

1.上下相邻的块元素垂直外边距的合并:

若两个都是正数,则选取两个外边距中的较大值若都是负数,选取绝对值较大的若一正一负,则取两值的和

解决方案:尽量只给一个盒子添加margin值

2.左右相块元素外边距的合并:

选取两个外边距的和

嵌套元素垂直外边距的塌陷

对于两个嵌套关系的块元素(父子关系),父元素有上外边距的同时子元素也有上外边距,此时父元素会塌陷较大的外边距值

解决方案:

<style>.yellow{height: 400px;width: 400px;background-color: pink;/* margin: 0 auto; 盒子居中 */margin-top: 50px;/* padding-top: 50px; 方法一:为父元素定义上内边距 *//* border-top: transparent 1px solid; 方法二:为父元素定义上边框 *//* overflow: hidden; *//* 方法三:为父元素添加overflow: hidden */}.skyblue{height: 200px;width: 200px;background-color: skyblue;/* margin-top: 100px; 父元素和子元素同时具有上边距,则此时父元素出现塌陷 */margin-top: 100px;}</style></head><body><div class="yellow"><div class="skyblue"></div></div></body>

清除内外边距

网页元素很多都带有默认的页面边距,清除他们的方法:

* {padding: 0;margin: 0;}这也是css的第一行代码

行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距,但是转换为块级元素和行内块元素就可以了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。