Jak można zawijać tekst, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
który przekracza szerokość div
(powiedzmy 200px
)?
Jestem otwarty na wszelkiego rodzaju rozwiązania, takie jak CSS, jQuery itp.
Jak można zawijać tekst, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
który przekracza szerokość div
(powiedzmy 200px
)?
Jestem otwarty na wszelkiego rodzaju rozwiązania, takie jak CSS, jQuery itp.
Odpowiedzi:
Spróbuj tego:
div {
width: 200px;
word-wrap: break-word;
}
word-break: break-all;
wtedy w normalnym tekście, łamie słowa na środku, co jest brzydkie ... Czy nie możemy mieszać obu zachowań?
word-break: break-all
i nie word-wrap: break-all
. Łatwy do popełnienia błąd
Na bootstrap 3 upewnij się, że białe znaki nie są ustawione jako „nowrap”.
div {
width: 200px;
word-break: break-all;
white-space: normal;
}
white-space: normal;
też potrzebowałem, zanim zadziałało.
Możesz użyć miękkiego łącznika w następujący sposób:
aaaaaaaaaaaaaaa­aaaaaaaaaaaaaaa
Będzie to wyglądać jak
aaaaaaaaaaaaaaa-
aaaaaaaaaaaaaaa
jeśli pole zawierające nie jest wystarczająco duże lub
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Jeśli to jest.
­
?
aaaaaa...aaaaa
się a­a­a­a­a­a­a...a­a­a­a
?
div {
// set a width
word-wrap: break-word
}
The „ word-wrap
rozwiązanie” działa tylko w IE i przeglądarek wspiera CSS3
.
Najlepszym rozwiązaniem dla różnych przeglądarek jest użycie języka po stronie serwera (php lub cokolwiek innego) do zlokalizowania długich ciągów znaków i umieszczenia w nich w regularnych odstępach czasu jednostki html. ​
Ta encja ładnie łamie długie słowa i działa na wszystkich przeglądarkach.
na przykład
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa​aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Jedyny, który działa w IE, Firefox, Chrome, Safari i operze, jeśli w słowie nie ma spacji (takich jak długi adres URL), to:
div{
width: 200px;
word-break: break-all;
}
Stwierdziłem, że jest to kuloodporne.
Inną opcją jest również użycie:
div
{
white-space: pre-line;
}
Spowoduje to ustawienie wszystkich elementów div we wszystkich przeglądarkach, które obsługują CSS1 (czyli prawie wszystkie popularne przeglądarki już w IE 8)
<pre>
element, który chcesz zawijać słowa, to działa word-break
lub word-wrap
nie.
.wrap
{
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
Dodaj ten CSS do akapitu.
style="width:420px;
min-height:15px;
height:auto!important;
color:#666; padding: 1%;
font-size: 14px;
font-weight: normal;
word-wrap: break-word;
text-align: left"
text-overflow:ellipsis
tak jak następnego faceta, ale to nie jest poprawna odpowiedź na to pytanie. Chce zawinąć słowo, a nie obciąć przepełnienie.
Przykład z trików CSS :
div {
-ms-word-break: break-all;
/* Be VERY careful with this, breaks normal words wh_erever */
word-break: break-all;
/* Non standard for webkit */
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
Więcej przykładów tutaj .
Dla mnie rozwiązaniem po stronie serwera jest: $message = wordwrap($message, 50, "<br>", true);
gdzie $message
jest zmienna łańcuchowa zawierająca słowo / znaki do rozbicia. 50 to maksymalna długość dowolnego segmentu i "<br>"
tekst, który chcesz wstawić co (50) znaków.
Spróbuj tego
div{
display: block;
display: -webkit-box;
height: 20px;
margin: 3px auto;
font-size: 14px;
line-height: 1.4;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
właściwość text-overflow: ellipsis add ... i linia-zacisk pokazują liczbę linii.
W treści HTML spróbuj:
<table>
<tr>
<td>
<div style="word-wrap: break-word; width: 800px">
Hello world, how are you? More text here to see if it wraps after a long while of writing and it does on Firefox but I have not tested it on Chrome yet. It also works wonders if you have a medium to long paragraph. Just avoid writing in the CSS file that the words have to break-all, that's a small tip.
</div>
</td>
</tr>
</table>
W treści CSS spróbuj:
background-size: auto;
table-layout: fixed;
Spróbuj tego
div {display: inline;}
Użyłem bootstrapu. Mój kod HTML wygląda jak ...
<div class="container mt-3" style="width: 100%;">
<div class="row">
<div class="col-sm-12 wrap-text">
<h6>
text content
</h6>
</div>
</div>
</div>
CSS
.wrap-text {
text-align:justify;
}
text-justify
klasę, więc możesz go używać zamiast.wrap-text
możesz użyć tego CSS
p {
width: min-content;
min-width: 100%;
}
próbować:
overflow-wrap: break-word;
Użyj word-wrap:break-word
atrybutu wraz z wymaganą szerokością. Głównie wstaw
szerokość w pikselach, a nie w procentach.
width: 200px;
word-wrap: break-word;