CSS 浮动布局实例


CSS 浮动布局实例

文章插图
 
其实文章原名叫做 “碰到不支持 flex 的项目怎么办?”
现在差不多已经是 flex 的天下了 , 简单灵活 , 但有时还是不可避免地会接触到 IE 浏览器 , 比如我最近接触的 阅文作家专区 (qq.com)[1] , 这个就是需要兼容 IE9 ,  也自然不能使用 flex 布局了 。不能使用 flex 怎么办(这个项目怎么这么XX , 都 2021 年了还要兼容 IE)?那只能回归传统布局方式了 , 也就是浮动布局 。
浮动 float 可以说是 css 布局里最为灵活的布局之一了 , 千万不要小瞧了浮动 , 有些布局只有浮动才能实现呢 。下面将介绍几种常见的布局 , 一起看看吧
一、文本环绕布局这类布局应该就是浮动最初的用意了 , 比如这样的
CSS 浮动布局实例

文章插图
 
设置一个左浮动就可以了 , 实现如下
<div><strong class="float">浮</strong><p>动属性指定一个元素应沿其容器的左侧或右侧放置 , 允许文本和内联元素环绕它 。该元素从网页的正常流动(文档流)中移除 , 尽管仍然保持部分的流动性 。</p></div>.float{float: left;/*其他样式*/}完整代码可访问 float-layout (codepen.io)[2]
需要注意的是 , 浮动元素必须放在文本的前面( html 结构) , 如果放在文本后面
<div><p>动属性指定一个元素应沿其容器的左侧或右侧放置 , 允许文本和内联元素环绕它 。该元素从网页的正常流动(文档流)中移除 , 尽管仍然保持部分的流动性 。</p><strong class="float">浮</strong></div>那么就会变成这样
CSS 浮动布局实例

文章插图
 
也就是说 , 浮动的影响范围是由浮动元素在 HTML 中的结构决定的 , 这一点非常重要
不过 , 现在很少会见到这种环绕布局了 , 但有些时候这种思路还是挺有用的 , 比如在这篇文章 CSS 实现多行文本“展开收起” (juejin.cn)[3] , 里面就用到了浮动的特性 , 实现了右下角文本环绕的效果 , 有兴趣的可以看看
CSS 浮动布局实例

文章插图
 
二、两栏布局两栏布局的特点是左边是固定尺寸 , 右边自动撑满剩余空间 , 例如
CSS 浮动布局实例

文章插图
 
结构如下
<div class="crad"><img class="head" src=https://www.isolves.com/it/cxkf/yy/CSS2/2021-06-17/"xxx.jpg">

浮动属性指定一个元素应沿其容器的左侧或右侧放置 , 允许文本和内联元素环绕它 。该元素从网页的正常流动(文档流)中移除 , 尽管仍然保持部分的流动性 。

浮动实现如下 , 主要是文本需要设置 overflow: hidden  。这里就不谈实现原理(BFC)了 , 有兴趣深究的可以查看这篇文章 CSS深入理解流体特性和BFC特性下多栏自适应布局[4]
.head{float: left;}.info{overflow: hidden;}如果右边是固定尺寸 , 比如这样的
CSS 浮动布局实例

文章插图
 
这种情况如何处理呢?很多人可能会想到右浮动 , 没错 , 但是要注意 , HTML 结构不需要改动 , 也就是浮动元素仍然在文本的前面
.head{float: right;}值得注意的是 , 如果需要设置两栏的间距 margin , 需要设置在浮动元素上
.head{float: left;margin-right: 8px;}完整代码可访问 float-2-cols[5]
三、三栏布局三栏布局的特点是左右是固定尺寸 , 中间自动撑满剩余空间 , 例如
CSS 浮动布局实例

文章插图
 
结构如下
<div><img class="head" src=https://www.isolves.com/it/cxkf/yy/CSS2/2021-06-17/"xxx.jpg">
编辑

浮动属性指定一个元素应沿其容器的左侧或右侧放置 , 允许文本和内联元素环绕它 。该元素从网页的正常流动(文档流)中移除 , 尽管仍然保持部分的流动性 。


推荐阅读