CSS布局基础(CSS浮动)

news/2025/1/3 9:26:36/

CSS布局基础(CSS浮动)

    • CSS浮动
      • 浮动元素表现出行内块特点
      • 布局原则
      • 浮动布局重点
      • 清除浮动
        • 清除浮动时机

CSS浮动

float: none(默认,不浮动)|left|right;

默认情况,所有元素都摊平在一个平面上,按照顺序依次排列

浮动则是将元素拉起来,脱离原有的平面,专业术语叫脱离文档流,然后视浮动方向不同,向左或者右 滑动到父元素边框或前面同为浮动的元素边上紧挨着
此时,原有的其他元素就会往前面移动,占据前面的空位。

一个原则:块元素,要并排采用浮动即可

浮动元素表现出行内块特点

  • 默认不再占据整行,而是根据实际内容调整宽高
  • 可以手动设置宽高

布局原则

从大到小:

  • 先规划大盒子(标准流),一般分为 头 身 尾
  • 在每个大盒子内部再细分 盒子(并排就浮动)
  • 在一步一步细分到显示内容的盒子

浮动布局重点

  • 浮动盒子一般不放在最外层,而是在标准流的盒子里面
  • 上下排列不浮动,左右排列使用浮动
  • 相同维度的元素,一般要浮动都浮动,不浮动都不浮动,部分浮动容易影响布局
  • 浮动盒子只会影响后面的标准流盒子,不影响前面的标注流盒子
  • 浮动元素的父盒子如果没设置高度或者不方便设置高度或者不确定高度,一旦元素浮动,父盒子的高度会塌陷变为0,后面的元素会往上走。因此,我们需要在最后一个浮动元素上清除浮动,避免影响后续标准流盒子

清除浮动

在最后一个元素浮动后,可能需要清除浮动,否则有可能影响后续的标准流盒子。
li 元素浮动 导致 box 盒子高度为0 ,进而影响了 footer 盒子,飘到 li 列表里面去了。

<div class="box"><ul><li class="content">1</li><li class="content">2</li><li class="content">3</li><li class="content last">4</li></ul>
</div>
<div class="footer">footer</div>
    .box li.content{width: 24%;height: 300px;background-color: #96C02E;float: left;margin-right: 10px;margin-bottom: 5px;}
  • 方式一:
    追加带有清除浮动样式的块元素。
    在 li 标签后加一个li标签
    <li class="clr"></li>
    
    给追加的 li 赋予 清除浮动的属性
    .clr{clear: both;
    }
    
  • 方式二
    给浮动元素的父元素添加 overflow 属性,值可以是 hidden, auto, scroll 都能实现清除浮动
  • 方式三
    对浮动元素的父元素使用 after 伪元素清除浮动,其本质还是标签追加法
  /*  方式三 使用 :after 伪元素,对父元素追加一个空的块元素*/div.box:after{content: ""; /*after 用于定义这个伪元素的内容*/display: block; /*追加元素需要块元素,而伪元素默认为行内元素,故手动转块元素*/clear: both;}
/*鉴于低版本IE不支持 伪元素,出于兼容性考虑,为IE老版本加上*/div.box{*zoom:1;}

清除浮动时机

  • 父元素没有设置高度
  • 子元素有浮动
  • 影响后续标准流盒子布局了

http://www.ppmy.cn/news/58758.html

相关文章

工程化:vite4和vue3里面的toast组件封装及命令式调用

在vue项目中我们要创建命令式的提示框,比如elementui里面都是this. m e s s a g e , t h i s . message,this. message,

Chapter4:频率响应法(中)

第四章:频率响应法 Exercise4.13 已知控制系统的开环对数幅频渐近特性如下,确定各最小相位系统的开环传递函数。 解: 【图 ( a ) ({\rm a}) (a)】 确定系统积分环节或微分环节个数。 因为对数幅频渐近特性曲线的低频渐近线的斜率为

【redis】redis的缓存过期淘汰策略

【redis】redis的缓存过期淘汰策略 文章目录 【redis】redis的缓存过期淘汰策略前言一、面试题二、redis内存满了怎么办&#xff1f;1、redis默认内存是多少&#xff1f;在哪查看&#xff1f;如何修改?在conf配置文件中可以查看 修改&#xff0c;内存默认是0redis的默认内存有…

Electron 环境搭建

https://start.spring.io/ 在线数据分析网站 https://tj.aldwx.com/ https://www.spsspro.com/ win10如何分屏 拖到边缘 Electron 环境搭建 https://www.electronjs.org/zh/docs/latest/tutorial/%E6%89%93%E5%8C%85%E6%95%99%E7%A8%8B electron 隐藏菜单 electron 标题栏 设…

3.4 只读存储器

学习目标&#xff1a; 学习只读存储器&#xff08;ROM&#xff09;的目标可以包括以下内容&#xff1a; 了解ROM的基本概念、分类以及适用场景。掌握ROM的电路原理、逻辑结构和读取方式。熟悉ROM的编程方式和编程工具。理解ROM与EPROM、EEPROM和闪存的区别和联系。了解ROM在计…

从零开始学架构——异地多活架构

业务高可用的保障&#xff1a;异地多活架构 无论是高可用计算架构&#xff0c;还是高可用存储架构&#xff0c;其本质的设计目的都是为了解决部分服务器故障的场景下&#xff0c;如何保证系统能够继续提供服务。但在一些极端场景下&#xff0c;有可能出现所有服务器都出现故障…

【redis】redis红锁Redlock算法和底层源码分析

【redis】redis红锁Redlock算法和底层源码分析 文章目录 【redis】redis红锁Redlock算法和底层源码分析前言一、当前代码为8.0版&#xff0c;接上一步分布式锁的主要考点lock加锁关键逻辑unlock解锁关键逻辑 二、redis分布式锁-Redlock红锁主页说明:目前所写的分布式锁还有什么…

代码随想录算法训练营第十一天|20 有效的括号 1047 删除字符串中所有相邻重复项 150 逆波兰表达式求值

文章目录 20 有效的括号思路代码总结 1047 删除字符串中所有相邻重复项思路代码总结 150 逆波兰表达式求值思路代码总结 20 有效的括号 思路 思路很经典&#xff0c;用栈寻找匹配括号 但是自己在实现的过程中&#xff0c;有一种情况没想到&#xff1a; 字符串第一个就是右括号…