CSS盒模型

612 阅读1分钟

两种盒模型

分别是

  • content-box内容盒:内容就是盒子的边界
  • border-box边框盒:边框才是盒子的边界

image.png

公式

  • content-box: width=内容宽度

  • border-box: width=内容宽度+padding+border

border-box更好用

因为content-box只包含内容,而border-box包含到边框,具体包含了内容、内边距、边框。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<style>
  .content-box {
  margin: 25px;
  border: 5px solid blue;
  padding: 15px;
  box-sizing: content-box;
  width: 100px;
  height: 100px;
}
.border-box {
  margin: 25px;
  border: 5px solid green;
  padding: 15px;
  box-sizing: border-box;
  width: 100px;
  height: 100px;
}</style>
<body>
  <div class="content-box">content-box</div>
  <div class="border-box">border-box</div>
</body>

</html>

image.png

image.png

image.png

margin合并

那些情况会合并

  • 第一个子元素和最后一个子元素会和父元素出现外边距重叠的情况(只有上下重叠,左右从不重叠)
  • 子元素之间会出现margin合并

如何阻止合并

  • 父子合并:
  1. padding/border挡住
  2. overflow: hidden 挡住
  3. display: flex 阻止
  • 兄弟合并:
  1. display:inline-block挡住

基本单位

长度单位

  • px像素
  • em相对于自身font-size的倍数
  • 百分数
  • 整数
  • rem
  • vw和vh

颜色

  • 十六进制#FF6600或者#F60
  • RGBA颜色rgb(0,0,0,)或者rgba(0,0,0,1)
  • hsl颜色hsl(度数,饱和度,亮度)

注:

  1. rgba(0,0,0,1)最后一个参数是透明度
  2. hsl(360,100%,100%)
  3. 度数:0~360 赤橙黄绿青蓝紫
  4. 饱和度:越小约暗,越大越鲜艳
  5. 亮度:越小越黑,越大越白