Justifier la dernière ligne d'un div?
Je ne pense pas que le "pourquoi?" de cette question est importante...mais ce que j'ai à faire est de text-align:justify
la dernière ligne de texte à partir d'un DIV. Normalement, la dernière ligne (ou le premier si il n'y a pas d'autres lignes, ce qui est le cas actuel) d'une div n'est pas justifié, mais aligné à gauche. Je sais qu'il n'aurait pas de sens du tout, mais j'ai absolument besoin de la dernière ligne pour être justifié!
- Malgré que vous en indiquant le Pourquoi n'est pas important, je suis toujours curieux à ce sujet.
- Disons que je travaille avec les divisions que "pour une raison quelconque (il y a une bonne raison) peut avoir une seule ligne....et je tiens à les justifier.
- Oui, ils sont 618px
- Mise à jour: j'ai pu essayer d'utiliser
word-spacing
et JavaScript pour atteindre cet objectif... - Connexes: l'Image vers la gauche à partir d'un texte justifié
Vous devez vous connecter pour publier un commentaire.
Voici un cross-browser méthode qui fonctionne dans IE6+
Il combine text-align-last: justifier; qui est pris en charge par IE, et une variation de l' :après le pseudo-contenu de la méthode. Il inclut un correctif pour supprimer l'espace supplémentaire ajouté après une ligne de texte des éléments.
CSS:
Si vous avez une ligne de texte, utilisez cette option pour empêcher la ligne vide au-dessus de la CSS va provoquer
Plus de détails:
http://kristinlbradley.wordpress.com/2011/09/15/cross-browser-css-justify-last-line-paragraph-text/
dl
et il s'avère videdd
s saut de mise en forme (le fait d'avoir un 0 en hauteur) et pour sûr, caché.
a fait le tour.margin-bottom
de lap
(0, peut-être) devrait fonctionner assez bien dans la plupart des cas.margin-top: -1em;
à la suite dep
. la réduction de la marge inférieure de la justifiéesp
ne fait rien pour moi (Chrome 34).C'est le plus propre hack je pouvais trouver/trouver. Votre kilométrage peut varier.
J'ai testé mon exemple dans IE8, Firefox, Chrome, Opera, Safari.
IE7 ne pas mettre en œuvre la
:after
pseudo-classe, afin de ne pas y travailler.Si vous avez besoin d'IE7 soutien, il serait sans doute travailler à coller les
" ___"
à l'intérieur d'un parasitespan
à la fin de ladiv
(utiliser JS?).Démo (le code)
CSS:
HTML:
Malheureusement, il semble faire la
div
une ligne plus haut qu'il ne devrait l'être.word-spacing
, c'est le mieux que je puisse faireword-spacing
, vous devez poster ici. Je ne pouvais pas trouver une meilleure solution sur les internets que celle que j'ai posté ici.Cette méthode a fonctionné pour moi:
Cette astuce est appelé "Ben Justification" *
Bien, ce n'est pas tout à fait tous avec css, vous devez ajouter un petit plus à la fin de la ligne. Le balisage de la rubrique ci-dessus est...
Le petit plus à la fin de la ligne déclenche la justification de la ligne par le démarrage d'une nouvelle ligne. Le contenu supplémentaire (
<span> </span>
) est forcé sur une nouvelle ligne parce que l'espace est fait 1000px de large (avec word-spacing) et
est traité comme un mot. La ligne supplémentaire ne s'affiche pas parce que la taille de la police est fixé à 0px.Mise à jour, 23-Jan-11: j'ai juste mis à jour le balisage pour inclure un espace après le " à l'intérieur de la plage et du réglage de la taille de la police de 1px pour la durée: cela est nécessaire pour IE8. Grâce à Mamoun Gadir pour souligner IE problèmes.
Le css pour le titre ci-dessus est...
* à Moins que la preuve démontre que cette technique a été publié avant, je, soussigné, nom de cette technique "Ben Justification" et déclarer qu'il est libre pour tous à utiliser.
Ben Argile, Janv 2010.
Source: http://www.evolutioncomputing.co.uk/technical-1001.html
CSS3 offre une solution pour ce sous la forme de
text-align-last
, voir http://www.w3.org/TR/2010/WD-css3-text-20101005/#text-align-lasttext-align-last
semble être la moins invasive outil à utiliser.Pourquoi n'utilisez-vous pas
text-align: justify;
?Il n'justifier chaque ligne. Même si il n'y a qu'une seule ligne.Modifier: je pense que vous êtes à la recherche pour cette, comme scragz dit. De toute façon, cela ne fonctionne que sous IE 5.5 et IE 6.
Il y a un
CSS3IE 5.5/6 (merci, CSS3.com, NON!) propriété appeléetext-justifier
qui peut faire ce que vous voulez avec:ce n'est Pas sûr de prise en charge du navigateur.Ce qu'est une arnaque.J'ai eu un problème où certaines des réponses ci-dessus, travaillé, mais a ajouté un visible nouvelle ligne à la fin - ce qui est inacceptable, parce que la boîte avait une couleur d'arrière-plan. Je fixe la justification avec le code ci-dessous:
jQuery:
HTML:
Quand le !DOCTYPE HTML5 est, Kristin et Jacqui les solutions de cause
un supplément de retour à la ligne, ce qui est difficile à enlever. Si cela vous dérange (comme moi),
voici encore une autre idée:
Il a une autre inconvénients: travaux de texte d'une seule ligne seulement, et exige
modification du contenu, comme indiqué ci-dessus, ce qui n'est pas toujours
c'est faisable ou pratique. Mais il y a certaines situations où cela est
pas de problème (comme dans mon cas). Il peut même être utile d'avoir
contrôle sur les positions où l'espace supplémentaire sera inséré.
Les Styles sont en ligne pour des raisons de concision seulement, bien sûr.
Je l'ai testé avec les dernières FFox/IE uniquement.
Si la fermeture de balise div est suivi par un saut de ligne ou si la balise div qui rend l'utilisation de l'équivalent d'un remplissage en bas/de la marge, alors vous pouvez simplement le remplacer par une dernière ligne invisible des espaces insécables comme ceci:
Même si cela peut ne pas être la plus belle solution, c'est probablement le plus sûr de la croix-navigateur solution, car il ne repose pas sur n'importe quel type de non-standard tweak. Assurez-vous juste qu'il y a assez de "nbsp" caractères à toujours provoquer un saut de ligne tout en gardant à l'intérieur d'une marge sûre de le maximum autorisé sur une seule ligne.
Pour lesquelles on voudrait cela, eh bien, je peux donner ma propre justification à qui il pourrait être d'intérêt; il y a des situations où vous souhaitez diviser en continu un bloc de texte ou un paragraphe de texte pour insérer des images, des tableaux ou, comme dans mon cas personnalisée notes de bas de page à droite avant un saut de page. Si vous le faites, alors vous voulez la dernière ligne droite avant la pause, pour être justifié, comme le texte reprend juste après l'arbitraire de la pause. Dans mon cas, les notes de bas de page sont de longueur variable, de sorte que j'ai de les entrer manuellement, et donc j'ai aussi besoin d'manuellement diviser le bloc de texte et de forcer manuellement l'alignement de la dernière ligne avant la pause. Je ne suis pas au courant de tout automatisé solution est également compatible avec tous les navigateurs, mais l'ajout d'un tas d'espaces insécables fait le travail pour moi au moins...