欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

html——影响文档流属性详解

程序员文章站 2022-04-25 11:38:33
...

下面哪个属性不会让 div 脱离文档流(normal flow)?

position: absolute;

  • position: fixed;

  • position: relative;

  • float: left;


  • 答案为c
    有些人不太理解自己太误人子弟,网上摘抄了下供大家参考。

    所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素。【 脱离文档流即是元素打乱了这个排列】  或是从排版中拿走 
    所以我们可以知道,除了 position: absolute;和 position: fixed;会直接将元素从排版中拿走从而脱离文档流之外,设置float对象也会 “打乱这个排列”从而也被称为脱离文档流。
    float:right 显然就打乱了从左到右的文档流排列,而为什么说float:left也会脱离文档流呢?
    我的理解是当子元素设置了float属性而父元素没有设置(或保持默认的 position:static ),则子元素会从父元素中溢出(即父元素不会根据子元素的大小进行扩大),因为当元素设置了float属性之后,其他没有设置float属性的盒子会无视这个元素,即文档流下面的没有设置浮动的元素会何其进行叠加。即可以当作其脱离了文档流,但需要注意的是,其与position:absolute不同的是,其他盒子元素内的文本依然会为float元素让出位置,围绕在周围,所以不会看到文本相互叠加的情况,而absolute定位的元素则会出现文本叠加。所以亦可以理解为脱离了文档流,这种情况通常消除浮动就可以解决。


    简单的界面就是
    1. <div class=“list2”>
    2. <ul class=“list-ul”>
    3. <li ><a href=“/”>HOME</a></li>
    4. <li ><a href=“/visit/”>VISIT</a></li>
    5. <li><a href=“/exhibitions/”>EXHIBITIONS</a></li>
    6. <li ><a href=“/collections/”>COLLECTIONS</a></li>
    7. <li><a href=“/multimedia/”>MULTIMEDIA</a></li>
    8. <li><a href=“/EXPLORE/”>EXPLORE</a></li>
    9. <li ><a href=“/about/”>ABOUT</a></li>
    10. </ul>
    11. </div>
    12. <div class=“div2”>div1</div>
    13. <div class=“div3”>div2</div>


    一、设置float属性的父元素没有高度
    1. /*list2*/
    2. .list2 {
    3. margin: 10px auto;
    4. float: left;
    5. }
    6. .list2 ul {
    7. margin: 0;
    8. text-align: center;
    9. }
    10. .list2 ul li {
    11. float: left;
    12. }
    html——影响文档流属性详解
    高度为0.

    二、设置float后面的元素,
    1. .list2 {
    2. margin: 10px auto;
    3. float: left;
    4. }
    5. .list2 ul {
    6. margin: 0;
    7. text-align: center;
    8. }
    9. .list2 ul li {
    10. float: left;
    11. width:100px;
    12. }
    13. .div2{
    14. }
    15. .div3{
    16. }
    html——影响文档流属性详解
    设置float后的hahahahah占用了他的位置,但是并没有重叠。

    三、float的连续性
    1. .list2 {
    2. margin: 10px auto;
    3. }
    4. .list2 ul {
    5. margin: 0;
    6. text-align: center;
    7. }
    8. .list2 ul li {
    9. float: left;
    10. width:100px;
    11. }
    12. .div2{
    13. clear: both;
    14. float: left;
    15. }
    16. .div3{
    17. }
    html——影响文档流属性详解

    特别有意思,div1下来了,div2还在上面,继续原来的float元素继续排列。

            </div>
                </div>