我爱编程

float

2018-06-11  本文已影响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世界

上一篇下一篇

猜你喜欢

热点阅读