2013-09-15 4 views
0

я использую счетчик CSS и псевдо-элементы, чтобы настроить упорядоченный список чисел - jsFiddleВертикального выравнивания текста, нестандартная ситуация

То, что я хотел бы достичь, является выравнивание текста по вертикали в пределах <li> элемент, когда это единственная строка, иначе поддерживайте ее в соответствии с верхним, как есть.

Вот предварительный просмотр того, как я хочу, чтобы это выглядело как - http://cl.ly/image/2f1U1p0k2M14

Любые решения (даже с участием JS/JQuery) были бы оценены.

+0

выровнять по вертикали, как именно? – adeneo

+0

нравится [это] (http://cl.ly/image/2f1U1p0k2M14) –

+0

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

ответ

2

Вы должны использовать Javascript (jQuery), чтобы проверить высоту каждыйli элемент.

Если его height является euqal до font-size * line-hight, тогда добавьте класс «single-line» `, если он больше, то добавьте класс« multi-line ».

В вашем CSS вы можете установить классы и их соответствующее значение вертикального выравнивания.

Или для использования кода меньше, вы делаете его «по умолчанию» и добавляете только класс, если он отличается.

PS: Благодаря комментарию @Marc Audet здесь добавление.
Если вы используете min-height, то вы должны убедиться, что ваши значения размера шрифта и высоты строки достаточно высоки, чтобы двустрочная запись была на 1px выше, чем значение min-height!

+0

Это определенно делает трюк в этой конкретной ситуации - http://jsfiddle.net/RZTQW/1/. Спасибо за идею! –

+1

Это не работает должным образом, если элемент 'li' создает две строки текста. –

+1

@Marc Audet: Да, вы правы. Тиграну нужно увеличить 'line-height' на 1px! Запись двойной строки должна быть минимум на 1px выше значения 'min-height'. Тогда это работает! – Netsurfer

0

Чтобы быть честным, дизайн довольно несовместим. Невозможно было бы говорить без javascript, и даже это будет работать только при загрузке. Если пользователь увеличил размер шрифта с помощью браузера, вы столкнулись бы с еще одной проблемой, которую вы не сможете обнаружить, когда они это сделают.

Смежные вопросы