HTML 盒模型+边距篇+垂直居中

HTML 盒模型+边距篇,

padding 内边距

* 设置padding
* 1. 分别设置某个方向的padding
* 	 padding-方位词
* 	 方位词: top bottom left right
* 2. 合写
* 	 padding:
* 		一个值 表示: 四个方向都设置同一个值
* 		两个值  表示: 上下  + 左右
* 		三个值  表示: 上  + 左右  + 下
* 		四个值  表示: 上  + 右  + 下  + 左
* 如果有某个方向的值不需要设置, 可以直接设置成0, 此时px可以不写
				

margin 外边距

注:写法参照padding

盒模型

  • 盒模型简介


HTML文档是由是由一个个的HTML标签组成的
盒模型: 反应的是每个HTML元素的结构的组成

注意事项: 每个HTML元素都有自己的盒模型结构

1. 盒模型的各个组成部分.
2. 盒模型是如何影响元素的位置的.
3. 在盒模型的使用过程中坑点
	

盒模型的组成部分: 
盒模型由4部分组成, 这4部分是逐层包裹, 向外延伸,分别是

1. content(内部): 标签内容的显示区域; 如果元素可以设置宽高, 宽高设置的区域就是content区域; 如果元素不支持设置宽高, 其撑出的大小就是content区域
2. padding(内边距): 用于隔开content与border之间的距离的, 背景色会渲染进padding区域
3. border(边框): 元素的边界, 背景色会渲染进border区域; 边框类型是必须的, 边框宽度和边框颜色非默认值 , 宽度默认值3px, 颜色默认继承于当前元素的color值
4. margin(外边距): 用来隔开元素与元素之间的距离, 背景色不会渲染进margin区域
		
  • 盒模型计算规则

    在普通盒模型的计算规则下, 一个HTML元素的盒子大小:

    ​ 盒子的宽度 = width + 左右padding + 左右border-width + 左右margin

    ​ 盒子的高度 = height + 上下padding + 上下border-width + 上下margin

    注: 除了有普通盒模型之外, 还有一种怪异盒模型

    ​ 两个盒模型的组成部分, 写法, 用法没有区别

    ​ 区别是计算盒子大小的方法不同

  • margin 塌陷

  1. 相邻兄弟元素在垂直方向上margin 会出现融合

    融合的标准: 取两者间的较大值充当融合值

    解决办法:

    ​ 1.1 尽量只给一个元素设置margin值

    ​ 1.2 给两个元素中的任何一个添加display:inline-block

2. 父子关系的元素在垂直方向上margin 会出现传递

传递的规则: 子元素添加了垂直方向的margin值, 该值会传递给父元 素, 导致子元素没有移动到预期的位置. 父元素却发生了移动.

解决办法:

​ 2.1. 利用父级的padding代替子级的margin;

​ 2.2. 给父级加边框;

​ 2.3. 给父级添加overflow:hidden;

​ 2.4. 给父级或者子级添加display:inline-block;

  • auto 值

    ​ auto不是一个css样式, 而是一个样式值

    ​ auto值表示自适应, 一般可以通过设置auto值, 灵活的进行块级元素的布局

    元素居中的办法:

    ​ 1. 行元素居中

    水平居中:给行元素的父级设置: text-align:center
    垂直居中: (单行文本)让父级的行高等于父级的height

    2. 块元素居中

    水平居中: width要给定值, 左右margin值为auto
    垂直居中: 结合定位和margin的auto值实现(不但可以实现垂直居中, 水平也可以)

    **如果想要块级元素在父级的垂直方向上居中**
      1. 想办法脱离文档流(浮动, 定位)  选择:absolute定位
      2. 让元素距离上下为0, 利用上下的margin满足条件, 使元素被挤到垂直方向的中间位置
    

    注: 一般情况下, 我们会给width, margin这两个值设置为auto

    ​ 2.1 如果width, margin-left, margin-right三个值里有一个值为auto, 其余两个要为定值

    ​ 2.2 如果width, margin-left, margin-right三个值都为定值且发生了冲突, 系统会强制修改margin-right的值

    ​ 2.3 如果margin-left和margin-right的值都为auto, 那么width必须给定值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值