Оформление текста

Web-технологии

Оформление
текста

Лекция №6

Задание шрифта

        body {
          font-family: "PT Sans", "Arial", sans-serif;
        /* "PT Sans" – из нескольких слов */
        /* "Arial" / Arial – из одного слова */
        /* sans-serif – общий тип шрифта */
        }
    

Фолбэк на общий тип шрифта

            body {
                font-family: 'Rubik', sans-serif;
                font-family: 'Georgia', serif;
                font-family: 'Fira Code', monospace;
            }
        

Веб-безопасные шрифты

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

Список реальных веб-безопасных шрифтов будет меняться по мере развития операционных систем!

Веб-безопасные шрифты

Имя шрифта Тип Заметки
Arial sans-serif Альтернатива – Helvetica
Courier New monospace Альтернатива – Courier
Georgia serif
Times New Roman serif Альтернатива – Times
Trebuchet MS sans-serif
Verdana sans-serif Осторожно на мобильных!

Стандартные шрифты

CSS определяет пять общих имен для шрифтов: serif, sans-serif, monospace, cursive и fantasy.

cursive и fantasy менее предсказуемы, и рекомендуется использовать их очень осторожно, тестируя в процессе.

Стандартные шрифты

Шрифт Заметка
serif Шрифты с засечками
sans-serif Шрифты без засечек
monospace Cимволы имеют одинаковую ширину
cursive Шрифты, имитирующие почерк человека
fantasy Шрифты, предназначенные для украшения

Стандартные шрифты

Шрифт Пример
serif My big red elephant
sans-serif My big red elephant
monospace My big red elephant
cursive My big red elephant
fantasy My big red elephant

Подключение файла шрифта

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

При загрузке сайта браузер будет брать шрифт из указанного файла и отображать текст именно этим шрифтом.

Подключение файла шрифта

        @font-face {
          font-family: "Lexend Peta";
          src: url("/fonts/Lexend_Peta-webfont.woff2") format("woff2");
          font-weight: normal;
        }
    

Разные типы файлов

          src: url("/fonts/Lexend_Peta-webfont.woff2") format("woff2");
          src: url("/fonts/Lexend_Peta-webfont.woff") format("woff");
          src: url("/fonts/Lexend_Peta-webfont.ttf") format("ttf");
    

Несколько файлов можно подключить, перечислив конструкции c url() через запятую.

  1. WOFF2
  2. WOFF

Локальные шрифты

        @font-face {
          font-family: "Lexend Peta";
          src: local("Lexend Peta Regular"), local("LexendPeta-Regular");
          font-weight: normal;
        }
    

Шрифт в разных начертаниях

        @font-face {
          font-family: "Lexend Peta Regular";
          ...
        }

        @font-face {
          font-family: "Lexend Peta Bold";
          ...
        }
    

Шрифт в разных начертаниях

        /* Используем в разных местах разные начертания шрифтов */
        body {
          font-family: "Lexend Peta Regular", sans-serif;
        }
        
        .title {
          font-family: "Lexend Peta Bold", sans-serif;
        }
    

Шрифт в разных начертаниях

        @font-face {
          font-family: "Lexend Peta";
          font-weight: normal;
        }

        @font-face {
          font-family: "Lexend Peta";
          font-weight: bold;
        }
    

Шрифт в разных начертаниях

        body {
          font-family: "Lexend Peta", sans-serif;
          font-weight: normal;
        }
        
        .title {
          font-weight: bold;
        }
    

Несколько советов

💡 @font-face нужно объявлять до того, как обращаться в CSS к этому шрифту. Принято подключать шрифты в самом начале файла стилей (но после всех @import).

        @font-face { ... }
        @import { ... }
        /* Использование шрифта */
    

Несколько советов

💡 @font-face нельзя объявить внутри другого CSS-правила.

Работает:

                @font-face { ... }
                 
                .title {
                  font-family: ...;
                }
            

Не работает:

                .title {
                  @font-face { ... }
                  font-family: ...;
                }
            

Несколько советов

💡 Важно использовать в точности то название подключенного шрифта, которое задаётся внутри @font-face. Иначе магия не сработает.

         @font-face{ font-family: "Beautiful-Font"; }
         
        .title {
          font-family: "Beaytiful-Font";
        }
    

Подключение Google Fonts

Подключение Google Fonts в HTML

        <head>
        ...
        <link href="https://fonts.googleapis.com/css2?
                    family=Raleway:ital,wght@1,200&
                    display=swap"
              rel="stylesheet">
        ...
        </head>
    

Подключение Google Fonts в CSS

        @import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@1,200&display=swap');
         
        p {
          font-family: 'Raleway', sans-serif;
        }
    

Управление размерами текста

Свойство font-size

        p {
          font-size: 20px;
        }
    
        h1 {
          font-size: 2em; /* в 2 раза больше родительского */
        }
    

Свойство line-height

        p {
          font-size: 10px;
          line-height: normal; /* примерно 12px */
        }
    

Значение normal позволяет всем нестилизованным текстам выглядеть удобочитаемо.

Свойство line-height

        p {
          font-size: 16px;
          line-height: 26px; /* абсолютное значение */
          line-height: 150%; /* вычисленное значение 16px * 150% = 24px */
          line-height: 2; /* вычисленное значение 16px * 2 = 32px */
        }
    

Свойство font-weight

        h1 {
          font-weight: 400; /* то же самое что и normal */
        }
        
        p {
          font-weight: bold; /* то же самое что и 700 */
        }
    

Позиционирование текста

Свойство text-align

Свойство text-align

HTML:
                <p>
                  Я текст внутри абзаца
                </p>
            
CSS:
                p {
                  text-align: center;
                }
            

Свойство text-align

Я текст внутри абзаца

Свойство vertical-align

В отличие от text-align свойство vertical-align задаётся самому элементу, а не содержащему его контейнеру.

Свойство vertical-align

HTML:

                <p>
                  <img src="picture.png">
                  Я текст внутри абзаца
                </p>
            

CSS:

                img {
                  vertical-align: middle;
                }
            

Свойство vertical-align

рыжий кот Я текст внутри абзаца

Свойство letter-spacing

        /* Значения - ключевые слова */
        letter-spacing: normal;
        
        /* Значения <length> */
        letter-spacing: 0.3em;
        letter-spacing: 3px;
        letter-spacing: .3px;
        

1234567890

1234567890

1234567890

1234567890

Свойство word-spacing

        /* Значение ключевым словом */
        word-spacing: normal;
        /* <length> значения */
        word-spacing: 12px;
        word-spacing: 0.3em;
        /* <percentage> значения  */
        word-spacing: 50%;
    

Мама мыла раму

Мама мыла раму

Мама мыла раму

Мама мыла раму

Управление стилем текста

Свойство font-style

  • Мама мыла раму
  • Мама мыла раму
  • Мама мыла раму

Свойство text-transform

  • Мама мыла раму
  • Мама мыла раму
  • Мама мыла раму
  • Мама мыла раму

Свойство text-decoration

  • Мама мыла раму
  • Мама мыла раму
  • Мама мыла раму
  • Мама мыла раму

Свойство text-decoration

            p {
            /* подчёркнутый текст */
              text-decoration: underline;
            }
            span {
              /* подчёркнутый и зачёркнутый текст */
              text-decoration: underline line-through;
            }
        

Свойство text-decoration

        p {
          /* красное пунктирное подчеркивание */
          text-decoration: underline dashed red;
        }
    

Контраст цвета текста и фона

        p {
          /* идеальный контраст: цвет текста белый, цвет фона — чёрный */
          background-color: #000000;
          color: #ffffff;
        }
        span {
          /* плохой контраст: цвет текста и фона — серые */
          background-color: #cccccc;
          color: #dddddd;
        }
    

Управление пробелами

Оригинальный текст:

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

Управление пробелами

nowrap

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

Управление пробелами

pre

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

Управление пробелами

pre-wrap

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

Управление пробелами

normal

The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog

Все презентации
на GitHub Pages