float

作者: MoonBall | 来源:发表于2016-12-20 01:18 被阅读12次

视频地址

float 设计的目的

实现文字环绕图片显示效果

清除 float 带来的影响

  1. float 元素底部插入 clear 的 block 水平元素。
    特点:与外界可以联系,比如 margin 重叠。
    实现方式:
/* HTML block 水平元素走起 */
<div ...></div>
/* CSS after 伪元素底部生成 */
.clearfix:after {
  content: '';
  display: block;
  height: 0;
  overflow: hidden;
  clear: both;
}
/* 或者 */
.clearfix:after {
  content: '';
  display: table;
  clear: both;
}
  1. 父元素 BFC 化
    特点:不与外界联系,比如不会发生 margin 重叠
/* BFC 通常声明 */
float: left/right
position: absolute/fixed
overflow: hidden/scroll
display: inline-block/table-cell

对 float 特性滥用(使用 float 来砌砖头)

原因:

  1. float 使元素 block 块状化(砖头化)
  2. 破坏性造成的紧密排列特性(去空格化)—— HTML 中标签间空隙会转化为一个空格间隙、但是 float 后空格间隙会消失;如果是 实现的空格在 float 后不会消失,只是图文环绕后移动到后面了。

float 与流体布局

  1. 图文环绕
/* float 元素 */
/* 后面是 inline 跟随元素 */
  1. 左右各有元素,中间元素在剩余空间居中对齐
<div>
    <p style="float: left">左边很长很长很长很长</p>
    <p style="float: right">Just Right</p>
    <div style="text-align: center;">我在剩余空间居中对齐</div>
    <div style="clear:both;"></div>
</div>
效果图.png
  1. 左侧固定,右侧自适应的流体布局
<div>
/* float: left; width: 75px */
/* margin-left/padding-left: 75px */
<div>
  1. 右侧固定,左侧自适应
    可以使用上面左侧固定的方式,但是代码会将 float:right 右侧的元素写在 DOM 流的前面,有点不符合习惯,所以换一种方式。
<div class="container" style="float: left; width: 100%">
    /* 内容区域:margin-right/padding-right: 75px */
    /* 右侧固定内容:float: left; margin-left: -75px; width: 75px */
</div>
  1. 左右两边都自适应
    右边可以根据左边的宽度自动填满,再也不用把左边的宽度写死了。
/* 左边元素:float: left */
/* 右边自适应内容:display: table-cell */

相关文章

网友评论

      本文标题:float

      本文链接:https://www.haomeiwen.com/subject/dwrxvttx.html