Используя только CSS, есть ли способ ограничить текст внутри div ровно X количеством символов без использования многоточия?

Я знаю, что мы можем ограничить текст определенными символами, используя многоточие или даже использовать 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>

Теоретически вы можете указать альтернативу символу многоточия, используя text-overflow (и эта альтернатива также может быть пустой строкой), но поддержка браузеров пока не очень хороша, в настоящее время только Firefox.

CBroe 15.04.2024 08:30

«Если я хочу ограничить myText всего 20 символами (с пробелами), как мне это сделать?» - если вы изначально не использовали моноширинный шрифт, это вряд ли будет возможно. Используя моноширинный шрифт, вы можете попытаться ограничить его подходящую ширину, используя относительную единицу измерения, например ch или em.

CBroe 15.04.2024 08:34
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
60
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Краткий ответ: не без 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;
}

И как это будет работать здесь?

mplungjan 15.04.2024 08:41

вам не хватает шрифта... не каждый шрифт является моноширинным, поэтому символы могут иметь разную длину... поэтому этот пример не всегда работает.

Dwza 15.04.2024 08:56
Ответ принят как подходящий

Я думаю, что единственный способ обойтись без 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>

Другие вопросы по теме