Newyorkcity
V2EX  ›  问与答

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

  •  
  •   Newyorkcity · Aug 13, 2019 · 1286 views
    This topic created in 2463 days ago, the information mentioned may be changed or developed.
    https://codepen.io/AdmaEmail/pen/XWrXRrx

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

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

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

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

    如果想清除浮动:给 div2 加 clear: both
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3352 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:31 · PVG 08:31 · LAX 17:31 · JFK 20:31
    ♥ Do have faith in what you're doing.