zoukankan      html  css  js  c++  java
  • 浮动的艺术下

        浮动是css中比较难理解的一个属性;"浮动的艺术"上篇介绍浮动的基本用法和原理, 这里主要介绍浮动(float)带来的问题和解决的方案, 这部分比较简单。

        1 带来的问题和解决

        (1) 可能会影响父类元素的大小;

         前提:父类没有设置height width属性, 子类使用了float;

         后果:父级盒子没法撑开;

      

    运行结果如下:

      分析: 可以看到上面blue的盒子是在box1的外面,box1浮动之后,top盒子(父盒子)就没法撑开;

      那么问题怎么处理?很简单

      方法1:给父类一个width height就可以了;不用怀疑,这是最好的处理方法,没有之一。原因:盒子有了大小,不管里面的内容浮动不浮动,width height都是在的;  建议给每一个盒子设置width height属性值,避免这情况发生。

      方法2:因为有些书籍讲到这个方法,所以说一下. "使用取消浮动的方法,注意取消float的位置"; 

      将上面代码里面body改成:

        <div class="top">
            <div class="one">box1</div>
            <div class="box2" style="clear:both"></div>
        </div> 

       原来基础上只是加上 <div style="clear:both"></div>这句;  运行结果为:

     

        分析:很明显这是我们想要的结果;这里说明原因:我们知道float会脱离文档流进入平面空间,而后面的box2取消了float,意味着box2要换行和box1底边对齐显示; 很明显box2是盒子top(父类盒子)的内容,而且没有浮动,此时父类盒子必须要将他包围起来。也就把前面的box1一起包起来了;问题解决

       方法3:在top盒子样式里面加上 overflow:hidden,也可以解决。原因:w3 是这样介绍overflow属性的:overflow 属性设置当元素的内容溢出其区域时发生的事情。属性值hidden:内容会被修剪,但是浏览器不会显示供查看内容的滚动条。

         ps: float带来的问题主要的就是上面这个。其他什么影响背景, 边框, padding,margin,这个明白那些都是一个意思;

         附上: " 浮动的艺术" 讲到浮动的基本用法和float的原理;

  • 相关阅读:
    NOIP2002字串变换[BFS]
    NOIP2000单词接龙[DFS]
    NOIP2003传染病控制[按层DFS]
    NOIP1999邮票面值设计[搜索|DP]
    USACO1.1Broken Necklace[环状DP作死]
    洛谷P1120小木棍[DFS]
    NOIP2000进制转换
    Miller-Rabin素数快速检测
    【数论算法理论与实现】
    洛谷P1141 01迷宫
  • 原文地址:https://www.cnblogs.com/huang-1995/p/5528807.html
Copyright © 2011-2022 走看看