在右上角浮动div而不重叠兄弟标题

时间:2012-11-12 16:29:53

标签: css html5

在一个部分中有divh1,如何在右上角浮动div而不重叠标题文本?

HTML代码如下:

<section>
  <h1>some long long long long header, a whole line, 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6</h1>
  <div><button>button</button></div>
</section>

使用此CSS代码:

section { position: relative; }
h1  { display: inline; }
div {
    position: absolute;
    top: 0;
    right: 0;
}

使用此CSS代码:

h1  { display: inline; }
div { float: right;    }

我知道有很多类似的问题,但我找不到解决这个案例的问题。

5 个答案:

答案 0 :(得分:31)

如果你可以改变元素的顺序,浮动就可以了。

section {
  position: relative;
  width: 50%;
  border: 1px solid;
}
h1 {
  display: inline;
}
div {
  float: right;
}
<section>
  <div>
    <button>button</button>
  </div>

  <h1>some long long long long header, a whole line, 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6</h1>
</section>

div 放在之前h1并将其浮动到right,即可获得所需效果。

答案 1 :(得分:10)

另一个problem solved by the rubber duck

css是对的,但你仍然需要记住HTML elements order matters:div必须在标题之前。 http://jsfiddle.net/Fq2Na/1/ enter image description here

更改HTML代码,使标题前面有div:

<section>
<div><button>button</button></div>
<h1>some long long long long header, a whole line, 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6</h1>
</section>

并将您的CSS保持为简单的div { float: right; }

答案 2 :(得分:1)

<Button>display:block中使用float:left<Button>摆脱<h1>换行div并使用width指定position:relative {1}} Section。这种方法的优点是不需要另一个div来定位<Button>

<强> HTML

<section>  
    <h1>some long long long long header, a whole line, 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6</h1>     
    <button>button</button>
</section>

CSS

section {
    position: relative;
    width: 50%;
    border: 1px solid;
    float:left;
}
h1 {
    display: block;
    width:70%;
    float:left;
}
button
{
    position:relative;
    top:0;
    left:0;
    float:left;
}

答案 3 :(得分:0)

section {
    position: relative;
    width: 50%;
    border: 1px solid;
}
h1 {
    display: inline;
}
div {
    position: relative;
    float:right;
    top: 0;
    right: 0;

}

答案 4 :(得分:0)

这对我有用:

h1 {
    display: inline;
    overflow: hidden;
}
div {
    position: relative;
    float: right;
}

这与Stubbornella的媒体对象的方法相似。

编辑:正如他们在下面评论的那样,你需要在要包装的元素(你的第一个小提琴)中放置要浮动的元素