float

作者: 啊啊啊阿南 | 来源:发表于2018-06-11 16:17 被阅读0次

float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。(来自http://www.w3school.com.cn/cssref/pr_class_float.asp)

浮动元素会生成一个块级框,即块状化的意思是一旦元素的float值不为none,那其display的计算值为 blocktable

可以在浏览器控制台输入以下js代码查看效果

var span = document.createElement('span'); document.body.appendChild(span); 
console.log('1. ' + window.getComputedStyle(span).display); // 设置元素左浮动 
span.style.cssFloat = 'left';
console.log('2. ' + window.getComputedStyle(span).display);

因此,没有任何理由出现下面的组合样式

span{
  float: left;
  display: block;  /*多余*/
}
span{
  float: left;
  vertical-align: middle;  /*多余 对块级元素无效*/
}
span{
  float: left;
  text-align: center;  /*多余 对块级元素无效*/
}

float属性与display属性值转换关系如图:

设定值 计算值
inline block
inline-block block
inline-table table
table-row block
table-row-group block
table-column block
table-column-group block
table-cell block
table-caption block
table-header-group block
table-footer-group block

如表可知,除了inline-table计算为table外,其他全都是block

float的作用机制

  • 让父元素高度塌陷,,“高度塌陷”只是让跟随的内容可以和浮动元素在一个水平线上,
  • “行框盒子和浮动元素的不可重叠性”,也就是“行框盒子如果和浮动元素的垂直高度有 重叠,则行框盒子在正常定位状态下只会跟随浮动元素,而不会发生重叠”(块状盒子是和图片完全重叠的)。

本篇借鉴出版书张鑫旭的CSS世界

相关文章

网友评论

    本文标题:float

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