所有标记的第一级子标记的浮动值将破坏默认显示值

Float left for first-level children for all tags destroy default display value

本文关键字:默认 显示 一级      更新时间:2023-09-26

我需要设置float:left为所有第一级的孩子,但在添加这个样式元素与display:inline/inline-block/ other not block之后,#root选择器添加有默认值显示= display:block;在#root之前添加的元素具有标准默认显示值。

#root > * {
     float:left;
}

<div id="root">
    <div></div>
<div>

var aBefore = document.createElement("a");
var aAfter = document.createElement("a");
var root = document.getElementById("root");
document.body.insertBefore(aBefore,root);
root.appendChild(aAfter);
display(aBefore);
display(aAfter);
function display(element){
    alert(window.getComputedStyle(element).display);
}

例子:

http://jsfiddle.net/LpQ5V/1/

给一个元素一个float值必然意味着display: block

规范的操作部分:

元素生成一个块框,该块框向左浮动。

编辑本;Esailija正确地指出,display: none实际上会隐藏浮动元素:-)

再次编辑 —我上面所说的可能有些过于简单化了。并不是说float强迫display: block;它会导致与元素 display: block的含义相同的效果。它实际上只对"box"元素应用/works–(根据规范)。我还没有做详尽的经验测试,看看浮动<span><em>元素是否会做任何事情。