Je crée un site Web réactif pour l'école et ma question est:
Comment définir une longueur maximale de caractères des phrases (avec CSS) sur mon site Web (comme 75 caractères) pour que, lorsque j'ai un très grand écran, les phrases ne dépassent pas 75 caractères.
J'ai essayé une largeur maximale mais cela gâche ma mise en page. J'utilise flexbox et les requêtes multimédias pour le rendre réactif.
textarea
ouinput
s'il y a unemaxlength="50"
propriété de longueur maximale ( c'est dans le HTML) pour eux ou vous devrez utiliser Javascript. De plus, je pense que j'ai mal lu cela, définir une largeur forcera la phrase à passer à la ligne suivante lorsqu'elle atteindra la fin. Il s'agit du comportement par défaut.Réponses:
Vous pouvez toujours utiliser une méthode tronquée en définissant un
max-width
et un débordementellipsis
comme celui-ciUn exemple: http://jsfiddle.net/3czeyznf/
Pour une troncature multi-lignes, regardez une
flex
solution. Un exemple avec troncature sur 3 lignes.Un exemple: https://codepen.io/srekoble/pen/EgmyxV
la source
Il existe une «valeur de longueur» CSS de
ch
.De MDN
Cela peut se rapprocher de ce que vous recherchez.
la source
ch
unité) ne semble pas fonctionner (comme prévu) pour moi dans Chrome 50, IE11 ou FF45?!height
etoverflow:hidden
. J'ai aimé les points de suspension, mais je n'ai pu le faire fonctionner que si je définissaiswhite-space:no-wrap
. Dans mon cas, le texte peut s'habiller, mais ne pas dépasser une certaine limite de caractères dans son conteneur.white-space: nowrap;
Essayez ceci pour tronquer les caractères après l'avoir défini sur max-width. J'ai utilisé 75ch dans ce cas
Pour la troncature multiligne, veuillez suivre le lien.
Un exemple: https://codepen.io/srekoble/pen/EgmyxV
Nous utiliserons webkit css pour cela. En bref, WebKit est un moteur de rendu de navigateur Web HTML / CSS pour Safari / Chrome. Cela peut être spécifique au navigateur car chaque navigateur est soutenu par un moteur de rendu pour dessiner la page Web HTML / CSS.
la source
max-width:100%;
pour le div wrapper. Vous avez donc une troncature réactive.code d'exemple:
la source
Avec Chrome, vous pouvez définir le nombre de lignes affichées avec " -webkit-line-clamp ":
Donc pour moi c'est à utiliser dans une extension donc c'est parfait, plus d'informations ici: https://medium.com/mofed/css-line-clamp-the-good-the-bad-and-the-straight-up -breaké-865413f16e5
la source
Ce n'est pas possible avec CSS, vous devrez utiliser le Javascript pour cela. Bien que vous puissiez définir la largeur du p jusqu'à 30 caractères, les lettres suivantes tomberont automatiquement, mais encore une fois, ce ne sera pas aussi précis et variera si les caractères sont en majuscules.
la source
HTML
jQuery
CSS
RÉSULTAT
Jsfiddle
la source
Solution CSS pure pour tronquer les caractères multi-lignes
J'ai eu un problème similaire et j'ai trouvé cette excellente solution css uniquement de Hackingui.com . Vous pouvez lire l'article pour plus d'informations mais vous trouverez ci-dessous le code principal.
Je l'ai testé et cela fonctionne parfaitement. Espérons que quelqu'un le trouve utile avant d'opter pour les options JS ou côté serveur
la source
Réponse de grille CSS moderne
Affichez le code entièrement fonctionnel sur CodePen . Compte tenu du code HTML suivant:
Vous pouvez utiliser CSS Grid pour créer trois colonnes et indiquer au conteneur de prendre une largeur maximale de 70 caractères pour la colonne du milieu qui contient notre paragraphe.
Voici à quoi cela ressemble (Checkout CodePen pour un exemple pleinement fonctionnel):
Voici un autre exemple où vous pouvez utiliser minmax pour définir une plage de valeurs. Sur les petits écrans, la largeur sera fixée à 50 caractères de large et sur les grands écrans, elle sera de 70 caractères.
la source
ch
sur les colonnes. Charmant.rrdOvr
. ;)Ce message est pour une solution CSS, mais le message est assez ancien, donc juste au cas où d'autres trébucheraient dessus et utiliseraient un framework JS moderne tel que Angular 4+, il existe un moyen simple de le faire via Angular Pipes sans avoir à le faire. déconner avec CSS.
Il existe probablement des moyens "React" ou "Vue" de faire cela aussi. C'est juste pour montrer comment cela pourrait être fait dans un cadre.
truncate-text.pipe.ts
app.component.html
la source
Essayez ma solution de 2 manières différentes.
la source