Η line-clamp
ιδιότητα περικόπτει κείμενο σε συγκεκριμένο αριθμό γραμμών.
Οι προδιαγραφές για αυτήν τη στιγμή είναι ένα Πρόχειρο Πρόχειρου, έτσι δεν σημαίνει ότι τίποτα εδώ δεν έχει τεθεί σε πέτρα επειδή είναι ένα έργο σε εξέλιξη. Τούτου λεχθέντος, ορίζεται ως συντομογραφία max-lines
και block-overflow
, το πρώτο του οποίου σημειώνεται ότι κινδυνεύει να πέσει στη Σύσταση υποψηφίων.
Είναι εύκολο να καταλάβετε πώς max-lines
θα ήταν αδερφό αφού η λειτουργία του (καθορισμός του αριθμού των γραμμών πριν από την περικοπή) έχει ήδη ψηθεί line-clamp
και οποιαδήποτε περαιτέρω αφαίρεση μπορεί να είναι περιττή Αλλά αυτό μας κάνει να μην έχουμε τροχιά, οπότε ας προχωρήσουμε.
Σύνταξη
.module ( line-clamp: (none | ); )
line-clamp
αποδέχεται τις ακόλουθες τιμές στο τρέχον προσχέδιο της προδιαγραφής:
none
: δεν ορίζει μέγιστο τον αριθμό των γραμμών και συνεπώς δεν θα υπάρξει περικοπή.: ορίζει τον μέγιστο αριθμό γραμμών πριν από την περικοπή του περιεχομένου και στη συνέχεια εμφανίζει μια έλλειψη (…) στο τέλος της τελευταίας γραμμής.
Αυτή η έλλειψη θα πρέπει να αποδίδεται ως χαρακτήρας Unicode (U + 2026) αλλά θα μπορούσε να αντικατασταθεί από ισοδύναμο με βάση τη γλώσσα περιεχομένου και τη λειτουργία γραφής του Χρήστη-Πράκτορα που χρησιμοποιείται.
Γεια, δεν μπορώ να το κάνω με υπερχείλιση κειμένου;
Δίκαιη ερώτηση, φίλε μου, και η απάντηση είναι, καλά…
(Δείτε τι έκανα εκεί;)
... κάπως.
text-overflow
έχει πράγματι μια ellipsis
τιμή που θα περικόψει το κείμενο:
.truncate ( text-overflow: ellipsis; /* Needed to make it work */ overflow: hidden; white-space: nowrap; )
Δείτε το κείμενο Pen υπερχείλισης του Geoff Graham (@geoffgraham) στο CodePen.
Ωραία ωραία, αυτή είναι μια καλή αρχή. Τι γίνεται όμως αν θέλουμε να παρουσιάσουμε την έλλειψη όχι στην πρώτη γραμμή αλλά κάπου, ας πούμε, την τρίτη γραμμή κειμένου;
Εκεί line-clamp
μπαίνει το παιχνίδι. Απλώς σημειώστε ότι χρησιμοποιείται ένας συνδυασμός τριών ιδιοτήτων για να συμβεί:
.line-clamp ( display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; )
Δείτε το στυλό γραμμής Pen (-webkit) του Geoff Graham (@geoffgraham) στο CodePen.
Ο Firefox το υποστηρίζει τώρα, ακριβώς με αυτόν τον τρόπο (με τα -webkit-
προθέματα και όλα).
Λοιπόν, ποια είναι η παγίδα;
Από τώρα, είναι η υποστήριξη του προγράμματος περιήγησης. Οι σφιγκτήρες γραμμής αποτελούν μέρος του CSS Overflow Module Level 3, το οποίο βρίσκεται επί του παρόντος στο Πρόχειρο του Editor και δεν υποστηρίζεται πλήρως αυτήν τη στιγμή.
Μπορούμε να κάνουμε κάποια δράση σύσφιξης γραμμών με ένα -webkit-
πρόθεμα (το οποίο, παράξενα, λειτουργεί σε όλα τα μεγάλα προγράμματα περιήγησης). Στην πραγματικότητα, έτσι έγινε το παραπάνω demo.
Θα θέλαμε να ακολουθήσουμε τη διαδρομή JavaScript αν θέλουμε. Το Clamp.js θα κάνει το κόλπο:
Δείτε το στυλό γραμμής Pen (clamp.js) του Geoff Graham (@geoffgraham) στο CodePen.
Υποστήριξη προγράμματος περιήγησης
Αυτή είναι η υποστήριξη για την ορθότητα και την παράνομη εφαρμογή του σφιγκτήρα γραμμής του WebKit.
Αυτά τα δεδομένα υποστήριξης του προγράμματος περιήγησης προέρχονται από την Caniuse, η οποία έχει περισσότερες λεπτομέρειες. Ένας αριθμός υποδεικνύει ότι το πρόγραμμα περιήγησης υποστηρίζει τη λειτουργία σε αυτήν την έκδοση και νεότερη.
Επιφάνεια εργασίας
Χρώμιο | Firefox | ΙΕ | Ακρη | Σαφάρι |
---|---|---|---|---|
14 * | 68 * | Οχι | 17 | 5 * |
Κινητό / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 * | 2.3 * | 5.0-5.1 * |