Самый Простой Способ Создания Вертикального Текста с помощью CSS
Сайты / Просмотров: 309

Самый Простой Способ Создания Вертикального Текста с помощью CSS

Какой почтовой программой Вы пользуетесь?
Всего ответов: 82

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

Что вы об этом думаете? Есть ли у вас другие альтернативы для выполнения этой задачи, которые стоило бы рассмотреть? Многие предлагают использовать параметр поворот текста (text-rotation), чтобы выполнить эту задачу, но важно помнить, что это также поворачивает на 90 градусов весь текст, а это не то, чего мы хотим добиться.

Cпособ 1: <br> Tags

Итак, один из возможных (но не рекомендуемый) путь к достижению вертикального текста. Необходимо добавить тег <br /> после каждой буквы.

<h1>
N <br/>E <br/>T <br/>T <br/>U <br/>T <br/>S
</h1>

Не используйте этот метод. Это тупо и бессмысленно.

Способ 2: Статическое Обертывание

С помощью этого метода, мы обернем каждую букву в тег <span>, а затем установим display: block, в нашем CSS.

<style>
h1 span { display: block; }
</style>

<h1>
<span> N </span>
<span> E </span>
<span> T </span>
<span> T </span>
<span> U </span>
<span> T </span>
<span> S </span>
</h1>

Проблема с этим решением - это то, что это ручной процесс. Если текст генерируется динамически из CMS, вам не повезло.

Не используйте этот метод.

Способ 3: Использование JavaScript

Мой первоначальный вариант был в динамическом добавлении теги <span> с JavaScript. Таким образом, мы получаем вариант, упомянутый во втором методе.

<style>
h2 span { display: block; }
</style>
<h2> NETTUTS </h2>
<script>
var h2 = document.getElementsByTagName('h1')[0];
h1.innerHTML = '<span>' + h1.innerHTML.split('').join('</span><span>') + '</span>';
</script>

Этот метод определенно лучше. Мы разбиваем текст в массив, а затем обворачиваем  каждую букву в «span».

Хотя лучше это решение не использовать.

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

Способ 4: Применение Ширины Контейнера

Давайте уйдем от JavaScript, если мы сможем. Что, если бы мы применяли к ширине контейнера элемент, и заставил текст перескакивать. Это может работать?

<style>
h1 {
width: 50px;
font-size: 50px;
word-wrap: break-word;
}
</style>

<h1> NETTUTS </h1>

В этом случае мы применяем очень узкую ширину в теге h1, а затем делаем ее равным font-size. Наконец, установив word-wrap, равной break-word, мы сможем заставить каждую букву быть на своей собственной строке. Однако, word-wrap: break-word является частью спецификации CSS3, и не совместимо во всех браузерах.

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

Не рекомендуется

Способ 5: Применять letter-spacing

В качестве меры предосторожности, мы расширим четвертый способ, почему бы нам не применить letter-spacing.

<style>
h1 {
width: 50px;
font-size: 50px;
word-wrap: break-word;
letter-spacing: 20px; /* Set large letter-spacing as precaution */
}
</style>

<h1> Nettuts </h1>

Кажется, проблема решена, хотя, опять же, мы используем немного CSS3 здесь.

Способ 6: Использовать ems

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

<style>
h1 {
width: 1em;
font-size: 40px;
letter-spacing: 40px;
}
</style>

<h1> N e t t u t s </h1>

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

По моим сведениям, это лучшие решение.

Способ 7: Использование white-space

<style>
h1 { white-space: pre; }
</style>

<h1>
J
E
F
F
R
E
Y
</h1>

Установив white-space, мы получаем, что текст ведет себя так, как если бы он был в теге pre.

Категория: Сайты
Дата создания: 10.08.2011
Автор/Перевод: Никита Филимонов
Источник: http://net.tutsplus.com/tutorials/html-css-techniques/the-easiest-way-to-create-vertical-text-with-css/comment-page-1/#c
Просмотров: 309
При копирование материалов ссылка на источник обязательна!

Мы в соцсетях



Еще статьи


rss
Карта