前端笔记----清除浮动

一.浮动的特点:

1.只有左浮动和有浮动,不存在中间浮动;
2.浮动碰到边界就停下来,无论是父元素的边界还是子元素的边界;
3.浮动默认按文档流的形式布局,一行位置不够就自动换行;
4.浮动会自动将行内元素或块元素转化为行内块元素,同时没有一般转化为行内块元素的间距问题;
5.浮动元素后面没有浮动的元素会占据浮动元素的位置,浮动元素不占位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果;
6.浮动元素之间没有垂直margin的合并;

二.CSS设置属性中经常要用到浮动,但是父元素如果没有设置尺寸(一般指的是高度不设置),当父元素内所有的子元素设置浮动,

浮动的元素无法撑开父元素,父元素需要清除浮动达到撑开的效果。

如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style>
        .box {
            width: 500px;
            border: 1px solid red;
            margin: 10px;
            padding: 10px;
        }

        .box1 {
            width: 200px;
            height: 20px;
            float: left;  # 设置浮动
            background-color: red;
        }

</head>

<body>
    <hr class="hrx">
    <div class="box clearfix">
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
    </div>
</body>

</html>

  效果:

可以看到,box并没有包裹住所有的子元素,因为浮动的元素不占盒子的位置。

解决办法一般有三种:

1.使用通用的清浮动样式类,一般命名clearfix,原理是利用伪类选择器after和before在元素的头和尾各增加一个空的块元素,一般用div或table(表格);然后

使用clear属性,设置both,即不允许左右浮动;记住:一定要设置在clearfix:after上。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style>
        .box {
            width: 500px;
            border: 1px solid red;
            margin: 10px;
            padding: 10px;
        }

        .box1 {
            width: 200px;
            height: 20px;
            float: left;
            background-color: red;
        }
        /* 清除浮动的样式类 */
        .clearfix:after,
        .clearfix:before {
            content: "";
            display: table;
        }
        .clearfix:after {
            clear: both;
        }
    </style>
</head>

<body>
    <hr class="hrx">
    <div class="box clearfix">
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
    </div>
</body>

</html>

 结果:

2.在父级标签上设置元素溢出,增加属性overflow:hidden;其必须知道外部父级的实际边界,但是这种方法有局限性,当浮动的元素超出盒子边界后会被剪裁掉。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style>
        .box {
            width: 500px;
            border: 1px solid red;
            margin: 10px;
            padding: 10px;
            overflow: hidden;  # 添加元素溢出隐藏
        }

        .box1 {
            width: 200px;
            height: 20px;
            float: left;
            background-color: red;
        }

    </style>
</head>

<body>
    <hr class="hrx">
    <div class="box clearfix">
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
    </div>
</body>

</html>

  3.在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐),这样子元素就不再是整体浮动,而是有一个不浮动。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
    <style>
        .box {
            width: 500px;
            border: 1px solid red;
            margin: 10px;
            padding: 10px;

        }

        .box1 {
            width: 200px;
            height: 20px;
            float: left;
            background-color: red;
        }
# 设置空的div不允许左右浮动
        .boxx{
            clear:both;
        }

    </style>
</head>

<body>
    <hr class="hrx">
    <div class="box clearfix">
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="box1"></div>
        <div class="boxx"></div>
    </div>
</body>

</html>

  

 

时间: 2024-10-04 08:38:43

前端笔记----清除浮动的相关文章

前端学习笔记 清除浮动

这里有个例子 <!DOCTYPE html> <html> <head> <title>test </title> <meta charset="utf-8"> </head> <body> <style> #div1{ width:100px; height:100px; background: red; float:left; } #div2{ width:500px; he

【Web前端】清除浮动&amp;amp;css中文字体

清理浮动有非常多种方式,像使用 br 标签自带的 clear 属,使用元素的 overflow.使用空标签来设置 clear:both 等等.但考虑到兼容问题和语义化的问题,一般我们都会使用例如以下代码来清理浮动. /* 清理浮动 */ .clearfix:after { visibility:hidden; display:block; font-size:0; content:" "; clear:both; height:0; } .clearfix { zoom:1; } 其原

Web前端入门学习(5)——浮动原理及清除浮动

浮动原理及清除浮动 上节回顾 在上节的<Web前端入门学习(4)-- 块级元素和行内元素之特征与转换>中(http://cherry360.blog.51cto.com/12176744/1863945),介绍了块级元素和行内元素的特征,及粗略介绍了如何进行转换.加上display属性,可以指定元素的类型,如display:block.display:inline,以及display:inline-block.当然用得最多的是最后一个display:inline-block.结合例子来看: 例

css通用小笔记02——浮动、清除(三个例子)

css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果  2.多个div并排显示 3.清除浮动(默认显示) 一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: left;padding: 10px;border: 1px solid red;} 5 #big span {font-size: 2

前端开发入门到实战:css 浮动布局,清除浮动

浮动的特性: (1)浮动元素有左浮动(float:left)和右浮动(float:right)两种 (2)浮动的元素会向左或向右浮动,碰到父元素边界.其他元素才停下来 (3)相邻浮动的块元素可以并在一起,超出父级宽度就换行 (4)浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题) (5)浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,开成文字绕图的效果 (6)父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开

web前端入门到实战:总结清除浮动的方法

方法一.在结尾处添加空div标签clear:both 在浮动的盒子之下再放一个标签,在这个标签中使用clear:both,来清除浮动对页面的影响. 注意:一般情况下不会使用这一种方式来清除浮动.因为这种清除浮动的方式会增加页面的标签,造成结构的混乱. <div class="box"> <div class="red">1</div> <div class="sienna">2</div>

web前端入门到实战:css浮动的特性,与浮动带来的影响以及如何清除浮动

块元素在文档流中默认垂直排列,所以多个div从上至下依次排开 如果希望块元素在页面中水平排列,可以使用float来使元素浮动,从而脱离文档流,元素脱离文档流以后,它下边的元素会立即向上移动 css浮动的特性 1.浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围 2.元素浮动以后,会尽量向页面的左上或这是右上漂浮,直到遇到父元素的边框或者其他的浮动元素 3.如果浮动元素上边是一个没有浮动的块元素,则浮动元素不会超过块元素 4.浮动的元素永远不会超过他上边的兄弟元素,最多一边挤 5.块元素脱离

前端之旅HTML与CSS篇之清除浮动塌陷

以下内容为转载. 方法1:给浮动的元素的上级添加高度如果一个元素要浮动,那么它的祖先元素一定要有高度.高度的盒子,才能关住浮动.只要浮动在一个有高度的盒子中,那么这个浮动就不会影响后面的浮动元素.所以就是清除浮动带来的影响了.所以只需要给li的上级ul或者div设置一个height:40px:(只要是浮动元素的上级元素就可以.),那么第二个div就好挤下来,在第一个盒子下面显示出来.方法2:clear:both;但是在实际开发过程当中中,高度height很少出现.为什么?因为能被内容撑高!那也就

标准文档流.浮动以及清除浮动(学习笔记)

标准文档流 1.当后面空间不够时,会空白折叠,自动换行. 2.当高矮不齐时,会底部对齐. 3.自动换行. 标签根据显示的内容划分成:文本级,容器级. 按照文档流划分:块级元素.行内元素; 块级元素: (1).霸占一行,不能与其他任何元素并列. (2)能接受宽高. (3).如果不设置宽度,那么宽度将默认变为父亲的100%. 行内元素: (1).与其他行内元素并排; (2)不能设置宽高.默认宽度就是文字宽度. 所有的文本级标签,都是行内元素,除了p,p是个文本级,但是是个块级元素. 所有的容器级标签