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


下面哪个属性不会让 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. }

高度为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. }

设置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. }


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

        </div>
            </div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值