浮动 float

浮动 float

浮动

◇float属性脱离常规文档流而表现为向右或向左浮动
◇float属性的取值:
right left none

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .div1{
            width: 100px;
            height: 100px;
            background-color: black;
            float: left;
            /*向左浮动*/
        }
        .div2{
            width: 180px;
            height: 180px;
            background-color: orange;
            float: right;
            /*向右浮动*/
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
</body>
</html>

效果图:
效果图
注:
1.浮动盒子的宽度不会自动伸展,宽度以内容和margin、padding属性为准;
2.标准流中其他盒子将视浮动盒子不存在而占据浮动盒子的位置,但内容会受到浮动盒子宽度的影响;

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .div1{
            width: 100px;
            height: 100px;
            background-color: black;
            opacity: 0.4;
            /*为了看到更加直观,我们给浮动盒子加上透明度*/
            float: left;
            /*向左浮动*/
        }
        .div2{
            width: 180px;
            height: 180px;
            background-color: orange;
            /*div2为标准流*/
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2">我卢本伟没有开挂</div>
</body>
</html>

效果如图:
效果图

3.可以设置clear属性使标准流中其他盒子不受之前盒子的影响;
4.父级盒子中的所有盒子都采用的浮动形式,若父级盒子未指定高度则父级盒子的高度为 :0,因为所有盒子都是浮动已脱离标准流。解决办法是增加一个标准流的盒子。

清除浮动

首先 ,为什么要清除浮动:

直接看代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>

        .div{
            border: 1px solid red;
        }
        .div1{
            width: 100px;
            height: 100px;
            background-color: black;
            float: left;
            /*向左浮动*/
        }
        .div2{
            width: 180px;
            height: 180px;
            background-color: orange;
            float: left;
            /*向左浮动*/
        }
    </style>
</head>
<body>
    <div class="div">
        <div class="div1"></div>
        <div class="div2"></div>
    </div>
</body>
</html>

效果如图:
效果图

本来黑色盒子和橙色盒子是在红框盒子里面的,所以红框盒子理应被撑开;
但是由于黑色和橙色盒子采用了浮动,脱离了标准流;导致了红框盒子没有被撑开;
所以,我们需要清除浮动。

浮动带来的坏处:
1、背景不能显示
由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

2、边框不能撑开
如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

清除浮动的方法:
1.增加兄弟DOM(块元素)
例如:
在父容器里增加一个空的div,给他设置一个clear属性
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>

        .div{
            border: 1px solid red;
            height: 182px;
        }
        .div1{
            width: 100px;
            height: 100px;
            background-color: black;
            float: left;
            /*向左浮动*/
        }
        .div2{
            width: 180px;
            height: 180px;
            background-color: orange;
            float: right;
            /*向左浮动*/
        }
        .div3{
            clear: both;
                			/*both:清除所有浮动影响*/
                        	/*left:清除左浮动影响*/
                        	/*right:清除右浮动影响*/
        }
    </style>
</head>
<body>
    <div class="div">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
    </div>
</body>
</html>

效果如图:
效果图

2.通过伪类
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>

        .div{
            border: 1px solid red;
        }
        .div1{
            width: 100px;
            height: 100px;
            background-color: black;
            float: left;
            /*向左浮动*/
        }
        .div2{
            width: 180px;
            height: 180px;
            background-color: orange;
            float: right;
            /*向左浮动*/
        }
        .div:after{
            content:"" ;
            display: block;
            clear: both;
        }
    </style>
</head>
<body>
    <div class="div">
        <div class="div1"></div>
        <div class="div2"></div>
    </div>
</body>
</html>

效果如图:
效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS中的浮动属性(float)用于控制元素在其父元素中的位置和布局。通过设置浮动属性,我们可以将元素从正常的文档流中脱离出来,使其沿着父元素的左侧或右侧浮动浮动属性有三个可能的取值:left、right和none。默认值为none。 - 当设置为left时,元素会向左浮动,其周围的内容会围绕在右侧。 - 当设置为right时,元素会向右浮动,其周围的内容会围绕在左侧。 - 当设置为none时,元素不进行浮动,恢复正常的文档流。 浮动元素会具有块级元素的特性,即会占据一定的空间,并且会从左到右或从右到左排列。浮动元素不会占据父元素中的空间,所以其他元素会填充浮动元素的位置。 除了浮动属性外,我们通常还需要配合一些其他属性来控制浮动元素的行为: - clear属性用于清除浮动对后续元素的影响。可以设置为left、right、both或none来指定在浮动元素的左侧、右侧或两侧不允许出现浮动元素。 - overflow属性可以用于包含浮动元素,通过设置其值为auto或hidden,可以触发父元素的块级格式化上下文,使其包含浮动元素。 需要注意的是,使用浮动属性可能会导致一些布局上的问题,如高度塌陷(clearfix问题)和重叠等。为了避免这些问题,可以使用一些技巧和清除浮动的方法。 总而言之,浮动属性是CSS中用于实现元素布局的重要属性,可以使元素浮动到指定位置,并影响周围元素的布局。然而,由于其一些潜在的问题,现代CSS布局技术更倾向于使用flexbox和grid布局来代替浮动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值