当前位置: 首页 > news >正文

HTML(18)——浮动

标准流 

标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个

浮动

作用:让块级元素水平排列

属性名:float

属性值

  • left:左对齐
  • right:右对齐

特点:

  1. 浮动后的盒子顶对齐
  2. 浮动后的盒子具备行内快的特点
  3. 父级宽度不够,浮动的子级会换行
  4. 浮动后的盒子脱标

示例:

我写了两个块级元素如下图:

        .one {

            width: 100px;

            height: 100px;

            background-color: aqua;

        }

        .two {

            width: 200px;

            height: 200px;

            background-color: chocolate;

        }

两个类里面都写上float:left

        .one {

            width: 100px;

            height: 100px;

            background-color: aqua;

            float: left;

        }

        .two {

            width: 200px;

            height: 200px;

            background-color: chocolate;

            float: left;

        }

如果只给一个块添加float属性:

        .one {

            width: 100px;

            height: 100px;

            background-color: aqua;

            float: left;

        }

        .two {

            width: 200px;

            height: 200px;

            background-color: chocolate;

        }

这是因为one设置了float脱离了标准流,相当于浏览器找不到one这个块,导致two也出现在左上角。

清除浮动

场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱)

解决办法:清除浮动 (并不是把浮动删除)

示例:

    <style>
        .top {
            margin: 10px auto;
            width: 1200px;
            height: 300px;
            background-color: pink;
        }

        .left {
            float: left;
            width: 200px;
            height: 300px;
            background-color: skyblue;
        }

        .right {
            float: right;
            width: 950px;
            height: 300px;
            background-color: orange;
        }

        .bottom {
            height: 100px;
            background-color: brown;
        }
    </style>
    <div class="top">
        <div class="left"></div>
        <div class="right"></div>
    </div>
    <div class="bottom"></div>

效果如图:

当把父级的高度删除:

发现bottom出现在顶上。当top没有height,只能靠元素撑开,但由于两个块都是float,所以影响到了整个页面的布局效果

 清除这种影响有四种方法:

额外标签法

在父级元素内容的最后添加一个块级元素,设置属性clear:both

    <div class="top">
        <div class="left"></div>
        <div class="right"></div>
        <div style="clear:both"></div>
    </div>

 单伪元素法

原理和额外标签法是一样的,额外标签法是人工加标签,该方法是通过伪元素。

也是给父级最后添加块级元素。

.clearfix::after{
  content:"";
  display:block;
  clear:both;
}
    <div class="top clearfix">
        <div class="left"></div>
        <div class="right"></div>
    </div>

双伪元素法

.clearfix::before,
.clearfix::after{
  content:"";
  display:table;
}
.clearfix::after{
  clear:both;
}
    <div class="top clearfix">
        <div class="left"></div>
        <div class="right"></div>
    </div>
    <div class="bottom"></div>

before伪元素是解决外边距塌陷问题。

overflow

父级添加属性overflow:hidden;

相关文章:

  • Pycharm怎么默认终端连接远程服务器
  • 代码-功能-python-爬取博客网标题作者发布时间
  • 只有一个鸿蒙好?还是鸿蒙、安卓、IOS并存好?
  • 如何在Springboot中配置Druid连接池连接MySQL?
  • Spring-bean
  • 微信小程序-伪类选择器
  • 46、基于自组织映射神经网络的鸢尾花聚类(matlab)
  • 1.2 DataX 数据同步工具详细介绍
  • 微积分-导数1(导数与变化率)
  • 【杂记-浅谈OSPF协议中的RouterDeadInterval】
  • Markdown基础教程
  • keil5显示内存和存储占用百分比进度条工具
  • Docker常见面试题整理
  • 【Linux】基础IO_3
  • [Django学习]查询过滤器(lookup types)
  • A800显卡驱动安装(使用deb安装)
  • HTML5的新属性
  • 程序猿成长之路之数据挖掘篇——决策树分类算法(1)——信息熵和信息增益
  • 2024年,计算机相关专业还值得选择吗?
  • c语言移位运算超出类型所能表示的范围告警
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 国家主席习近平同普京总统举行大范围会谈
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 家庭相册㉙在沪打拼25年,我理解了父母清晨去卖蜜饯的辛苦
  • “救护车”转运病人半路加价,从宝鸡到西安往返都要多收钱