CSS的浮动属性

作者: 前端王祖蓝 | 来源:发表于2021-01-06 16:40 被阅读0次

浮动属性

浮动可以让元素一个挨着一个。创建一个自然流布局,同时可以设置自身尺寸和父元素容器的尺寸大小。

一个元素浮动时,其他元素会“环绕”他。

当元素浮动时,一个元素的位置取决于放置在他周围的元素,围绕在他周围的第是哪个元素?这个元素会不会换行,这一切取决于围绕在他周围的元素的DOM

浮动存在的问题

典型问题是一个父元素包含多个浮动子元素,页面内容设置一个宽度
,子元素的浮动确定了他们的位置,但浮动的元素不改变父元素的宽度。这样会使父元素塌陷,从而使父元素的高度为“0”,从而忽略其他属性,这种现象多数时候被忽略,特别杂父元素没有样式一起其子元素看起来都很正确的时候。

嵌套的元素不会正确的排列,可能会出现错误,看下例。在box-set的div应该有个灰色背景,因为子元素浮动后,灰色的背景看不到。仔细检查后,box-set的高度变成了“0”’。

<div class="box-set">
        <div class="box">Box1</div>
        <div class="box">Box2</div>
        <div class="box">Box3</div>
    </div>
.box-set{
    background-color: #ccc;
}

.box{
    background:lightgreen;
    height:100px;
    line-height: 100px;
    float: left;
    margin:10px;
    width: 100px;
    text-align: center;
    color:#fff;
    border-radius: 10px;
}

结果如下图img

解决方法:

1.清理浮动(clear:both;)
在容器结束标签前加一个空标签,设置空标签的样式“clear:both;”。此情况大多数情况下有效,但如果一个页面需要很多的清理浮动就造成了空标签的堆积。

 <div class="box-set">
        <div class="box">Box1</div>
        <div class="box">Box2</div>
        <div class="box">Box3</div>
        <div class="clear"></div>
    </div>
.clear{
    clear: both;
}

结果如下图img2:

2.overflow技巧

overflow属性规定当内容溢出元素框时发生的事情。
在具有浮动元素的父容器中设置“overflow”的属性值为“auto”或“hidden”,父容器会存在一个高度,背景色也就显示。

  • 存在的缺点
    当添加样式或者给元素添加一个阴影或制作一个下拉菜单时,就会出现一些问题,比如给div添加一个阴影,可以看到阴影被父元素切断,无法伸出父元素外。
    结果如下图img4:

    3.clearfix技巧

    清理浮动更好的方法是clearfix技巧。clearfix是基于父元素上使用“:before”和":after"两个伪类。使用伪类在浮动元素的父容器前面和后面创建隐藏元素。“:before”伪类用于防止子元素顶部的外边距塌陷,使用“display:table”创建一个匿名的table-cell元素。“:after”伪类用于防止子元素底部的外边距塌陷,以此来清理元素的浮动。

    我们给需要的元素添加group的类名,这样就不会使代码堆叠严重。

<div id="box-set" class="group">
        <div class="box">Box1</div>
        <div class="box">Box2</div>
        <div class="box">Box3</div>
    </div>
.group:before,.group:after{
    content: "";
    display: table;
}

.group:after{
    clear:both ;
}

#box-set{
    background-color: #eee;
}

效果如下图img5:

其中的子元素可伸出父元素外,并且清理了浮动。

相关文章

  • 2018-09-19 css核心属性

    DAY4:CSS核心属性 学习目标 1、css浮动属性详解 2、css文本属性 3、css列表属性 4、css背景...

  • 03-CSS核心属性

    学习目标 1、css浮动属性详解2、css文本属性3、css列表属性4、css背景属性5、css边框属性 一、cs...

  • CSS定位/浮动——position/float

    CSS定位/浮动——position/float CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布...

  • css定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位 (Positioning)

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • 清除浮动的几个主要方法

    浮动:float,常用的css属性,可以设置左浮动float:left;右浮动float:right;不浮动flo...

  • 清除浮动的几种常用方法

    CSS中的浮动简单介绍 浮动是CSS中的一个属性float来实现的,通过设置属性值left、right来实现元素的...

  • CSS定位

    CSS定位(Positioning)允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供了一些属性...

  • CSS之浮动float

    浮动 1.1 浮动的元素 在CSS中,浮动通过float属性实现。 取值: left | right | non...

网友评论

    本文标题:CSS的浮动属性

    本文链接:https://www.haomeiwen.com/subject/yfxooktx.html