Как обрезать несколько тегов абзаца HTML, чтобы они поместились в прямоугольник с явно заданным размером с помощью CSS3 или JavaScript (переполнение текста, усечение и т. Д.)? - PullRequest
2 голосов
/ 08 января 2012

Учитывая, что у вас есть HTML-раздел / раздел с заголовком, несколько тегов абзаца (или что-нибудь, что приведет к разметке тегов уровня блока, на самом деле - h1-6, ul, ol, p и т. Д.) И, возможно, нижний колонтитул или другой контент, как сделать так, чтобы «контент» вписывался в это поле?

Вот скриншот проблемы:

CSS Text Overflow

Структура HTML выглядит примерно так:

<section class='box'>
  <header>
    <h2 class='title'>A Title</h2>
  </header>
  <footer>[the image]</footer>
  <div class='content'>
    <p></p>
    <p></p>
    ...
    <p></p>
  </div>
</section>

Я пытался установить text-overflow: ellipsis для тегов section, div и p, но это не работает. Это возможно?

Действительно просто смотрю, чтобы увидеть, что здесь и что невозможно:

Возможно

  • Вы, безусловно, можете использовать jQuery для перебора содержимого в блоке, найти отрубленный элемент блока (top box bottom) и обрезать текст. Но это последнее средство, так как оно быстро превращается в проблему с производительностью из-за большого количества коробок и всех различных крайних случаев.
  • Вы можете создать «сводный» текстовый блок на стороне сервера, который вписывается в размеры блоков. Но это не сработает, если вы измените размер шрифта или размер поля.
  • Вы можете создать набор правил font-size и line-height, которые заставляют текст как минимум обрезаться между строками, но это очень хрупко.
  • Как и @Madmartigan в комментариях, вы также можете добавить градиент внизу окна, чтобы затемнить текст.

Невозможно

  • Вы не можете установить text-overflow: ellipsis в этом случае (по крайней мере из вещей, которые я пробовал).

1 Ответ

0 голосов
/ 11 апреля 2014

Попробуйте один из этих 3 вариантов для элемента div.content:

  1. Использование overflow:hidden
  2. Использование полосы прокрутки - jQuery slimScroll
  3. Не устанавливать свойство высоты
...