• css之浮动


        不得不说float是件很恶心的事情,最开始学习布局时利用各种各样的float,最后搞的晕头转向。现在发现,一个好的网页制作使用float越少它的后续可开发性越高。但使用float时不可避免的,现在就说一说float那点事。

        float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。

        文档流是相对于盒子模型讲的;文本流是相对于文子段落讲的。元素浮动之后,会让它跳出文档流,也就是说当它后面还有元素时,其他元素会无视它所占据了的区域,直接在它身下布局。但是文字却会认同浮动元素所占据的区域,围绕它布局,也就是没有拖出文本流。这就是文本环绕原因。但是绝对定位后,不仅元素盒子会拖出文档流,文字也会出文本流。那么后面元素的文本就不会在认同它的区域位置,会直接在它后面布局,不会在环绕。

    浮动元素与block,inline,inline-block元素重叠显示顺序

    (1)block元素与浮动元素重叠时,其边框和背景在该浮动元素之下显示,而内容在浮动元素之上显示

    (2)inline或inline-block元素与浮动元素重叠时,其边框、背景和内容都在该浮动元素之上显示

    清除浮动方法

    (1)  给父盒子加高度

    使用设置高度样式,清除浮动产生,前提是对象内容高度要能确定并能计算。

    (2)  父设置overflow:hidden

    原因?因为overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。

    (3)  clear:both

    新建一个样式选择器CSS命名为“.clear”,并且对应选择器样式为“clear:both”,然后我们在父级“</div>”结束前加此div引入“class="clear"”样式。

    (4)使用:after 伪元素

    给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。

    需要注意的是为了IE6和IE7浏览器,要给clearfix这个class添加一条zoom:1;触发haslayout。

    .clearfix:after{

      content: ".";

      display: block;

      height: 0;

      clear: both;

      visibility: hidden; 

      }

    .clearfix {

      /* 触发 hasLayout */

      zoom: 1;

      }

    总结:

    在网页主要布局时使用:after伪元素方法并作为主要清理浮动方式;在小模块如ul里使用overflow:hidden;;如果本身就是浮动元素则可自动清除内部浮动,无需格外处理;正文中使用clear both清除浮动。

  • 相关阅读:
    android绘画折线图二
    android绘画折线图一
    jQuery Select操作大集合
    jquery事件切换hover/toggle
    jquery $(document).ready() 与window.onload的区别
    canny边缘检测 C++手动实现
    高斯核原理和C++实现
    darknet-yolov3 burn_in learning_rate policy
    UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead
    BatchNormaliation
  • 原文地址:https://www.cnblogs.com/microcosm/p/6921676.html
Copyright © 2020-2023  润新知