区分html 父元素 包含,html – 为什么margin不包含父元素?

博客探讨了CSS中边距包含的现象,当元素包含在其他元素中时,某些CSS属性如border、position、display和overflow会影响父元素是否包裹子元素的边距。尽管W3C规范没有明确描述这一行为,但所有浏览器在此问题上表现一致。文章通过示例解释了'自由边距'和'折叠边距'的概念,并讨论了overflow:auto如何影响边距包含。
摘要由CSDN通过智能技术生成

当具有边距的元素包含在另一个元素中时,父元素不会一致地包装该边距。

很多事情会导致父母包装孩子的边缘:

> border:solid;

> position:absolute;

> display:inline-block;

> overflow:auto

(这只是从小测试,毫无疑问有更多)。

我认为这与折叠边距有关,但是:

> W3C规范页面没有这种行为的描述。

>这里没有重叠边距。

>所有浏览器的行为似乎在这个问题上是一致的。

>该行为受与边距无关的触发器的影响

默认为overflow的元素的逻辑是什么:auto应该包含与overflow设置为auto的材质不同的材质。

为什么除了普通div的默认行为之外的所有事情都假定边缘由父母包含 – 为什么普通默认不包括边缘?

编辑:最后的答案是,W3C真的指定这种行为,但是

>’自由边距'(接触其父代的顶部或底部的边距不包含在父代)

>“折叠边距”(相邻边距允许重叠)。

演示:

Margins overextending themselves

body{

margin:0;

}

div.b{

background-color:green;

}

div.ib{

display:inline-block;

background-color:red;

}

div.pa{

background-color:yellow;

position:absolute;

bottom:0; right:0;

}

div.oa{

background-color:magenta;

overflow:auto;

}

div.brdr{

background-color:pink;

border:solid;

}

h1{margin:100px; width:250px; border:solid;}

Is the margin contained?

Is the margin contained?

Is the margin contained?

Is the margin contained?

Is the margin contained?

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值