博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS:不同元素margin:auto的计算
阅读量:6965 次
发布时间:2019-06-27

本文共 1403 字,大约阅读时间需要 4 分钟。

关于什么元素的分类可以看我这篇文章

行内级元素

  • Inline,非置换元素:如果margin值为auto,则margin-leftmargin-right的计算值也就为0

  • Inline,置换元素:同上

  • Inline-block,置换元素在文档流中:同上

  • Inline-block,非置换元素在文档流中:同上

块级元素

块级非置换元素,在文档流中

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block

下面的情况下,如果margin值为auto

  • 如果width是auto值,那么其他值是auto的值就为0

  • 如果margin-leftmargin-right的值为auto,width的值不为auto,那么就相对于包含块水平居中。

块级置换元素,在文档流中

同块级非置换元素一样。

块级非置换元素,不在文档流中(Absolutely positioned, non-replaced elements)

// 当top/height/bottom 这3个值不是auto,而 margin:auto ,则:margin-top=margin-bottom=(包含块的高度 – 定位元素高度)/2'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' + 'bottom' = height of containing block
        

clipboard.png

块级置换元素,不在文档流中

同上

总结

行内级元素

行内级置换元素和非置换元素,在margin值为auto时,margin-leftmargin-auto的计算值都为0。

块级元素

  1. 块级置换元素和非置换元素在文档流中:

    'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block
  • 如果width是auto值,那么其他值是auto的值就为0

  • 如果margin-leftmargin-right的值为auto,width的值不为auto,那么就相对于包含块水平居中。

2.块级置换元素和非置换元素不在文档流中。

见上文。

The percentage is calculated with respect to the width of the generated box’s containing block. Note that this is true for margin-top and margin-bottom as well.

abs-non-replaced-height

转载地址:http://eabsl.baihongyu.com/

你可能感兴趣的文章
python第二阶段 第六天 模块
查看>>
java基础--集合Connection/Map
查看>>
做三年地方网站不如别人打一场麻将
查看>>
排序总结
查看>>
使用rsync实现数据实时同步备份--实战
查看>>
mybatis中的#和$的区别
查看>>
从带分隔符的文本导入数据
查看>>
python非官方的二进制扩展包下载地址
查看>>
Python回顾与整理5:映像和集合类型
查看>>
关于B站除夕夜被攻击
查看>>
jQuery learn - 1 - 选择元素 && CSS
查看>>
svn merge
查看>>
pxe和kickstart无人值守安装
查看>>
getGeneratedKeys自动获取主键的方法
查看>>
初来咋到的菜鸟
查看>>
国外设计师眼中的原型工具Mockplus
查看>>
SBIT典型应用
查看>>
我的友情链接
查看>>
Linux下如何执行Shell脚本
查看>>
我的友情链接
查看>>