哪位 css 大神帮我解释一下下面三个 demo。。。

2017-02-15 15:19:40 +08:00
 crazyxhz

demo1

demo2

demo3

2917 次点击
所在节点    CSS
12 条回复
vizards
2017-02-15 15:35:33 +08:00
在一个相对定位( position 属性的值为 relative )的元素上设置 top 、 right 、 bottom 和 left 属性会使其偏离其正常位置。其他的元素的位置则不会受该元素的影响发生位置改变来弥补它偏离后剩下的空隙。

http://zh.learnlayout.com/position.html
crazyxhz
2017-02-15 15:43:18 +08:00
crazyxhz
2017-02-15 15:45:06 +08:00
@vizards 这个我知道啊。。。
vizards
2017-02-15 15:58:10 +08:00
r#3 @crazyxhz 之前没看清,,不好意思,你给 wapper 设置一个 overflow:hidden 应该就是你想要的效果了
vizards
2017-02-15 15:58:35 +08:00
r#4 @vizards wapper => wrapper
vizards
2017-02-15 16:02:57 +08:00
CSS2.1 的盒模型中规定
vizards
2017-02-15 16:05:31 +08:00
所有毗邻的两个或更多盒元素的 margin 将会合并为一个 margin 共享之。毗邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、 Padding 或 Border 分隔。这就是外边距共享问题。所以只要破坏掉毗邻的要求就可以了。
freeminder
2017-02-15 16:11:35 +08:00
第一个 demo 是粉色方框的负 marigin 折叠了
freeminder
2017-02-15 16:13:10 +08:00
第二个 demo 也是 margin 折叠,按照你的写法红框和蓝框直接始终重合粉框的负 margin
chztv
2017-02-15 16:28:43 +08:00
给 content 加上 position: absolute 不就行了,你就想要粉色那个 box 居中的效果吧?
chztv
2017-02-15 16:34:37 +08:00
@crazyxhz absolute 和 relative 一定要明白其含义,你的 content 到底想要相对还是绝对定位?相对的话不要用 margin 来定位,可以在 wrapper 里用 padding 更方便一些;绝对的话,可以用 top left right bottom 设置来定位。
crazyxhz
2017-02-15 17:22:53 +08:00
@chztv
嗯,主要是想了解 1,2 造成的原因,功能实现有很多种方法

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

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

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

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

© 2021 V2EX