Креативные стили вэб-типографии часть 1
Не много css магии и мы можем превратить тест в красивую типографию, опустив использование изображения. В этом уроке будем создавать различные веб-типографики, используя lettering.js плагин jquery методы css. Для некоторых примеров также добавим эффекты переходов, чтобы сделать вещи немного более интерактивным.
Работает во всех браузерах кроме IE
В большинстве случаев мы будем использовать lettering.js.
В дальнейшем будет восемь примеров.
Пример 1
Идея первого примера в том, чтобы при наведении курсора разделить слово напополам и вставить в образовавшийся промежуток другое появляющееся слово. Для этого нам понадобится специальная структура.
Слово, которое будет отображаться на начальном этапе, будет дублироваться. (Заметим, что все эти примеры предназначены для декоративных целей и не могут быть "SEO дружественны").
Мы будем применять lettering.js плагин для слов, означающих, что у нас будет еще один пролет вокруг первого и последнего слова (дубликатов):
Теперь давайте взглянем на стили. Прежде всего, мы дадим фиксированной ширины:
Первый слой пролета будут отображаться в виде блока элемент:
Два внешних пролета с классом "cs-text-cut" будут иметь высоту 90px и мы установим скрытое переполнение. Идея состоит в том, чтобы сделать этот промежуток половинчатым. Мы также добавим переход на эти элементы:
Давайте добавим границы к верхней и к нижней части:
Давайте установим размер шрифта и высоты строки внутренней службы в 180px, и добавим несколько стилей текста:
Второй дубликат, который является последним подклассом в нашей структуре будет иметь свои службы "pulled up". Это покажет нижнюю часть слова:
Средний текст, который мы хотим показать при наведении курсора мыши будет позиционироваться абсолютно, и мы установим непрозрачность до 0. Он также будет уменьшено до 0,5:
Когда курсор мыши над словами, мы хотим, чтобы верхняя половина перемещалась вверх, так что мы будем переводить его на ось-Y и уменьшать его непрозрачность:
В нижней половине будет перемещен вниз:
И, наконец, мы сделаем средний текст оживленным его прозрачностью и масштабированием. Обратите внимание, что мы добавили переход с задержкой 0,3 секунды. Это даст нам время, чтобы сначала переместить половину исходного слова вверх и вниз. Переход задержки нормальное состояние 0 секунд означает, что когда мы перемещаем мышь, оно исчезнет сразу:
И это первый пример. Давайте посмотрим второй.
Пример 2
Во втором примере мы будем преобразовывать и создавать полупрозрачные панели с буквами.
Мы будем использовать буквы, чтобы отделить каждую букву от другой:
каждый пролет будет плавающим с полупрозрачным фоном. Мы также будем применять тени, которые сделают хорошую толстую границу:
Мы будем использовать псевдо-класс :before того, чтобы создать другую вставку эффекта тени. Есть и другие способы сделать это, но давайте будем фантазировать
Итак, что мы делаем, чтобы растянуть ее, пока тень, которая 20px и дать ему белые тени окна и черной вставкой тень коробки (полупрозрачные RGBA):
После псевдо-класс будет маленькая точка на верхней части элемента:
И, наконец, при наведении курсора мыши, мы будем переводить элемент и масштабировать его немного при изменении его текста, теней и повышения прозрачности значение:
Пример 3
Стиль-й третий пример полностью основан на уроке о создании царапин на плитке для аккуратного эффекта текста textuts.com. Это отличный учебник, так что проверим это, прежде всего, чтобы понять эффекты тени для царапин на плитке.
Мы постараемся создать такой же эффект с чистым CSS.
<h2 class="cs-text">
To sing is to ♥love and affirm, to fly and soar, to coast into the hearts of the people who listen, to tell them that life is to live, that love is there, that nothing is a promise, but that beauty exists, and must be hunted for and found.
</h2>
<h3 class="cs-text">Joan Baez</h3>
Мы будем применять lettering.js на слова и буквы:
Это будет каждое слово в промежуточном классе, начиная с "слова" и каждую букву слова с определенным классом, начинающиеся с "символа".
Слова будут отображаться как инлайн-блоки и мы дадим им боковые края:
Символы будут иметь царапаный стиль цвета фона и мы установим ширину и высоту для них. Текст тени создаст резной эффект для писем и несколько теней окна добавят глубину плитке:
Теперь, давайте добавим немного "случайности" на плитку, поворачивая каждый нечетный одной и каждый третий незначительно:
Пятое слово и последний заголовок будет иметь красные буквы и последний заголовок будет немного меньше, чем остальной текст:
Пример 4
Например вперед является стиль для типографского фона. Мы сделаем буквы большие и полупрозрачные, добавим тени текста:
Поскольку мы действительно не заботимся о самом тексте, мы просто оборачиваем каждую букву в промежуток с lettering.js:
Весь текст будет резиновым, мы дадим ему ширину 100%:
Буквы будут полупрозрачными, выбирая цвета RGBA с низким значением непрозрачности. Мы также добавим тени текста с большим смещением:
Так как мы хотим использовать этот фон аа, мы будем использовать указатель события: none. Это позволит сделать текст интерактивными / кликабельным:
Работает во всех браузерах кроме IE
В большинстве случаев мы будем использовать lettering.js.
В дальнейшем будет восемь примеров.
Пример 1
Идея первого примера в том, чтобы при наведении курсора разделить слово напополам и вставить в образовавшийся промежуток другое появляющееся слово. Для этого нам понадобится специальная структура.
Код
<h2 class="cs-text">
<span class="cs-text-cut">Smooth</span>
<span class="cs-text-mid">Operator</span>
<span class="cs-text-cut">Smooth</span>
</h2>
<span class="cs-text-cut">Smooth</span>
<span class="cs-text-mid">Operator</span>
<span class="cs-text-cut">Smooth</span>
</h2>
Слово, которое будет отображаться на начальном этапе, будет дублироваться. (Заметим, что все эти примеры предназначены для декоративных целей и не могут быть "SEO дружественны").
Мы будем применять lettering.js плагин для слов, означающих, что у нас будет еще один пролет вокруг первого и последнего слова (дубликатов):
Код
$(".cs-text-cut").lettering('words');
Теперь давайте взглянем на стили. Прежде всего, мы дадим фиксированной ширины:
Код
.cs-text {
width: 645px;
margin: 120px auto 30px;
cursor: default;
}
width: 645px;
margin: 120px auto 30px;
cursor: default;
}
Первый слой пролета будут отображаться в виде блока элемент:
Код
.cs-text > span {
display: block;
}
display: block;
}
Два внешних пролета с классом "cs-text-cut" будут иметь высоту 90px и мы установим скрытое переполнение. Идея состоит в том, чтобы сделать этот промежуток половинчатым. Мы также добавим переход на эти элементы:
Код
.cs-text-cut {
width: 100%;
height: 90px;
overflow: hidden;
transition: all 0.4s ease-in-out;
}
width: 100%;
height: 90px;
overflow: hidden;
transition: all 0.4s ease-in-out;
}
Давайте добавим границы к верхней и к нижней части:
Код
.cs-text-cut:first-child {
border-top: 1px solid rgba(255,255,255,0.5);
}
.cs-text-cut:last-child {
border-bottom: 1px solid rgba(255,255,255,0.5);
}
border-top: 1px solid rgba(255,255,255,0.5);
}
.cs-text-cut:last-child {
border-bottom: 1px solid rgba(255,255,255,0.5);
}
Давайте установим размер шрифта и высоты строки внутренней службы в 180px, и добавим несколько стилей текста:
Код
.cs-text-cut span {
display: block;
line-height: 180px;
color: rgba(255,255,255,1);
font-size: 180px;
font-weight: 400;
text-transform: uppercase;
text-align: center;
margin-top: 6px;
font-family: 'Sancreek', cursive;
text-shadow: 7px 2px 0 rgba(255,255,255,0.3);
}
display: block;
line-height: 180px;
color: rgba(255,255,255,1);
font-size: 180px;
font-weight: 400;
text-transform: uppercase;
text-align: center;
margin-top: 6px;
font-family: 'Sancreek', cursive;
text-shadow: 7px 2px 0 rgba(255,255,255,0.3);
}
Второй дубликат, который является последним подклассом в нашей структуре будет иметь свои службы "pulled up". Это покажет нижнюю часть слова:
Код
.cs-text-cut:last-child span {
margin-top: -84px;
}
margin-top: -84px;
}
Средний текст, который мы хотим показать при наведении курсора мыши будет позиционироваться абсолютно, и мы установим непрозрачность до 0. Он также будет уменьшено до 0,5:
Код
.cs-text-mid {
font-family: 'Raleway', sans-serif;
font-weight: 100;
text-transform: uppercase;
font-size: 50px;
letter-spacing: 50px;
line-height: 50px;
text-indent: 20px;
position: absolute;
top: 50%;
margin-top: -25px;
color: rgba(255,255,255,0.3);
text-shadow: 0 0 0 rgba(255,255,255,0.9);
opacity: 0;
transform: scale(0.5);
transition: all 0.4s ease-in-out 0s;
}
font-family: 'Raleway', sans-serif;
font-weight: 100;
text-transform: uppercase;
font-size: 50px;
letter-spacing: 50px;
line-height: 50px;
text-indent: 20px;
position: absolute;
top: 50%;
margin-top: -25px;
color: rgba(255,255,255,0.3);
text-shadow: 0 0 0 rgba(255,255,255,0.9);
opacity: 0;
transform: scale(0.5);
transition: all 0.4s ease-in-out 0s;
}
Когда курсор мыши над словами, мы хотим, чтобы верхняя половина перемещалась вверх, так что мы будем переводить его на ось-Y и уменьшать его непрозрачность:
Код
.cs-text:hover .cs-text-cut:first-child {
transform: translateY(-25px);
opacity: 0.5;
}
transform: translateY(-25px);
opacity: 0.5;
}
В нижней половине будет перемещен вниз:
Код
.cs-text:hover .cs-text-cut:last-child {
transform: translateY(25px);
opacity: 0.5;
}
transform: translateY(25px);
opacity: 0.5;
}
И, наконец, мы сделаем средний текст оживленным его прозрачностью и масштабированием. Обратите внимание, что мы добавили переход с задержкой 0,3 секунды. Это даст нам время, чтобы сначала переместить половину исходного слова вверх и вниз. Переход задержки нормальное состояние 0 секунд означает, что когда мы перемещаем мышь, оно исчезнет сразу:
Код
.cs-text:hover .cs-text-mid {
transition-delay: 0.3s;
opacity: 1;
transform: scale(1);
}
transition-delay: 0.3s;
opacity: 1;
transform: scale(1);
}
И это первый пример. Давайте посмотрим второй.
Пример 2
Во втором примере мы будем преобразовывать и создавать полупрозрачные панели с буквами.
Код
<h2 class="cs-text" id="cs-text">Glass</h2>
Мы будем использовать буквы, чтобы отделить каждую букву от другой:
Код
.cs-text {
width: 600px;
margin: 70px auto 30px;
}
.cs-text:before,
.cs-text:after {
content: " ";
display: table;
}
.cs-text:after {
clear: both;
}
width: 600px;
margin: 70px auto 30px;
}
.cs-text:before,
.cs-text:after {
content: " ";
display: table;
}
.cs-text:after {
clear: both;
}
каждый пролет будет плавающим с полупрозрачным фоном. Мы также будем применять тени, которые сделают хорошую толстую границу:
Код
.cs-text span {
float: left;
width: 120px;
font-size: 120px;
line-height: 230px;
font-weight: 400;
text-transform: uppercase;
text-align: center;
cursor: default;
font-family: 'Medula One', cursive;
display: block;
z-index: 1;
position: relative;
color: rgba(255,255,255,0.7);
text-shadow: 5px 5px 2px rgba(0,0,0,0.5);
background: rgba(0,0,0,0.05) url(../images/scratch-texture.png);
box-shadow:
-6px 2px 10px rgba(0,0,0,0.5),
inset 0 0 0 20px rgba(255, 255, 255, 0.4);
border-radius: 5px;
transform: skewY(8deg);
transition: all 0.5s ease-in-out;
}
float: left;
width: 120px;
font-size: 120px;
line-height: 230px;
font-weight: 400;
text-transform: uppercase;
text-align: center;
cursor: default;
font-family: 'Medula One', cursive;
display: block;
z-index: 1;
position: relative;
color: rgba(255,255,255,0.7);
text-shadow: 5px 5px 2px rgba(0,0,0,0.5);
background: rgba(0,0,0,0.05) url(../images/scratch-texture.png);
box-shadow:
-6px 2px 10px rgba(0,0,0,0.5),
inset 0 0 0 20px rgba(255, 255, 255, 0.4);
border-radius: 5px;
transform: skewY(8deg);
transition: all 0.5s ease-in-out;
}
Мы будем использовать псевдо-класс :before того, чтобы создать другую вставку эффекта тени. Есть и другие способы сделать это, но давайте будем фантазировать
Итак, что мы делаем, чтобы растянуть ее, пока тень, которая 20px и дать ему белые тени окна и черной вставкой тень коробки (полупрозрачные RGBA):
Код
.cs-text span:before {
content: '';
position: absolute;
left: 20px;
right: 20px;
top: 20px;
bottom: 20px;
box-shadow:
1px 1px 1px rgba(255,255,255,0.4),
inset 1px 1px 1px rgba(0,0,0,0.1);
}
content: '';
position: absolute;
left: 20px;
right: 20px;
top: 20px;
bottom: 20px;
box-shadow:
1px 1px 1px rgba(255,255,255,0.4),
inset 1px 1px 1px rgba(0,0,0,0.1);
}
После псевдо-класс будет маленькая точка на верхней части элемента:
Код
.cs-text span:after {
content: '';
position: absolute;
left: 50%;
top: 5px;
margin-left: -5px;
width: 10px;
height: 10px;
border-radius: 50%;
box-shadow: inset 1px 1px rgba(0, 0, 0, 0.4);
background: rgba(255, 255, 255, 0.2);
}
content: '';
position: absolute;
left: 50%;
top: 5px;
margin-left: -5px;
width: 10px;
height: 10px;
border-radius: 50%;
box-shadow: inset 1px 1px rgba(0, 0, 0, 0.4);
background: rgba(255, 255, 255, 0.2);
}
И, наконец, при наведении курсора мыши, мы будем переводить элемент и масштабировать его немного при изменении его текста, теней и повышения прозрачности значение:
Код
.cs-text span:hover {
transform: translateY(-10px) scale(1.1);
color: rgba(255,255,255,1);
text-shadow: 2px 2px 2px rgba(0,0,0,0.2);
}
transform: translateY(-10px) scale(1.1);
color: rgba(255,255,255,1);
text-shadow: 2px 2px 2px rgba(0,0,0,0.2);
}
Пример 3
Стиль-й третий пример полностью основан на уроке о создании царапин на плитке для аккуратного эффекта текста textuts.com. Это отличный учебник, так что проверим это, прежде всего, чтобы понять эффекты тени для царапин на плитке.
Мы постараемся создать такой же эффект с чистым CSS.
Код
<h2 class="cs-text">
To sing is to ♥love and affirm, to fly and soar, to coast into the hearts of the people who listen, to tell them that life is to live, that love is there, that nothing is a promise, but that beauty exists, and must be hunted for and found.
</h2>
<h3 class="cs-text">Joan Baez</h3>
Мы будем применять lettering.js на слова и буквы:
Код
$(".cs-text").lettering('words').children('span').lettering()
Это будет каждое слово в промежуточном классе, начиная с "слова" и каждую букву слова с определенным классом, начинающиеся с "символа".
Код
.cs-text {
text-align: center;
margin-top: 70px;
}
text-align: center;
margin-top: 70px;
}
Слова будут отображаться как инлайн-блоки и мы дадим им боковые края:
Код
.cs-text span[class^="word"] {
display: inline-block;
margin: 0 15px;
}
display: inline-block;
margin: 0 15px;
}
Символы будут иметь царапаный стиль цвета фона и мы установим ширину и высоту для них. Текст тени создаст резной эффект для писем и несколько теней окна добавят глубину плитке:
Код
.cs-text span[class^="char"] {
width: 90px;
height: 100px;
display: inline-block;
background: #e4d095;
color: #2a1f1b;
border-radius: 4px;
font-size: 60px;
font-weight: 400;
line-height: 100px;
margin: 10px 3px;
text-align: center;
cursor: default;
font-family: "Spinnaker", Arial, sans-serif;
text-shadow:
1px 1px 1px rgba(255, 255, 255, 0.9),
0 -1px 1px rgba(255,255,255,0.2);
text-transform: uppercase;
box-shadow:
1px 7px 15px rgba(0,0,0,0.8),
inset 3px 0 2px rgba(255,255,255,0.4),
inset 0 3px 0px rgba(255,255,255,0.5),
inset -2px -3px 0px rgba(143,128,82,0.6);
}
width: 90px;
height: 100px;
display: inline-block;
background: #e4d095;
color: #2a1f1b;
border-radius: 4px;
font-size: 60px;
font-weight: 400;
line-height: 100px;
margin: 10px 3px;
text-align: center;
cursor: default;
font-family: "Spinnaker", Arial, sans-serif;
text-shadow:
1px 1px 1px rgba(255, 255, 255, 0.9),
0 -1px 1px rgba(255,255,255,0.2);
text-transform: uppercase;
box-shadow:
1px 7px 15px rgba(0,0,0,0.8),
inset 3px 0 2px rgba(255,255,255,0.4),
inset 0 3px 0px rgba(255,255,255,0.5),
inset -2px -3px 0px rgba(143,128,82,0.6);
}
Теперь, давайте добавим немного "случайности" на плитку, поворачивая каждый нечетный одной и каждый третий незначительно:
Код
.cs-text span[class^="char"]:nth-child(odd) {
transform: rotate(2deg);
}
.cs-text span[class^="char"]:nth-child(3n) {
transform: rotate(-3deg);
}
transform: rotate(2deg);
}
.cs-text span[class^="char"]:nth-child(3n) {
transform: rotate(-3deg);
}
Пятое слово и последний заголовок будет иметь красные буквы и последний заголовок будет немного меньше, чем остальной текст:
Код
.cs-text > span:nth-child(5) span,
h3.cs-text span[class^="char"] {
color: #a62a19;
}
h3.cs-text span[class^="char"] {
font-size: 40px;
width: 50px;
height: 60px;
line-height: 60px;
}
h3.cs-text span[class^="char"] {
color: #a62a19;
}
h3.cs-text span[class^="char"] {
font-size: 40px;
width: 50px;
height: 60px;
line-height: 60px;
}
Пример 4
Например вперед является стиль для типографского фона. Мы сделаем буквы большие и полупрозрачные, добавим тени текста:
Код
<h2 class="cs-text" id="cs-text">Nothing can be more hopeless than to attempt to explain this similarity
of pattern in members of the same class, by utility or by the doctrine
of final causes. The hopelessness of the attempt has been expressly
admitted by Owen in his most interesting work on the "Nature of Limbs."
On the ordinary view of the independent creation of each being, we can
only say that so it is; that it has pleased the Creator to construct all
the animals and plants in each great class on a uniform plan; but this
is not a scientific explanation.</h2>
of pattern in members of the same class, by utility or by the doctrine
of final causes. The hopelessness of the attempt has been expressly
admitted by Owen in his most interesting work on the "Nature of Limbs."
On the ordinary view of the independent creation of each being, we can
only say that so it is; that it has pleased the Creator to construct all
the animals and plants in each great class on a uniform plan; but this
is not a scientific explanation.</h2>
Поскольку мы действительно не заботимся о самом тексте, мы просто оборачиваем каждую букву в промежуток с lettering.js:
Код
$("#cs-text").lettering();
Весь текст будет резиновым, мы дадим ему ширину 100%:
Код
.cs-text {
width: 100%;
text-align: center;
margin-top: 80px;
}
width: 100%;
text-align: center;
margin-top: 80px;
}
Буквы будут полупрозрачными, выбирая цвета RGBA с низким значением непрозрачности. Мы также добавим тени текста с большим смещением:
Код
.cs-text span {
font-family: 'Cantata One', 'Trebuchet MS', sans-serif;
font-size: 180px;
line-height: 150px;
font-weight: 400;
color: rgba(255,255,255,0.3);
display: inline-block;
text-transform: uppercase;
text-shadow: 15px 15px 0 rgba(0,0,0,0.2);
cursor: default;
pointer-events: none;
}
font-family: 'Cantata One', 'Trebuchet MS', sans-serif;
font-size: 180px;
line-height: 150px;
font-weight: 400;
color: rgba(255,255,255,0.3);
display: inline-block;
text-transform: uppercase;
text-shadow: 15px 15px 0 rgba(0,0,0,0.2);
cursor: default;
pointer-events: none;
}
Так как мы хотим использовать этот фон аа, мы будем использовать указатель события: none. Это позволит сделать текст интерактивными / кликабельным:
Код
.cs-text span:nth-child(2n) {
transform: rotate(-6deg);
color: rgba(255,255,255,0.4); ;
}
.cs-text span:nth-child(3n) {
transform: translateY(20px);
}
.cs-text span:nth-child(4n) {
color: rgba(255,255,255,0.2);
}
.cs-text span:nth-child(3n+3) {
transform: scale(1.4) rotate(5deg);
}
.cs-text span:nth-child(7n) {
font-size: 110px;
}
.cs-text span:nth-child(12n) {
font-size: 200px;
}
transform: rotate(-6deg);
color: rgba(255,255,255,0.4); ;
}
.cs-text span:nth-child(3n) {
transform: translateY(20px);
}
.cs-text span:nth-child(4n) {
color: rgba(255,255,255,0.2);
}
.cs-text span:nth-child(3n+3) {
transform: scale(1.4) rotate(5deg);
}
.cs-text span:nth-child(7n) {
font-size: 110px;
}
.cs-text span:nth-child(12n) {
font-size: 200px;
}
-
FalleN -
1781 -
1 -
156
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...