float元素先后顺序

简介: float元素先后顺序

在练习经典左中右三列布局,左右固定宽度,中间撑开自适应中遇到的小问题

本来想效果是这种:
在这里插入图片描述
写完代码如下:

<style>
  .container {
    height: 200px;
  }
  .container div {
    height: 100px;
  }
  .left {
    float: left;
    width: 500px;
    background: red;
  }
  .center {
    background: green;
  }
  .right {
    float: right;
    width: 500px;
    background: blue;
  }
</style>
<div class="container">
  <div class="left">aaa</div>
  <div class="center">bbb</div>
  <div class="right">ccc</div>
</div>

发现实际效果是这样:

在这里插入图片描述
为什么呢???

首先是 left 元素,它是一个左浮动的float元素,会脱离文档流;接下来是 center 元素,这是一个正常的块元素,一个块元素默认独占一行,所以实际上 绿色区域是占满了宽度100%的(上图中红色区域下边也是绿色,只是被float的红色遮盖住了,给center设置宽度150px如下图);最后是 right 元素,它是右浮动的float元素,但因为上一行已经被center占满,只能在下一行右浮动。

在这里插入图片描述
那怎么才能实现想要的效果呢?

很简单,只要在dom中交换center和right的位置,这样,left和right都会浮动脱离文档流,后边的center就会自动填充第一行了。

<style>
     #center {
        background: green;
        height:150px;
      }
</style>
<div class="container">
  <div class="left">aaa</div>
  <div class="right">ccc</div>
  <div id="center">bbb</div>
</div>

如下图:(故意将center元素高度设置150px,为了说明后边的问题)
在这里插入图片描述

如上图,可以看到效果虽然实现了,但是 center 实际占满了一整行,这就会出现一个问题:当center 中文字过多时,会在 left 和right周围产生文字环绕现象,如下图:
在这里插入图片描述

解决办法:

1.给 center 增加 overflow:hidden;

<style>
     #center {
        background: green;
        height:150px;
        overflow:hidden;
      }
</style>

在这里插入图片描述

2.给 center 设置 margin-left: left宽度; margin-right: right宽度;

<style>
     #center {
        background: green;
        height:150px;
        margin:0 500px;
      }
</style>

在这里插入图片描述

相关文章
|
2月前
元素的浮动属性float
元素的浮动属性float。
15 6
|
3月前
元素的浮动属性float
【8月更文挑战第25天】元素的浮动属性float。
39 2
|
前端开发 容器
CSS之我是一个浮动元素(float)
大家好,我是一个浮动元素,我在CSS王国中是一个很重要的角色,也许你们现在在工作中很少见到我的身影,因为我的flex兄弟和position定位兄弟在大部分情况下可以取代我,但是我还是想详细的介绍一下我自己,毕竟我曾经也是一个在前端开发中随处可见的明星人物。
147 0
CSS之我是一个浮动元素(float)
|
程序员
好程序员分享居中一个float元素
  好程序员分享居中一个float元素,我们布局的时候,用margin来设置float元素的外边距来达到效果。对于,在文档流中的元素,我们很容易让它水平居中,只要给元素设置一个固定的宽度,用margin:0 auto;就行了,这种技巧甚至在IE6中兼容得很好。
1179 0
|
前端开发 JavaScript 容器
css position, display, float 内联元素、块级元素
position属性:position属性指出一个元素的定位方法。有4种可能值:static, relative, absolute or fixed: static:默认值,元素按照在文档流中出现的顺序渲染 absolute:绝对定位,元素相对于它的第一个被定位的祖先元素(非static)来进行定位 fixed:元素相对于浏览器window进行定位 relative:元素相对与它的正常位置进行定位,因此"left:20"就表示在元素正常位置的基础上,左移20像素的距离。
1064 0
|
6月前
|
存储 Java
百度搜索:蓝易云【Java语言之float、double内存存储方式】
由于使用IEEE 754标准进行存储,float和double类型可以表示非常大或非常小的浮点数,并且具有一定的精度。然而,由于浮点数的特性,它们在进行精确计算时可能会存在舍入误差。在编写Java程序时,需要注意使
96 0
|
18天前
|
存储 C语言
使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小
【10月更文挑战第13天】使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小。
53 1
|
4月前
|
存储 编译器 C++
C++从遗忘到入门问题之float、double 和 long double 之间的主要区别是什么
C++从遗忘到入门问题之float、double 和 long double 之间的主要区别是什么