Поплавок div в верхнем правом углу без перекрытия заголовка sibling
Имея div
и h1
внутри раздела, как я могу поместить 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; }
Я знаю, что есть много подобных вопросов, но я не мог найти решение этого случая.
Ответы
Ответ 1
Если вы можете изменить порядок элементов, плавающее будет работать.
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>
Ответ 2
Еще одна проблема решенная резиновой уткой:
Css прав, но вы все равно должны помнить, что порядок элементов имеет значение: 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; }
.
Ответ 3
Избавьтесь от <Button>
wrap div с помощью display:block
и float:left
в <Button>
и <h1>
и указав их width
с помощью position:relative
на ваш 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;
}
Ответ 4
section {
position: relative;
width: 50%;
border: 1px solid;
}
h1 {
display: inline;
}
div {
position: relative;
float:right;
top: 0;
right: 0;
}
Ответ 5
Это сработало для меня:
h1 {
display: inline;
overflow: hidden;
}
div {
position: relative;
float: right;
}
Это похоже на подход медиа-объекта, Stubbornella.
Изменить: как они комментируют ниже, вам нужно поместить элемент, который будет плавать, перед элементом, который будет обертываться (тот, что в вашей первой скрипке)