V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

css 真是搞人啊 请问这里的文本为何能知道那个已经不在正常流里的元素?

  •  
  •   Newyorkcity · 2019-08-13 20:24:54 +08:00 · 980 次点击
    这是一个创建于 1929 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://codepen.io/AdmaEmail/pen/XWrXRrx

    我认为 div2 应该直接被 div1 遮住。。
    我认为这样是符合逻辑的:
    div1 因为 float:left 所以从正常流中消失,浮在了原本位置,于是 div2 在正常文本流中放在了原本 div1 的位置
    div1 和 div2 两个文本都很自然得放在块的左上角所以 div2 就被盖住了。。

    然而结果是 div2 不知为何知道了那个地方有 div1 在,纠正了文本的位置。。请问这一机制是怎样的?谢谢
    2 条回复    2019-08-14 10:54:27 +08:00
    napsterwu
        1
    napsterwu  
       2019-08-13 20:32:10 +08:00 via iPhone
    要加一个 position,具体原因可以 stackoverflow
    meepo3927
        2
    meepo3927  
       2019-08-14 10:54:27 +08:00   ❤️ 1
    float 机制还蛮复杂的,你的这种情况可以简单理解为:文字环绕机制。

    div2 虽然被 div1 挡住了,但是 div1 和 div2 内部内容的排布还是有关联的。

    如果想完全被遮住:给 div1 加 position: absolute,去掉 float:left

    如果想清除浮动:给 div2 加 clear: both
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:22 · PVG 04:22 · LAX 12:22 · JFK 15:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.