5.1 盒模型—content

div标签

可以理解为在网页中画一个矩形,默认情况下宽度等于父标签宽度,高度为0px

设置div标签

  1. <div class="box"></div>
  1. .box {
  2. width: 200px;
  3. height: 100px;
  4. background-color: purple;
  5. }

百分比尺寸

  1. <div class="father">
  2. <div class="son"></div>
  3. </div>
  1. .father {
  2. width: 200px;
  3. height: 80px;
  4. background-color: #5b6dcd;
  5. }
  6. .son {
  7. width: 60%;
  8. height: 20%;
  9. background-color: #fec03e;
  10. }

这里子标签的宽和高分别是父标签的60%和20%


5.2 盒模型—padding

padding

作用:是用来给边框加上内边距
例子:

  1. .box {
  2. padding: 20px;
  3. }
  4. //等同于下面
  5. .box {
  6. padding-top: 20px; /*上内边距*/
  7. padding-right: 20px; /*右内边距*/
  8. padding-bottom: 20px; /*下内边距*/
  9. padding-left: 20px; /*左内边距*/
  10. }
  11. //还可以简化成下面
  12. div{
  13. padding:20px 20px 20px 20px;
  14. }
  15. //从左往右依次代表**上、右、下、左**。

若上下一样,左右一样
  1. div{
  2. padding-top: 20px;
  3. padding-bottom: 20px;
  4. padding-left: 30px;
  5. padding-right: 30px;
  6. }
  7. //等同于
  8. div{
  9. padding: 20px 30px;
  10. }

若上下一样,左右不一样
  1. div{
  2. padding-top: 20px;
  3. padding-bottom: 20px;
  4. padding-left: 10px;
  5. padding-right: 30px;
  6. }
  7. //等同于
  8. div{
  9. padding: 20px 30px 20px 10px;
  10. }
  1. div{
  2. padding-top: 30px;
  3. padding-bottom: 20px;
  4. padding-left: 10px;
  5. padding-right: 10px;
  6. }
  7. //等同于
  8. div{
  9. padding: 30px 10px 20px;
  10. }

5.3 盒模型—border

作用:border就是包裹在padding外面的一条线。

设置border

  1. .box {
  2. /* 设置矩形大小 */
  3. width: 200px;
  4. height: 30px;
  5. /* 设置边框线 */
  6. border-width: 2px;
  7. border-color: grey;
  8. border-style: solid;
  9. }
  10. /*边框的简写*/
  11. .box {
  12. .....
  13. border: 2px solid grey;
  14. }

补充:顺序可以忽略。

分别设置边框

  1. .box {
  2. /* 添加顶部border */
  3. border-top: 1px solid black;
  4. /*添加右侧border*/
  5. border-right: 3px solid orange;
  6. /*添加底部border*/
  7. border-bottom: 5px dashed pink;
  8. /*添加左侧border*/
  9. border-left: 10px dashed purple;
  10. }

补充:border的设置具有层叠性

无边框

  1. .box {
  2. border-bottom: none;
  3. }

圆角的设置

1.统一设置

  1. div {
  2. width: 200px;
  3. height: 200px;
  4. /*圆角的设置*/
  5. border-radius: 18px;
  6. border: 1px solid black;
  7. }

2.分开设置

  1. .box {
  2. width: 200px;
  3. height: 200px;
  4. background-color: violet;
  5. border-top-left-radius: 5px;
  6. border-top-right-radius: 10px;
  7. border-bottom-left-radius: 20px;
  8. border-bottom-right-radius: 15px;
  9. }

阴影

  1. .box {
  2. width: 200px;
  3. height: 200px;
  4. border: 1px solid #c4c4c4;
  5. /* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */
  6. box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
  7. border-radius: 15px;
  8. }
  • ×偏移量:在x轴上移动,向右为正
  • y偏移量:在y轴上移动,向下为正
  • 阴影模糊半径:就是边线的清晰度
  • 阴影扩散半径:就是向外伸展
  • 阴影颜色:就是矩形下面那个矩形的背景色。

5.4 盒模型—margin(外边距)

示意图:
第五章:CSS——盒模式 - 图1
代码实现:

  1. .box{
  2. /*总写*/
  3. margin: 20px;
  4. /*分开写*/
  5. margin-top: 20px;
  6. margin-right: 20px;
  7. margin-bottom: 20px;
  8. margin-left: 20px;
  9. }

两个盒子之间的margin的计算

水平距离
第五章:CSS——盒模式 - 图2

左右的距离取两者之和。

垂直距离
第五章:CSS——盒模式 - 图3

上下距离取最大值。

设置盒子左右居中

前提条件:父盒和子盒必须要有宽度。
代码实现:

  1. <div class="father">
  2. <div class="son"></div>
  3. </div>
  1. .father{
  2. width:400px;
  3. height:200px;
  4. border: 1px solid #ccc;
  5. }
  6. .son{
  7. width:200px;
  8. height:100px;
  9. margin:0 auto;
  10. border: 1px solid #ccc;
  11. }

5.5 盒模型—display:

一般display有这四个属性 block/none/inline/inline-block
dispaly:block:使行元素转换成块元素。
dispaly:inline:使块元素转换为行元素。
display:inline-block: 使行元素具有块元素的性质。
dispaly:none:使标签隐藏。

行内元素的性质:

  1. 不能设置宽高。
  2. 可以设置padding。
  3. 可以设置左右margin,不可以设置上下margin。

    补充知识点:块元素可以设置宽高,行元素则不行。