Какая наилучшая комбинация UI / CSS при отображении строк неизвестной длины?

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

альтернативный текст http://x01.co.uk/floated_items.gif

Возможные:

  • Перед отображением данных обрезайте указанное количество символов. Требуются догадки о том, сколько персонажей будет «в безопасности».
  • Переполнение: скрыто. Хаки.
  • Удалите фон и оставьте только верхнюю границу на каждом элементе.

Можно, но глупо:

  • Создайте полосу прокрутки в каждом элементе, выполнив overflow: auto, это будет выглядеть ужасно.
  • Добавьте в контейнер фоновое изображение. Не гарантируется, что всегда есть равное количество элементов, поэтому этот параметр отключен.

Любая помощь по этому раздражающему вопросу приветствуется!

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
6
0
502
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Вы используете фиксированный размер шрифта, т.е. указанный в пикселях? Если нет, вам также необходимо рассмотреть различные варианты размера текста в каждом браузере, что, вероятно, сделает концепцию обрезки строки излишней. Если он исправлен, то, возможно, увидев, сколько W вы можете уместить, ограничив свой текст этим -3 и добавив многоточие, не уверен, для чего этот список, так что это один подход.

Лично я бы, вероятно, использовал overflow: hidden, поскольку он покрывает все возможные ситуации и гарантирует, что ваш макет всегда будет согласованным.

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

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

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

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


Добавление ссылки на решение jQuery: Выровнять

Одним из решений было бы иметь PNG на основе альфа-канала, который бы постепенно переходил от текста к цвету фона вашего контейнера на последних 10 пикселях или около того. Это выглядело бы хорошо, если бы какой-то текст был значительно короче длинных, однако в случае, когда текст был бы равен контейнеру, это могло бы выглядеть немного глупо.

Конечно, в сочетании с display: hidden и white-space: no-wrap

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

Теперь, если я правильно понимаю вашу проблему с фоновым изображением, я считаю, что ваша проблема может быть решена с помощью методов, описанных в статье ALA на раздвижные двери, где фоновое изображение расширяется с содержимым.

Вот вам какое-то противоречие .. использовать таблицу?

Похоже, у вас есть сетка данных, может ли таблица решить эту проблему для вас?

Также возникает вопрос: действительно ли вы хотите, чтобы элементы были одинаковой высоты или же за ними было одинаковое количество черного фона? Вы можете применить черный цвет к фону строки, а затем создать центральный белый разделитель с границами и полями.

Вы можете попробовать использовать:

ul li{
  display:block;
  float:left;
  width:6em;
  height:4em;
  background-color:black;
  color:white;
  margin-right:1em;
}
ul{
  height:100%;
  overflow:hidden;
}
div{
  height:3em;
  overflow:hidden;
  background-color:blue;
}

Не знаю о кроссбраузерности через. Обновлено: это html, который я предполагаю:

<div>
<ul>
<li>asdf
<li>asdf trey  tyeu ereyuioquoi
<li>fdas dasf erqwt ytwere r
<li>dfsaklñd s jfañlsdjf ñkljdk ñlfas
<li>ksdflñajñldsafjñlksdjfñalksdfjlkdhfc,v.mxzn
</ul>
</div>

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