前端基础:CSS 浮动(float)-普通流、浮动、定位、布局的综合搭配(重点)

目录

1. 常见的三种网页布局

1.1 普通流(普通流/文档流)

1.2 浮动

1.2.1 作用:

1.2.2  浮动特性(重点)

1.3 定位

2.布局的搭配使用

2.1 浮动元素和标准流父级搭配(常用)

3.  浮动综合练习-小米手机模块

3. 两个注意点

3.1 浮动和标准流的父盒子搭配

3.2  一个元素浮动,其他兄弟元素都要浮动


1. 常见的三种网页布局

        传统的网页布局就是盒子的排序顺序,实际开发中,一个页面包含三种布局。

网页布局第一准则:多个块级元素纵向找标准流,多个块级元素横向找浮动。

1.1 普通流(普通流/文档流)

标准流就是按照默认方式排列,它是最基本的布局方式。

  • 块级元素会独占一行 (例:div、hr、h1-h6、ul、ol、form、table标签)
  • 行内元素从左到右按序排序,自动换行  (例:span、a、i、em标签)

1.2 浮动

float属性用于创建浮动框,将其移到浮动框的边缘。

1.2.1 作用:

  • 实现多个块级元素div水平排列(最经典应用)
  • 实现两个盒子左右对齐

语法:   选择器{float:属性值;}

属性值描述
none不浮动(默认)
left先左浮动
right先右浮动

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .cat {
            width: 200px;
            height: 50px;
            background-color: rgb(100, 231, 181);
            float: left;
            text-align: center;
            line-height: 50px;
        }

        .dog {
            width: 500px;
            height: 100px;
            background-color: rgb(241, 116, 175);
            text-align: center;
            line-height: 100px;
        }
    </style>
</head>

<body>
    <div class="cat">cat</div>
    <div class="dog">dog</div>
</body>

</html>
图1:cat设浮动效果

图2:cat和dog都设浮动效果

1.2.2  浮动特性(重点)

  • 会脱离标准流(脱标)难点 (图1所示)

       注:浮动盒子不保留原先位置,他会重叠在元素上(类似图层)

  • 一行内显示并元素顶部对齐 (图2所示)

   注:   浮动的元素是互相贴在一起的(无缝隙),一行放不下会换行对齐排列

  • 具有行内块元素的特性

      注:任何元素都可浮动,加了浮动都有行内元素的特性。

             如果块级元素无宽度,默认为父级宽度,但是设浮动后,宽度又内容决定。   

1.3 定位

2.布局的搭配使用

2.1 浮动元素和标准流父级搭配(常用)

根据网页布局第一原则,先用标准流的父级排列上下位置,后用内部元素浮动排列左右位置去。

3.  浮动综合练习-小米手机模块

网页布局第二准则:先设置盒子大小,后设置盒子位置

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小米手机布局练习</title>
    <style>
        * {
            padding: 0px;
            margin: 0px;
        }

        .box {
            width: 1780px;
            height: 900px;
            background-color: #f5f5f5;
        }

        .box .left {
            float: left;
            width: 438px;
        }

        .box .left a img {
            float: right;
        }

        .right li {
            width: 314px;
            height: 402px;
            float: left;
            margin-left: 20px;
            margin-bottom: 20px;
        }

        li {
            list-style: none;
        }

        li :hover {
            box-shadow: 10px 10px 20px 20px rgba(0, 0, 0, 0.05);
        }

        .left :hover {
            box-shadow: 10px 10px 20px 20px rgba(0, 0, 0, 0.05);
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="left">
            <a href="#">
                <img src="images/3.0.png">
            </a>
        </div>
        <ol class="right">
            <li>
                <a href="#">
                    <img src="images/3.1.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.2.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.3.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.4.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.5.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.6.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.7.png">
                </a>
            </li>
            <li>
                <a href="#">
                    <img src="images/3.8.png">
                </a>
            </li>
        </ol>
    </div>
</body>

</html>

效果图下:

  • 注:a标签本省不能设置宽度和高度,可以通过添加display:block转为块级元素/添加float后设置高度和宽度。
  • 有height和weight时设置padding会影响盒子大小,而使用margin不会影响盒子大小。
  • 去除li圆点:li {list-style:none;}

3. 两个注意点

 思考:如果盒子a是标准流,盒子b是浮动的,盒子a和盒子b效果会怎么样呢?(答案看最后哦)

ab无浮动效果

3.1 浮动和标准流的父盒子搭配

先用标准流排列上下位置,后用浮动流排列左右位置。

3.2  一个元素浮动,其他兄弟元素都要浮动

浮动的盒子会影响后面的标准流,而不会影响前面的标准流。

 可以记为浮动的盒子只会影响后面的标准流就好啦!

答案:ab会和原图一样不变,因为盒子a是标准流,会占位置,即盒子影响后面的标准流,不影响前面的标准流滴

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值