Si un div a “clear:right”, rien ne doit flotter à la droite de celui-ci, devrait-il?
Me semble avoir été confus quant à ce que le css "clair" mot clé.
J'ai un certain nombre d'éléments div, avec "float:left". L'avant-dernier élément div a aussi "clear:right". Je pensais que serait la cause de l'élément d'aller à la ligne suivante. Mais pour moi, ça ne marche pas.
Voici mon exemple:
<div class="Section">
<div class="Thumbnail"></div>
<div class="Number">0</div>
<div class="Title">ShopTVC Wallace and Gromit WOA 6Apr11</div>
<div class="Duration">00:00:32</div>
</div>
Ressemble à ceci:
Je suis en train de faire la durée ("00:00:32"), apparaissent sur la ligne suivante, à droite de la vignette (le rectangle bleu).
Je sais que je pourrais mettre la dernière de trois divs dans un autre div conteneur, mais le but de cette question est de comprendre pourquoi "clear:right" ne s'arrête pas la durée de partir à la dérive sur la droite du titre.
Voici le CSS:
div.Section
{
overflow:auto;
background:cornsilk;
border:2px solid navy;
padding:12px;
}
div.Section div.Thumbnail
{
width:64px;
height:42px;
background:SteelBlue;
foreground:Navy;
}
div.Number
{
width:16px;
margin-left:6px;
}
div.Duration
{
margin-left:22px;
}
div.Section div
{
float:left;
}
div.Section div.Title
{
color:DarkGreen;
clear:right;
}
Et, bien sûr, le jsfiddle lien: http://jsfiddle.net/8J7V6/3/
OriginalL'auteur Andrew Shepherd | 2012-04-11
Vous devez vous connecter pour publier un commentaire.
La
clear
propriété n'empêche pas les éléments de placée dans un espace après le effacé élément. Il empêche l'élément d'être placé là où il y a déjà des éléments flottait à la direction avant. L'ajout d'unclear:left
àdiv.Duration
ferait-il être placé au-dessous de la marine de la zone. L'ajout d'un<br/>
avant la durée est susceptible de résoudre votre problème, ou, comme vous l'avez déjà dit dans votre question, vous pouvez utiliser un autre div conteneur pour les trois dernières divs.OriginalL'auteur ahruss
ahruss la réponse est correcte, mais j'ai aussi remarqué que personne n'a vraiment répondu à votre question. Fondamentalement
clear:left
se réfère à gauche les éléments flottants.clear:right
se réfère à droite les éléments flottants.Depuis votre élément flottant à gauche, pas droit,
clear:right
de ne pas l'affecter.L'autre chose que vous pourriez faire est d'envelopper les deux éléments de texte dans un div distinctes à partir de la boîte bleue, un flotteur qui div conteneur et le bleu de la div, puis quand vous flotter les deux éléments de texte, votre
clear:left
code va mettre la date dans le texte toujours à l'intérieur de votre conteneur div et non pas sous le bleu sur l'image à gauche.Comme ceci:
et ajouter ceci dans votre css:
Ajouter à toutes les autres styles visuels dont vous avez besoin.
OriginalL'auteur chazthetic
Il n'y a pas quelque chose de flottant à la droite de celui-ci. Le Problème auquel vous êtes confronté, c'est que vous avez déjà envoyé la totalité de votre contenu avant le temps, et puis vous dites le temps de flotter à gauche. C'est toujours flottant à gauche, c'est juste empiler sur le dessus du contenu déjà là à gauche.
Mais oui, la compensation de la droite fait que l'élément de briser passé tous les éléments qui sont flottaient vers la droite avant de. Claire n'a pas d'incidence sur les éléments d'après elle.
Avez-vous essayé à l'aide d'un simple
<br />
après votre titre?OriginalL'auteur animuson
J'ai utilisé rembourrage et de la marge. Si il n'est pas possible de l'utiliser dans votre cas, alors la solution suivante ne sera pas approprié.
http://jsfiddle.net/8J7V6/5/
clear: right
ne pas de travail.Peut-être, depuis le div est à gauche, il devrait donc clair:gauche. Je ne suis pas sûr. Si je me trompe, corrigez-moi. Je suis toujours en apprentissage.
vérifier ahruss réponse ci-dessous. Ils expliquent comment effacer les œuvres.
Merci.
OriginalL'auteur sarwar026
.Duration { clear: left; }
devrait fonctionnerOriginalL'auteur Matijs