Floated ::与块级兄弟交互后

时间:2013-06-07 20:12:28

标签: html css css-float

我正在进行一项我不太了解的互动。我正在构建一个进度条(严重的是,我们可以实现整个 standard吗?)根据data- *属性显示信息,所以我使用:之前和:之后显示标签。

我有一个小提琴:http://jsfiddle.net/WtrfL/

HTML:

<div class="wrap">
    <div class="inner">
    </div>
</div>

样式:

.wrap {
    width:500px;
    height:2em;
    border:1px solid black;
}

.wrap:before {
    content:"1";
    float:left;
    border:1px solid black;
}

.wrap:after {
    content:"2";
    float:right;
    border:1px solid black;
}

.inner {
    width:30%;
    height:100%;
    background-color:#DDD;
    border:1px solid #888;
}

不幸的是,我遇到了这种情况:

Diagram showing an outer bar, an inner bar, a box with a 1 floating in the top left, and a box with a 2 beneath the outer bar floating on the right

我希望[2]位于主条的内部,而不是在它下面。

我在Windows上的IE9和Chrome 27中看到了相同的行为,所以我很确定这是误解了这些东西的运行方式,而不是渲染引擎中的错误。

那么......怎么了?有任何想法吗?我很擅长黑客,这只是现在的原型。

1 个答案:

答案 0 :(得分:1)

我从不在伪元素上使用浮点数。我会把它们定位为绝对的。像这样:

.wrap {
    width:500px;
    height:2em;
    border:1px solid black;
    position: relative;
}

.wrap:before {
    content:"1";
    position: absolute;
    left: 0;
    top: 0;
    border:1px solid black;
}

.wrap:after {
    content:"2";
    position: absolute;
    right: 0;
    top: 0;
    border:1px solid black;
}

我在你的小提琴中测试它看起来很好! http://jsfiddle.net/WtrfL/1/