Я знаю, что мы можем ограничить текст определенными символами, используя многоточие или даже использовать JavaScript. Но мне интересно, если нет доступного JavaScript, и я не хочу, чтобы многоточие (...) в конце моего текста, можно ли это сделать, просто используя CSS?
Например, скажем, у меня есть следующий HTML-код: если я хочу ограничить myText всего 20 символами (с пробелами), как мне это сделать?
<div class = "myDiv">
<p class = "myText">HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets and scripting
languages such as JavaScript.</p>
</div>«Если я хочу ограничить myText всего 20 символами (с пробелами), как мне это сделать?» - если вы изначально не использовали моноширинный шрифт, это вряд ли будет возможно. Используя моноширинный шрифт, вы можете попытаться ограничить его подходящую ширину, используя относительную единицу измерения, например ch или em.






Краткий ответ: не без JS.
Приблизительно, если вы знаете размер шрифта и пользователь не масштабирует, вы можете сделать скрытое переполнение.
.myText {
width: 151px; /* Adjust this value based on your specific font and size */
white-space: nowrap;
overflow: hidden;
}<div class = "myDiv">
<p class = "myText">HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets and scripting
languages such as JavaScript.</p>
</div>Существует значение длины CSS ch.
p {
overflow: hidden;
max-width: 75ch;
white-space: nowrap;
}
И как это будет работать здесь?
вам не хватает шрифта... не каждый шрифт является моноширинным, поэтому символы могут иметь разную длину... поэтому этот пример не всегда работает.
Я думаю, что единственный способ обойтись без Javascript — это использовать моноширинный шрифт и модуль CSS ch.
.myDiv {
width: 20ch;
overflow: hidden;
font-family: Courier, monospace;
white-space: nowrap;
}<div class = "myDiv">
<p class = "myText">HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets and scripting
languages such as JavaScript.</p>
</div>
Теоретически вы можете указать альтернативу символу многоточия, используя text-overflow (и эта альтернатива также может быть пустой строкой), но поддержка браузеров пока не очень хороша, в настоящее время только Firefox.