普歌-赤道团队:盒子模型的相关阐述及重要知识点总结

文章目录

  • 前端css盒子模型的相关阐述及知识点总结
  • 一、首先要看透网页布局的本质是什么?
  • 二、盒子模型
    • 1.盒子模型(Box Model)组成
    • 2.盒子边框(border)
    • 3.表格的细线边框
    • 4.边框影响盒子的实际大小
    • 5.盒子的内边距
    • 6.盒子的外边距(margin)
    • 7.外边距合并
    • 8.清除内外边距
    • 9.圆角边框
    • 10.盒子阴影


前端css盒子模型的相关阐述及知识点总结

本文主要介绍盒子模型知识点总结


一、首先要看透网页布局的本质是什么?

网页布局的过程

  1. 先准备好相关的网页元素,网页元素基本都是盒子box
  2. 利用css设置好样式,然后摆放到相应的位置
  3. 给盒子里面装内容
    网页布局的核心本质:就是利用css摆盒子

二、盒子模型

1.盒子模型(Box Model)组成

所谓盒子模型:就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。
CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框、外边距、内边距和实际内容
普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第1张图片

盒子模型边框代码如下(示例):

    div {
            width: 200px;
            height: 200px;
            /*border-width: 5px;
            /*border-width: 为边框粗细,一般都用px作为单位;*/
            /*border-style: solid;*/
            /*border-style: dashed;*/
            /*border-style: solid为边框样式,solid为实线 dashed为虚,线dotted为点线;*/
            /*border-style: dotted;
            border-color: pink;*/
            border: 1px solid red;
            border-top: 1px solid blue;

        }
    </style>
</head>

<body>
    <div></div>

2.盒子边框(border)

CSS 边框属性允许你指定一个元素边框的样式和颜色。
盒子边框的语法:
border : border-width || border-style || border-color
边框样式 border-style 可以设置如下值:
1.none:没有边框即忽略所有边框的宽度(默认值)
2. solid:边框为单实线(最为常用的) dashed:边框为虚线
3. dotted:边框为点线
普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第2张图片

普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第3张图片
边框简写:
border: 1px solid red; (没有顺序)
边框的分开写法:
border-top: 1px solid red; (只设定上边框, 其余同理)

3.表格的细线边框

border-collapse 属性控制浏览器绘制表格边框的方式。它控制相邻单元格的边框.
表格细线边框的语法:
border-collapse:collapse;
1.collapse 意为合并 2.border-collapse: collapse; 表示相邻边框合并在一起

4.边框影响盒子的实际大小

边框会额外增加盒子的实际大小。因此我们有两种方案解决:

  1. 测量盒子大小的时候,不量边框.
  2. 如果测量的时候包含了边框,则需要 width/height 减去边框宽度
    代码如下(示例):
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>边框影响盒子的实际大小</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            border: 10px solid red;
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

5.盒子的内边距

普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第4张图片
注意:
当我们给盒子指定 padding 值之后,发生了 2 件事情:

  1. 内容和边框有了距离,添加了内边距。
  2. padding影响了盒子实际大小。即如果盒子已经有了宽度和高度,此时再指定内边框,会撑大盒子。
  3. 解决办法:如果保证盒子跟效果图大小保持一致,则让 width/height 减去多出来的内边距大小即可。
    盒子内边距即符合写法代码如下(示例):
    <title>盒子内边距及复合写法</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /*padding-left: 20px;
            padding-top: 20px;*/
            padding: 5px;
        }
    </style>
</head>

<body>
    <div>
        据中国天气网气象分析师王伟跃介绍,1951年以来,北京常年平均首个高温日一般出现在610日,
        今年相较常年平均高温日提前了18天,来得稍微有点偏早,但并不算是排在前几位的。
        北京高温日最早出现在1986年的57日,当天最高温达35.7℃,
        是自1951年以来高温来得最早的;最晚出现在1991725日,到7月才迎来35℃以上的高温天气,可谓是姗姗来迟。
    </div>
</body>

6.盒子的外边距(margin)

margin 属性用于设置外边距,即控制盒子和盒子之间的距离。
普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第5张图片
外边距可以让块级盒子水平居中,但是必须满足两个条件:

  1. 盒子必须指定了宽度(width)。
  2. 盒子左右的外边距都设置为 auto 。 .header{ width:960px; margin:0 auto;}
    常见的写法,以下三种都可以:
    margin-left: auto; margin-right: auto;
    margin: auto;
    margin: 0 auto;
    注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加 text-align:center就行.
    盒子外边距代码如下(示例):
 <title>盒子外边距</title>
    <style>
        div {
            width: 300px;
            height: 300px;
            background-color: pink;
        }
        /*.one {
            margin-bottom: 20px;
        }*/
        .two {
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <div class="one">1</div>
    <div class="two">2</div>

7.外边距合并

使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。
主要有两种情况:

  1. 相邻块元素垂直外边距的合并
  2. 嵌套块元素垂直外边距的塌陷
  3. 注意:
    使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。 1. 相邻块元素垂直外边距的合并
    当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有
    上外边距 margin-top ,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。取两个值中的
    较大者这种现象被称为相邻块元素垂直外边距的合并。
  4. 解决办法:
    尽量只给一个盒子添加 margin 值.
  5. 对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值。
  6. 解决方案:
    ① 可以为父元素定义上边框。
    ② 可以为父元素定义上内边距。
    ③ 可以为父元素添加 overflow:hidden

8.清除内外边距

网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致。因此我们在布局前,首先要清除下网页元素的内外边距。
清除盒子内外边距代码如下(示例):

语法:
* {
 padding:0; /* 清除内边距 */
 margin:0; /* 清除外边距 */
 }
 <html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除内外边距</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        span {
            background-color: pink;
            margin: 20px;
        }
    </style>
</head>

<body>
    123
    <ul>
        <li>abcd</li>
    </ul>
    <span>行内元素尽量只设置左右的内外边距</span>
</body>

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

9.圆角边框

在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。

border-radius 属性用于设置元素的外边框圆角
语法:border-radius:length;

  1. 参数值可以为数值或百分比的形式
  2. 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为 50%
  3. 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角
  4. 分开写:border-top-left-radius、
    border-top-right-radius、
    border-bottom-right-radius
    border-bottom-left-radius
    圆角边框代码如下(示例):
  <title>圆角边框</title>
    <style>
        div {
            width: 300px;
            height: 150px;
            background-color: pink;
            border-radius: 10px;
        }
    </style>
</head>

<body>
    <div></div>
</body>

10.盒子阴影

CSS3 中新增了盒子阴影,我们可以使用 box-shadow 属性为盒子添加阴影。

圆角边框代码如下(示例):

语法:
box-shadow: h-shadow v-shadow blur spread color inset;

普歌-赤道团队:盒子模型的相关阐述及重要知识点总结_第6张图片
注意:

  1. 默认的是外阴影(outset), 但是不可以写这个单词,否则造成阴影无效
  2. 盒子阴影不占用空间,不会影响其他盒子排列。

本文仅仅总结介绍了盒子模型的全部知识点,希望各位前端攻城狮给作者多提一些建议,文中有错误或者不当之处,评论区里请留言,作者定会及时改正!谢谢! 最后祝大家2021年,牛年大吉,牛运亨通!

你可能感兴趣的:(笔记,html,css,css3,html5)