CSS text-overflow: ellipsis
na drugiej linii, czy to możliwe? Nie mogę tego znaleźć w sieci.
przykład:
chcę to tak:
I hope someone could help me. I need
an ellipsis on the second line of...
ale dzieje się tak:
I hope someone could help me. I ...
Odpowiedzi:
Wymogiem
text-overflow: ellipsis;
do pracy jest wersja jednej liniiwhite-space
(pre
,nowrap
etc). Co oznacza, że tekst nigdy nie osiągnie drugiej linii.Ergo. Niemożliwe w czystym CSS.
Moje źródło, kiedy szukałem dokładnie tego samego teraz: http://www.quirksmode.org/css/textoverflow.html (Quirksmode ftw!)
EDYCJA Jeśli dobrzy bogowie CSS wdrożą http://www.w3.org/TR/css-overflow-3/#max-lines , możemy zaryzykować w czystym CSS, używając
fragments
(nowych) imax-lines
(nowych). Również więcej informacji na http://css-tricks.com/line-clampin/EDYCJA 2 WebKit / Blink ma
line-clamp
:-webkit-line-clamp: 2
umieści wielokropek w 2. linii.źródło
Powinno to działać w przeglądarkach webkit :
źródło
overflow: hidden
to zadziałało, konieczne może być dodanie .Jak już inni odpowiedzieli, czyste rozwiązanie CSS nie istnieje. Istnieje bardzo łatwa w użyciu wtyczka jQuery , która nazywa się dotdotdot . Wykorzystuje szerokość i wysokość pojemnika, aby obliczyć, czy należy go obciąć i dodać elipsę.
Oto jsFiddle .
źródło
Przekonałem się, że odpowiedź Skeepa była niewystarczająca i również potrzebowała
overflow
stylu:źródło
jeśli ktoś używa SASS / SCSS i natknie się na to pytanie - być może ten mixin może pomóc:
dodaje to tylko elipsę w przeglądarkach webkit. reszta po prostu odcina to.
źródło
/* autoprefixer: off */
aby/*! autoprefixer: off */
inaczej-webkit-box-orient: vertical;
został usunięty po kompilacji, co oznacza, że elipsa nigdy się nie pokazałaWystarczy użyć zacisku linii dla przeglądarek, które go obsługują (większość współczesnych przeglądarek) i wrócić do 1 linii dla starszych.
źródło
Szkoda, że nie da się tego zrobić w dwóch liniach! Byłoby wspaniale, gdyby element był blokiem wyświetlania i miał wysokość ustawioną na 2em lub coś, a gdy tekst się przepełni, pokaże elipsę!
W przypadku pojedynczej wkładki możesz użyć:
W przypadku wielu linii możesz użyć funkcji Polyfill, takiej jak jQuery autoellipsis, która znajduje się na github http://pvdspek.github.com/jquery.autoellipsis/
źródło
dotdotdot
wspomniane w innym poście.Nie jestem zawodowcem JS, ale wymyśliłem kilka sposobów, w jakie możesz to zrobić.
HTML:
Następnie za pomocą jQuery przycinasz go do określonej liczby znaków, ale zostawiasz ostatnie słowo w ten sposób:
Wynik wygląda następująco:
Możesz też po prostu przyciąć go do określonej liczby znaków, takich jak to:
Wynik wygląda następująco:
Mam nadzieję, że to trochę pomoże.
Oto jsFiddle .
źródło
tutaj jest dobry przykład w czystym css.
źródło
Wcześniej używałem wtyczki jQuery-condense , która wygląda na to, że może robić, co chcesz. Jeśli nie, istnieją różne wtyczki, które mogą odpowiadać Twoim potrzebom.
Edycja: Zrobiłem ci wersję demo - zwróć uwagę, że połączyłem plik jquery.condense.js z wersją demonstracyjną, która robi magię, więc pełne uznanie dla autora tej wtyczki :)
źródło
Jest to niestandardowy CSS, który nie jest objęty obecną wersją CSS (Firefox go nie obsługuje). Zamiast tego spróbuj użyć JavaScript.
źródło
Czysty css sposób przycinania tekstu wielowierszowego z wielokropkiem
Dostosuj wysokość kontenera tekstu, linię kontrolną, aby przełamać przez -webkit-line-clamp: 2;
źródło
Zetknąłem się z tym problemem już wcześniej i nie ma czystego rozwiązania css
Właśnie dlatego opracowałem małą bibliotekę, aby poradzić sobie z tym problemem (między innymi). Biblioteka udostępnia obiekty do modelowania i wykonywania renderowania tekstu na poziomie litery. Możesz na przykład emulować przepełnienie tekstu: elipsa z dowolnym limitem (niekoniecznie jedna linia)
Przeczytaj więcej na http://www.samuelrossille.com/home/jstext.html, aby uzyskać zrzut ekranu, samouczek i łącze pobierania.
źródło
Jeśli ktoś próbuje uruchomić zacisk liniowy do pracy w Flexbox , jest to nieco trudniejsze - szczególnie gdy testujesz tortury naprawdę długimi słowami. Jedyne rzeczywiste różnice w tym fragmencie kodu to
min-width: 0;
element flex zawierający obcięty tekst iword-wrap: break-word;
. Porada dla https://css-tricks.com/flexbox-truncated-text/ w celu uzyskania wglądu. Oświadczenie: jest to wciąż webkit, o ile wiem.http://codepen.io/AlgeoMA/pen/JNvJdx (wersja codepen)
źródło
Wszystkie odpowiedzi tutaj są błędne, brakuje im ważnego elementu, wysokości
źródło
czysta metoda css oparta na -webkit-line-clamp, która działa na webkit:
źródło
Nie ma naprawdę łatwego sposobu na zrobienie tego. Użyj biblioteki Clamp.js .
źródło
Znalazłem rozwiązanie, jednak musisz znać przybliżoną długość znaków, która będzie pasować do twojego obszaru tekstowego, a następnie dołącz ... do poprzedniej spacji.
Sposób, w jaki to zrobiłem, to:
kod :
tutaj jest skrzypce - http://jsfiddle.net/GYsW6/1/
źródło