Des questions similaires ont été posées, mais les solutions correspondent à ce que j'essaie de faire. En gros, j'ai un article avec un titre ( <h1>
). Je ne veux pas contrôler la longueur du titre, mais je ne veux pas non plus que le titre apparaisse sur plusieurs lignes. Existe-t-il un moyen, avec css ou jQuery, de redimensionner le texte en fonction de la largeur d'un <div>
tag ?
Je sais ce que je ferais avec le pseudocode si je pouvais détecter le chevauchement du texte par rapport au bord de l'écran. <div>
:
var fontize = $("#title").css("font-size");
var i = /*remove unit from integer*/
while( /*text overlaps div*/ ){
$("#title").css("font-size", --i+"pt");
}
S'il y a un attribut CSS que je peux définir, ce serait encore mieux, mais je n'arrive pas à en trouver un (overflow ne fonctionnerait pas dans cette situation).
1 votes
J'aime l'attitude consistant à préférer un CSS solution. En effet, elle est plus agréable car elle permet également un affichage correct pour les utilisateurs qui n'activent pas ou ne peuvent pas utiliser Javascript (il peut y avoir des raisons à cela).
3 votes
Je n'arrive pas à croire que css3 n'a pas de fonctionnalité à ce sujet. C'est tellement sale en JS ... et ça doit être un besoin tellement commun maintenant avec le monde réactif !
0 votes
CSS oui, avec
calc
. Voir : stackoverflow.com/a/32251176/11769765 codepen.io/CrocoDillon/pen/fBJxu .