2018-09-14css浮动

浮动

文档流
文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。

浮动特性

1、浮动元素有左浮动(float:left)和右浮动(float:right)两种

2、浮动的元素会向左或向右浮动,碰到父元素边界、浮动元素、未浮动的元素才停下来

3、相邻浮动的块元素可以并在一行,超出父级宽度就换行

4、浮动让行内元素或块元素自动转化为行内块元素

5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果

6、父元素内整体浮动的元素无法撑开父元素,需要清除浮动

7、浮动元素之间没有垂直margin的合并

清除浮动

  • 父级上增加属性overflow:hidden

  • 在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)

  • 使用成熟的清浮动样式类,clearfix

    .clearfix:after,.clearfix:before{ content: "";display: table;}
    .clearfix:after{ clear:both;}
    .clearfix{zoom:1;}
    
    

    清除浮动的使用方法:

    .con2{... overflow:hidden}
    或者
    <div class="con2 clearfix">
    

css中font的一种简写方式:


字体/行高

浮动的时候,浮动顺序还是按文档中的来,文档中先出现的先浮动,后出现的后浮动
因为浮动了,所以被转换成了行内块元素,自动支持宽和高
浮动的子元素,无法撑开父级的高度;父元素要给高度,给多少就高多少
这个时候需要清除浮动。清除浮动有三种方式(1)在父级加overf:hidden (2)在最后一个子元素后面加一个空的div,给style样式属性clear:both (3)最常用的方式:


既可以消除塌陷,也可以清楚浮动

代码奉上:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style type="text/css">
        .con,.con2{
            width: 300px;
            /*height: 300px;*/
            border: 1px solid #000;
            margin: 100px auto 0;
            font-size: 0

        }
        .con a{
            width: 50px;
            height: 50px;
            display: inline-block;
            background-color: gold;
            font-size: 16px;
            margin: 10px;
            text-align: center;
            line-height: 50px;
            text-decoration: none;
        }
        .con2 a{
            width: 50px;
            height: 50px;
            display: inline-block;
            background-color: gold;
            font-size: 16px;
            margin: 10px;
            text-align: center;
            line-height: 50px;
            text-decoration: none;
            float: left;
        }
        .con2{
            /*height: 300px;*/
            /*overflow: hidden;*/
        }
        /*.clearfix:after{
            content: "";
            display: table;
            clear: both;
        }*/
        .clearfix:before,.clearfix:after{
            content: "";
            display: table;

        }
        .clearfix:after{
            clear: both;
        }
        .clearfix{
            zoom: 1;
        }

    </style>
</head>
<body>
    <div class="con">
        <a href="">1</a>
        <a href="">2</a>
        <a href="">3</a>
        <a href="">4</a>
        <a href="">5</a>
        <a href="">6</a>
        <a href="">7</a>
        <a href="">8</a>
        <a href="">5</a>
        <a href="">6</a>
        <a href="">7</a>
        <a href="">8</a>
        

    </div>

    <div class="con2 clearfix">
        <a href="">1</a>
        <a href="">2</a>
        <a href="">3</a>
        <a href="">4</a>
        <a href="">5</a>
        <a href="">6</a>
        <a href="">7</a>
        <a href="">8</a>
        <a href="">5</a>
        <a href="">6</a>
        <a href="">7</a>
        <a href="">8</a>
        <!-- <div style="clear: both"></div> -->

    </div>
</body>
</html>

效果展示:


含有before和after
  • 浮动的时候没有行内块元素的间隙
    浮动的时候,元素转换为行内块元素,但是和行内块元素还是有区别的(1)不会因为代码换行产生间距(2)有浮动的特性,往左靠或者往右靠
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,154评论 5 15
  • 这篇文章极好,以至于让我受益良多,就一字没有改动的转发过来一丝冰凉老师的文章 需要注意的是,display:tab...
    新晋小牛牛阅读 4,692评论 0 2
  • 1 她是个很美丽的女子,身材娥娜多姿,气质温婉优雅,很容易害羞,说话小声,不敢与人对视。 李华喜欢她很久了,自从去...
    映月月影阅读 3,081评论 8 6
  • 俗话说,好记性不如烂笔头,关于集成地图 (这里以百度地图为例) 这一块,本人目前在一家代驾公司做了一年了,对这一块...
    哈哈大p孩阅读 14,943评论 46 171