距离生产美

2018-08-26 22:47:00 +08:00
 banxi1988

那天下午我跟简坐在学校操作草地上聊天

夕阳的余晖照射着我们

阳光在青草的缝隙间拉长了倒影

温暖的晚风轻拂着简刘海前的几根发丝

淡淡的发香迎面扑来,我望着远山上的烟囱。

对简说: 我觉得我们坐得太近了。感觉相距 50cm 比较好。

简一脸惊讶说:为什么啊?

我说:距离产生美啊!,坐太近,你脸上的痘印很显眼。

简生气的说:哼!那我还是离你 100 cm 比较好,你不觉得你脸上的麻子比较显眼吗?

说完,简就坐到距离我 100cm 远的地方去了,然后赌气似的把脸转到另一边去了。 我看着远方烟囱冒出的缕缕白烟,明白了一个道理,然后写下了如下 CSS 代码。

<template>
  <div class="grassground">
    <boy id="me"/>
    <girl id="jian"/>
  </div>
</template>
<style>
#me{
  margin-bottom:50cm;
}
#jian{
  margin-top: 100cm;
}
</style>

我们之间的距离是 100cm 而不是 100cm + 50cm = 150cm

因为我想起了我最讨厌的 CSS Bug 级奇怪的特性,margin-topmargin-bottom 会出现 margin collapsing 的现象。

参考 :Master margin collapsing

1618 次点击
所在节点    前端开发
3 条回复
zn
2018-08-26 22:56:23 +08:00
margin 指的是与自身边界的距离,不是与“其他对象”的距离
zn
2018-08-26 23:11:35 +08:00
想象一下,A 的 margin 是 10px,B 的 margin 是 20,那么 A、B 排一起的时候,A、B 距离应该是多少? 10px ? 20px ?都不合理,所以结果必然是 10+20=30px,这是最合理的方案。
banxi1988
2018-08-26 23:23:22 +08:00
@zn #2 30px 不考虑 margin collapsing?
虽然我认为 margin collapsing 是一个很操蛋的特性,但是已经这样了,没有办法。
当出现 margin collapsing 时,margin 的意义就变成了文档流的一个对象距离的请求了。CSS 布局引擎综合双方请求,再根据 margin collapsing 规则来计算出一个值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/483429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX