<div style="display:inline-block;width:100px;">
very long text
</div>
jakikolwiek sposób, aby użyć czystego CSS do wycięcia tekstu, który jest zbyt długi, zamiast wyświetlać go w następnej nowej linii i wyświetlać tylko maksymalnie 100 pikseli
Odpowiedzi:
<div class="crop">longlong longlong longlong longlong longlong longlong </div>
To jedyne możliwe podejście, które przychodzi mi do głowy
.crop {width:100px;overflow:hidden;height:50px;line-height:50px;}
W ten sposób długi tekst będzie nadal zawijany, ale nie będzie widoczny z powodu overflow
ustawiania, a ustawiając line-height
tak samo, jak height
upewniamy się, że tylko jedna linia będzie kiedykolwiek wyświetlana.
Zobacz demo tutaj i ładny opis właściwości przepełnienia z interaktywnymi przykładami.
Możesz użyć:
overflow:hidden;
aby ukryć tekst poza strefą.
Zwróć uwagę, że może wyciąć ostatnią literę (więc część ostatniej litery będzie nadal wyświetlana). Lepszym sposobem jest wyświetlenie na końcu wielokropka. Możesz to zrobić za pomocą text-overflow
:
overflow: hidden;
white-space: nowrap; /* Don't forget this one */
text-overflow: ellipsis;
title="full text goes here"
w html.
.crop {
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
width:100px;
}
Dlaczego nie użyć jednostek względnych?
.cropText {
max-width: 20em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Poniższy kod ukryje Twój tekst o ustalonej przez Ciebie szerokości. ale niezupełnie odpowiednie dla responsywnych projektów.
.CropLongTexts {
width: 170px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Aktualizacja
Zauważyłem na (mobilnych) urządzeniach, że tekst (zmieszany) ze sobą ze względu na (stała szerokość) ... więc zmodyfikowałem powyższy kod, aby był ukryty w następujący sposób:
.CropLongTexts {
max-width: 170px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
(Max-width) zapewnia, że tekst będzie responsywnie ukryty niezależnie od (rozmiaru ekranu) i nie będzie mieszany ze sobą.
.cut_text {
white-space: nowrap;
width: 200px;
border: 1px solid #000000;
overflow: hidden;
text-overflow: ellipsis;
}
<div class="cut_text">
very long text
</div>