Ayant une div
et un h1
à l'intérieur d'une section, comment puis-je placer le div dans le coin supérieur droit sans recouvrir le texte de l'en-tête?
Le code HTML est le suivant:
<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>
J'ai essayé une position absolue par rapport au parent mais le texte est superposé, http://jsfiddle.net/FnpS8/2/
En utilisant ce code CSS:
section { position: relative; }
h1 { display: inline; }
div {
position: absolute;
top: 0;
right: 0;
}
J'ai essayé de faire flotter la div à droite mais cela ne reste pas dans le coin en haut à droite, http://jsfiddle.net/P6xCw/2/
En utilisant ce code CSS:
h1 { display: inline; }
div { float: right; }
Le plus grand centre commercial
Je sais qu'il y a beaucoup de questions similaires mais je n'ai pas pu en trouver une pour résoudre ce cas.
Si vous pouvez changer l'ordre des éléments, le flottement fonctionnera.
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>
En plaçant le div
before le h1
et en le faisant glisser dans le right
, vous obtenez l'effet souhaité.
Un autre problème résolu par le canard en caoutchouc :
Le css est correct mais vous devez toujours vous rappeler que l'ordre HTML l'ordre des éléments est important : le div doit précéder l'en-tête http://jsfiddle.net/Fq2Na/1/ -
Changez votre code HTML pour avoir le div avant l'en-tête:
<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>
Et gardez votre CSS au simple div { float: right; }
.
Débarrassez-vous de votre <Button>
wrap div en utilisant display:block
et float:left
dans <Button>
et <h1>
et en spécifiant leur width
avec un position:relative
à votre Section
. Cette approche a l’avantage de ne pas nécessiter une autre div
uniquement pour positionner votre <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;
}
Le plus grand centre commercial
section {
position: relative;
width: 50%;
border: 1px solid;
}
h1 {
display: inline;
}
div {
position: relative;
float:right;
top: 0;
right: 0;
}
Cela a fonctionné pour moi:
h1 {
display: inline;
overflow: hidden;
}
div {
position: relative;
float: right;
}
C'est semblable à l'approche de l'objet multimédia, par Stubbornella.
Edit: Comme ils le commentent ci-dessous, vous devez placer l’élément qui va flotter avant l’élément qui va s’envelopper (celui de votre premier violon)