Меню Рубрики

Html как написать текст вертикально

writing-mode

Краткая информация

Значение по умолчанию Нет
Наследуется Да
Применяется Ко всем элементам и генерируемому контенту
Процентная запись Неприменима
Ссылка на спецификацию http://dev.w3.org/csswg/css3-text-layout/#writing-mode

Версии CSS

Описание

Устанавливает направление текста на странице. Свойство writing-mode является универсальным и позволяет одновременно задавать значения свойств direction и block-progression .

Синтаксис

writing-mode: lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr

Значения

Влияние разных значений на положение текста в таблице показано на рис. 1.

Рис. 1. Положение текста при разных значениях writing-mode

В табл. 1 показаны значения свойств direction и block-progress , соответствующие значениям writing-mode , а также языки, где они

Табл. 1. Значения writing-mode

writing-mode direction block-progress Для каких языков
lr-tb ltr tb Романских, греческого, кириллических
rl-tb rtl tb Арабского, еврейских языков
tb-rl ltr rl Азиатских в вертикальном написании
bt-rl ltr rl Арабского, вставленного в азиатский документ
tb-lr ltr rl Монгольского
bt-lr rtl rl Арабского, вставленного в монгольский документ

HTML5 CSS2.1 CSS3 IE Cr Op Sa Fx

Браузеры

Internet Explorer 6.0 поддерживает только значения lr-tb и tb-rl , Internet Explorer 7.0 поддерживает значения lr-tb , rl-tb , tb-rl , bt-rl .

Источник статьи: http://htmlbook.ru/css/writing-mode

Расположение текста вертикально (CSS, HTML)

Выводить на сайте текст вертикально можно в различных целях. Это может быть чисто дизайнерский ход и в таких случаях этот изыск реализуется простой картинкой. Думаю здесь все понятно, и рассматривать эту «технологию» не нужно.

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

В CSS есть свойства transform и transform-origin, которые выполняют такую функцию. В реале же для разных браузеров были добавлены соответствующие стили (-ms-transform, -moz-transform, -ms-transform-origin, -moz-transform-origin).

Применяя эти свойства, мы получим развернутый текст, но его расположение будет смещенным относительно исходного положения контейнера. Располагая одну строку вертикально не сложно настроить ее положение, дорабатывая смещением margin.

Чуть сложнее задача становится, если нужно расположить близко стоящие колонки в таблице. Например, таблица:

Заголовок 1 Заголовок 2 Заголовок 3 Заголовок 4 Заголовок 5
1 2 3 4 5
6 7 8 9 10

При развороте текста, размеры содержащего контейнера по ширине и высоте становятся равными, а из-за ячейки с развернутым текстом не становятся меньше. Чтобы было проще управлять шириной ячеек и в итоге получить таблицу с узкими ячейками, стоит текст заключить во вложенные теги div, к которым и будет применяться стили вертикального текста. Здесь же задаем высоту ячейки с заголовками таблицы и ширину блока. Чтобы текст выводился в одну строку, добавляем запрет на перенос строки (white-space: nowrap).

В зависимости от необходимого положения, смещение тоже придется подгонять вручную свойством margin.

В итоге, получаем следующий код и результат:

Источник статьи: http://space-base.ru/library/html-css-jquery/raspolozhenie-teksta-vertikalno-css-html

Жизнь в интернете

Альтернативная жизнь вопреки реалиям, где приходится крутиться и зарабатывать как в жизни

Технология монетизации сайта от Яндекса

Разбираемся как работать с авторами и составить ТЗ копирайтеру

Секреты выбора ниши бизнеса

Как сделать текст вертикальным в таблице HTML

Убираем скрытые ссылки в шаблоне сайта

Уменьшаем размер базы данных WordPress

Как сделать превью страницы сайта

Как заблокировать ненужные объявления Adsense

Как сделать https для сайта — установка SSL-сертификата

Как дублировать страницу в WordPress

Как сделать текст вертикальным в таблице HTML

Казалось бы тривиальная задача — повернуть текст в таблице на 90 градусов. В Excel это делается парой кликов. На практике все оказалось не так просто. Вот для чего вообще может понадобиться делать вертикальный текст в таблицах, ведь его читать неудобно?

Вообще таблицы в HTML некое скрытое зло, с которым приходится бороться или уживаться. Сегодня попробуем побороть это зло.

Итак, если таблица имеет кучу столбцов, то общий ее размер может просто не вписаться в отведенные рамки границ контента.

Чтобы сузить ширину таблицы, напрашивается только один простой способ (в плане визуализации) — это повернуть текст в заголовке на 90 градусов. Как уже говорилось ранее — технически задача решается не так просто. В интернете полно советов как расположить текст вертикально с помощью CSS и даже javascript.

Для моих нужд все эти варианты были слишком наворочены, ибо предполагали добавление кода в CSS или создание отдельных скриптов. Ну лишнее это все, тем более если таблица используется разово, то, имхо, лучше эту таблицу и редактировать без наращивания кода в других местах.

Кому очень интересно, то вот один из кодов CSS для вертикального текста в таблицах HTML.

1

2

3

4

5

6

7

8

9

10

Согласитесь, много наворотов, чтобы разового повернуть текст вертикально.

Для себя я нашел более простой способ, который позволяет одной строчкой повернуть текст, тем самым сжав таблицу по ширине.

Для этого используем в тегах стандартный стиль writing-mode . Параметры, которые использует этот стиль:

  • horizontal-tb — значение по умолчанию, направление текста слева направо
  • vertical-rl — текст располагается вертикально и выравнивается сверху вниз и справа налево
  • vertical-lr — текст располагается вертикально и выравнивается сверху вниз и слева направо

Стоит заметить, что данный стиль может быть применен ко всем элементам HTML, кроме таблиц. Вот такой парадокс. Но это меньшая из проблем, мы просто текст обрамляем в тег

Смотрим как это все выглядит в коде

текст

текст

текст

текст

текст

текст

На основе имеющихся данных получаем ужатую таблицу с вертикальным текстом в заголовках.

Задача выполнена, текст в HTML-таблице повернут вертикально без использования дополнительных CSS и скриптов.

А как вы поворачиваете текст? Делитесь в комментариях.

Рекомендую также почитать:

2 thoughts on “ Как сделать текст вертикальным в таблице HTML ”

Спасибо за помощь! Сложно работать с таблицами html, особенно новичку. Хорошо что есть такие статьи!

Источник статьи: http://lifeonweb.ru/?p=1873

Выравнивание текста по вертикали. 5 способов

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

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

Первый метод с line-height

Первый способ очень банальный и с большим недостатком, что ограничивает его в применении. Но все же, как ни крути, он может пригодиться и даже принести нужный результат. Это будет условным выравниванием, так как, по сути, мы задаем высоту строки в соответствии с высотой блока, использовав свойство line-height .

Точно таким же способом возможно реализовать картинку по центру вертикали, но добавив одно новое свойство vertical-align: middle; .

Выравнивание со свойством position

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

Поэтому нужно задать отрицательное значение к внешним отступам. Размер отступа сверху должен соответствовать половине высоты внутреннего блока, а отступ слева — на половину ширины. Таким образом, получим абсолютный центр.

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

Выравнивание со свойством table

Здесь используем старую технику, превратив элементы в таблицу с ячейками. При этом теги таблицы

применять не будет, а воспользуемся свойствами CSS, такими как display: table; , display: table-cell; . В старых версиях IE данный способ не работает, да и не нужно. Ими, вообще, еще кто-то пользуется?

Выравнивание со свойством flex

Это идет уже более специфичный вариант со свойствами, которые не так часто встречаются в верстке сайта. Но, тем не менее они в редких случаях очень полезны.

Выравнивание со свойством transform

И последний в нашем списке, но далеко не последний в использовании способ. Сдвигаем по вертикали элемент на желаемое значение, в данном случае на -50%.

Источник статьи: http://wordsmall.ru/html-i-css/vyravnivanie-teksta-po-vertikali-5-sposobov.html

Вертикальный текст на CSS

Задача

Сделать вертикальную надпись (заголовок, пункт меню, сообщение и т.п.), при чем надпись должна быть текстом, чтобы можно было ее менять.

Решение

Не казалась бы подобная задача такой фантастической, если бы разработчики браузеров поспевали за рекомендациями W3C. Те уже давно предлагают свойство writing-mode для указания направления текста. С помощью него и можно задать вертикальное направление.

Как ни странно, ни один из «продвинутых» браузеров в настоящее время данное свойство не признают. И что еще более странно, его понимает Interner Explorer! И чтоб вообще добить — начиная с версии 5.5! Это первый случай в моей практике. когда решение нужно искать не для IE, а для остальных браузеров.

Разработчики остальных браузеров, проигнорировав рекомендации стандартов, пошли другим путем. При чем, каждый из них своим. Mozilla внедрила -moz-transform, Opera — -o-transform, webkit как уже можно было догадаться — -webkit-transform. Зачем было столько свойств плодить, мне не понятно. Ну не будем такими придирчивыми, и на этом им спасибо. Следует отметить, что эти три свойства позволяют повернуть текст на произвольный угол (значением свойств является угол — и это плюс), в отличие от writing-mode, который ныне способен отобразить текст только в двух положениях: горизонтально (значение lr-tb) и вертикально (tb-rl).

Теперь, чтобы развернуть надпись вертикально нужно:

  • перечислить все варианты поворота текста
  • указать фиксированные размеры контейнера с текстом (ширину и высоту). Без них блок с текстом может вести себя непредсказуемо

Чтобы посмотреть как поворот повлияет на положение поворачиваемого элемента в потоке, добавим до и после него по блоку.

Демо пример. Смотрим результат и лично меня он не удовлетворяет:

В IE отработало как нужно — текст повернулся, блок остался на своем месте. Вывод: доработок никаких не требуется.

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

Эти браузеры придется отлавливать с помощью Javascript (об этом скрипте подробней скоро напишем) и поворачивать текст с помощью SVG (об этом методе подробней в следующем материале). Т.к. в SVG нет автоматического переноса строк, поэтому повернутый текст будет в одну строку. Это придется учесть и динамически изменить размер блока так, чтобы текст не обрезался.

И так, имеем тот же HTML код:

Стили для продвинутых браузеров и для IE отличаются. Чтобы разграничить воспользуемся условными комментариями:

Демо пример. Теперь получаем следующий результат:

Преимущества

  • текст является текстом
  • текст можно выделить и скопировать
  • доступна возможность многострочного текста с автоматическим переносом строк (кроме некоторых старых версий браузеров)

Недостатки

  • для более старых версий Opera и FF текст будет одной строкой, плюс им потребуется включенный Javascript
  • текст может начинаться только от одного угла родительского блока — правого верхнего
  • CSS код не походит валидацию — свойства -moz-transform, -webkit-transform, -o-transform отстуствуют в спецификациях

Выводы

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

По теме

Более универсальный метод — «Текст под углом»

Источник статьи: http://mpbox.ru/collect/html-and-css-tricks/typographics/vertical-text.html


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии