CSS盒子模型

本文详细介绍了CSS盒子模型的概念,包括内容、内边距、边框和外边距等组成部分,并展示了如何通过具体属性来设置这些部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

盒子模型

一、认识盒子

  • 其实盒子在我们生活中随处可见
  • 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 由上面这个图可以看出一个盒子由内容的宽(width)高(height)、内边距(padding)、边框(border)、外边距(margin)组成

二、HTML的每一个元素都是一个盒子

  • 其实,我们可以把html的每一个元素都可以看成是一个盒子
  • 在这里插入图片描述

三、盒子模型(Box Model)

  • HTML的每一个元素都可以看作是一个盒子,可以具备以下4个属性
  • 内容(content)
    • 元素内容的width/height
  • 内边距(padding)
    • 元素内容与元素之间空隙
  • 边框(border)
    • 元素自己的边框
  • 外边距(margin)
    • 元素与元素之间的距离

在这里插入图片描述

四、盒子模型的四边

  • 因为盒子有四边,所以padding/border/margin都有left、right、top、bottom四个边
  • 在这里插入图片描述

五、在浏览器的开发工具中

在这里插入图片描述

六、内容-宽度和高度

  • 设置内容是通过宽度和高度设置的:

    • 宽度设置:width
    • 高度设置:height
  • 注意:对应行内非替换元素来说,设置宽度高度无效

  • 另外我们还可以设置如下属性:

    • min-width:最小宽度,无论内容多少,宽度都大于或等于min-width
    • max-width:最大宽度,无论内容多少,宽度都小于或等于max-width
    • 移动端适配时, 可以设置最大宽度和最小宽度;
  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .box {
          background-color: red;
          max-width: 750px;
          min-width: 500px;
          margin: 0 auto;
        }
      </style>
    </head>
    
    <body>
    
      <div class="box">
        我是box元素
      </div>
    
    </body>
    
    </html>
    
  • 在这里插入图片描述

  • 下面两个属性不常用:

    • min-height:最小高度,无论内容多少,高度都大于或等于min-height
    • max-height:最大高度,无论内容多少,高度都小于或等于max-height
  • 在这里插入图片描述

  • 其实元素宽度的初始值默认是auto(由上图看出)

七、内边距 - padding

  • padding属性用于设置盒子的内边距, 通常用于设置边框和内容之间的间距

  • padding包括四个方向, 所以有如下的取值:

    • padding-top:上内边距
    • padding-right:右内边距
    • padding-bottom:下内边距
    • padding-left:左内边距
  • 在这里插入图片描述

  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .box {
          border: 1px solid #000;
          display: inline-block;
          /* padding的四个值 */
          padding-top: 10px;
          padding-right: 20px;
          padding-bottom: 30px;
          padding-left: 40px;
        }
      </style>
    </head>
    
    <body>
      <div class="box">我是box</div>
    </body>
    
    </html>
    
  • padding单独编写是一个缩写属性:

    • padding-top、padding-right、padding-bottom、padding-left的简写属性
    • padding缩写属性是从零点钟方向开始, 沿着顺时针转动的, 也就是上右下左;
  • padding并非必须是四个值, 也可以有其他值;

    • 在这里插入图片描述

    • <!DOCTYPE html>
      <html lang="en">
      
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
          .box {
            border: 1px solid #000;
            display: inline-block;
            /* padding的四个值 */
            /* padding-top: 10px;
            padding-right: 20px;
            padding-bottom: 30px;
            padding-left: 40px; */
      
            /* padding三个值 : 省略的left,使用right值*/
            /* padding: 10px 20px 30px; */
             /* padding二个值 : 省略的left,使用right值,省略bottom,使用top值*/
             /* padding: 10px 20px 30px; */
             /* padding一个值 : 四边都是相同值*/
             padding: 10px;
          }
        </style>
      </head>
      
      <body>
        <div class="box">我是box</div>
      </body>
      
      </html>
      
    • 在这里插入图片描述

八、边框-border

  • border用于设置盒子的边框

    • 在这里插入图片描述
  • 边框相对于content/padding/margin来说比较特殊一点

    • 边框有宽度:width
    • 边框有样式:style
    • 边框有颜色:color
  • 设置边框的方式

    • 边框宽度

      • border-top-width 、border-right-width、border-bottom-width、border-left-width
      • border-width是上面4个值的简写
    • 边框样式

      • border-top-style、border-right-style、border-bottom-style、border-left-style
      • border-style是上面4个值的简写
    • 边框颜色

      • border-top-color、border-right-color、border-bottom-color、border-left-color
      • border-color是上面4个值的简写
    • <!DOCTYPE html>
      <html lang="en">
      
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
          .box {
            /* width */
            /* border-top-width: 10px;
            border-right-width: 20px;
            border-bottom-width: 30px;
            border-left-width: 40px; */
            border-width: 10px 20px 30px 40px;
      
            /* style */
            /* border-top-style: solid;
            border-right-style: dashed;
            border-bottom-style: double;
            border-left-style: groove; */
            border-style: solid dashed double groove;
      
      
            /* color */
            /* border-top-color: red;
            border-right-color: blue;
            border-bottom-color: beige;
            border-left-color: coral; */
      
            border-color: red blue beige coral;
      
      
            width: 300px;
            height: 300px;
      
          }
        </style>
      </head>
      
      <body>
      
        <div class="box">
      
        </div>
      
      </body>
      
      </html>
      
    • 效果如下图所示

    • 在这里插入图片描述

  • 边框的样式设置值

    • 边框样式有很多,我们阔以了解以下几个
      • groove:凹槽, 沟槽, 边框看上去好象是雕刻在画布之内
      • ridge:山脊, 和grove相反,边框看上去好象是从画布中凸出来
      • 在这里插入图片描述
  • 同时设置的方式

    • border-width
    • border-style
    • border-color
    • border: 统一设置4个方向的边框
  • 样式、颜色、宽度书写顺序随意

    • MDN上的书写规则:
      • 在这里插入图片描述

      • 注意:如果边框的样式未定义,它将不可见。 这是因为样式默认为none。

九、外边距-margin

  • margin属性用于设置盒子的外边距,通常用于设置元素与元素之间的距离

    • margin包括四个方向,可以取以下四个值:

      • margin-top: 上外边距
      • margin-right:右外边距
      • margin-bottom:下外边距
      • margin-left:左外边距
    • <!DOCTYPE html>
      <html lang="en">
      
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
          .box {
            height: 100px;
            background-color: royalblue;
          }
      
          .content {
            height: 100px;
            background-color: red;
            margin-top: 30px;
          }
        </style>
      </head>
      
      <body>
      
        <div class="box"></div>
        <div class="content"></div>
      
      </body>
      
      </html>
      
    • 在这里插入图片描述

    • margin单独编写是一个缩写属性

      • margin-top、margin-right、margin-bottom、margin-left的简写

      • margin缩写属性是从零点开始,按顺时针方向,即上右下左

      • 在这里插入图片描述

      • <!DOCTYPE html>
        <html lang="en">
        
        <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <style>
            .box {
              display: inline-block;
              width: 100px;
              height: 100px;
              background-color: royalblue;
        
              /* margin-bottom: 30px; */
              margin: 0 10px;
            }
        
            .content {
              display: inline-block;
              width: 100px;
              height: 100px;
              background-color: red;
              /* margin-top: 30px; */
              margin: 0 10px;
            }
          </style>
        </head>
        
        <body>
        
          <div class="box"></div>
          <div class="content"></div>
        
        </body>
        
        </html>
        
      • margin也并非四个值,也可以有其他的

    • margin的其他值

      • 在这里插入图片描述
    • MDN语法格式:

      • 在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值