ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CSS浮动(float)

2021-12-06 16:03:12  阅读:171  来源: 互联网

标签:浮动 float 盒子 父级 clearfix 元素 添加 CSS


浮动

1.为什么需要浮动?
如何让三个div排列成一行?
    使用inline-block,会有空白缝隙,很难控制
很多布局效果,标准流无法实现,可以利用浮动完成布局,浮动可以改变元素默认的排列方式
可以让多个块级元素排列成一行

2.什么是浮动?
float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘

语法:
选择器{
    float:属性值
}
可选值:
    left(左浮动)
    right(右浮动)
    none(不浮动)

3.浮动的特性(重要):
   (1)、浮动元素会脱离标准流
          浮动元素不会保留原来的位置
   (2)、浮动的元素会一行显示并且元素顶部对齐
          注意:浮动的元素是互相贴靠在一起的,如果父级元素宽度装不下这些盒子,多出的盒子会另起一行对齐
   (3)、浮动的元素会有行内块元素的特性
          任何元素都可以浮动,不管原先是什么元素类型,浮动后都有行内块的特性

浮动元素经常和标准流父级搭配使用
为了约束浮动元素的位置,我们网页布局一般采用的策略是:
    先用标准流的父元素排列上下位置后,内部子元素采取浮动排列左右位置

4.浮动的注意点:
    (1)、浮动和标准流的父盒子搭配
    (2)、一个元素浮动了,理论上其余的兄弟元素也要浮动
浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流


5.清除浮动:
浮动元素的父元素必须设置一个高度,才能正常显示
理想状态:
    让子元素撑开父元素,父元素自适应宽高
为什么需要清除浮动?
父级盒子很多的情况下,不方便给高度,但是盒子浮动又不占有位置,父级盒子的高度就会变为0,那么就会影响后面的布局

6.如何清除浮动?
(1)、清除浮动的本质就是清除浮动元素造成的影响
(2)、如父盒子本身有高度,就不需要清除了
(3)、清除浮动后,父级就会根据浮动的盒子自动检测高度,就不会影响后面的布局了

语法:
    选择器{
    clear:left/right/both
    }
7.清除浮动的方法:
(1)、额外标签法
    在浮动元素末尾添加一个空标签(不能是行内元素),设置clear:both
    优点:通俗易懂,书写方便
    缺点:添加许多无意义的标签,结构化较差
(2)、父级添加overflow属性
    给父元素添加overflow属性,可以设置为hidden、auto、scroll
    优点:代码简洁
    缺点:无法显示溢出的部分
(3)、父级元素添加after伪元素
    :after方式是额外标签法的升级版,也是给父元素添加:
    .clearfix:after{
        content: "";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }
    
    .clearfix{
        *zoom:1 //IE6、7专有
    }
    优点:
        没有增加标签,结构更简单
    缺点:    需要照顾低版本浏览器
(4)、父级添加双伪元素
    给父元素添加
    .clearfix:before,.clearfix:after{
        content:"";
        display:table;
    }

    .clearfix:after{
        clear:both;
    }

    .clearfix{
        *zoom:1
    }

    优点:
        没有增加标签,结构更简单
    缺点:    需要照顾低版本浏览器
 

标签:浮动,float,盒子,父级,clearfix,元素,添加,CSS
来源: https://blog.csdn.net/weixin_46043008/article/details/121748933

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有