Размер шрифта в зависимости от ширины блока

Два примера установки размера шрифта и его позиции в блоке относительно его ширины. Один на JS, если блок не во всю ширину экрана, другой на CSS, если во всю.

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

Все величины у этой конструкции выставлены для размера блока в 1170 пикселей.

Пример с точными размерами:

Размер шрифта 48px
CSS
HTML

Текст отлично расположен в блоке, но если ширина экрана увеличится или уменьшится, то становится видно, что шрифт перекрывает волны или просто не умещается в заданном блоке.

Чтобы правильно изменять размер шрифта воспользуемся примером ниже, в котором используется небольшой JS

Пример с размерами через JS:

Размер шрифта 48px

HTML и CSS у нас остаются прежние (в CSS можно удалить лишнее, это свойства font-size, top и left, которые мы задаем через JS)

JS

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

Если ширина блока равна ширине экрана, то можно обойтись без JS и установить все размеры исходя из него.

Пример с размерами на CSS, если ширина блока равна экрану:

Размер шрифта

HTML для этого примера остается прежним, JS нам не нужен, а размеры в CSS будет такими:

Где размер текста и его позиция также устанавливаются на глаз на любом разрешении экрана.

Смотрите также:

Эффект круговой пульсации при наведении на кнопку, ссылку или блок

Вариант оформления блока с шестиугольными фотографиями разного размера

Плавный переход фона от блока к блоку при наведении на них курсора мыши

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Тимур:

    У Вас в последнем примере текст уменьшается вместе с картинкой. Подскажите пожалуйста, как добиться, чтобы текст уменьшался вместе с картинкой?

    Ответить
    • Alexander:

      Не понял чего нужно добиться...
      [quote]текст уменьшается вместе с картинкой[/quote]
      как добиться, чтобы
      [quote]текст уменьшался вместе с картинкой[/quote]

      Ответить
      • Тимур:

        В Вашем примере, при растягивании экрана, параллельно растягивается не только сам текст, но и фоновое изображение на котором находится текст. Т.е. изображение становится меньше. Оно не обрезается, а именно уменьшается. Мне нужно добиться подобного результата в следующей ситуации:
        У меня на сайте используется, например, слайдер (обложка) с некоторыми изображениями, заголовком и подзаголовком. В моем случае, при адаптации на разных экранах изображение обрезается, а не параллельно уменьшается в зависимости от размера экрана. Собственно я хочу добиться того же результата, что и в вашем примере "[u]Пример с размерами на CSS, если ширина блока равна экрану[/u]"

        Ответить
        • Alexander:

          Тут нужно смотреть как у вас установлен фон слайдера.
          В примере это просто картинка шириной 100%, у вас скорее всего это фон.
          Тут 2 варианта:
          1 - задать для фона [b]background-size: contain;[/b] - фон будет всегда умещаться в контейнере (слайде)
          2 - задать пропорцию для слайдера и соотв. всех слайдов, например: [b]aspect-ratio: 16 / 9;[/b]

          Ответить
          • Тимур:

            [b]aspect-ratio: 16 / 9;[/b] - то что доктор прописал!
            Благодарю))

            Ответить
        • Alexander:

          Скорее всего у вашего слайдера фиксированная высота, например [b]500px[/b], а ширина [b]100% [/b], и в таком варианте пропорция всегда будет меняться, в зависимости от ширины.
          Удалите высоту эту и поставьте нужную пропорцию [b]aspect-ratio[/b]
          Если не получится, дайте ссылку, скажу что где прописать.

          Ответить
  • Алексей:

    У меня пара вопросов
    1 - почему на примере размер шрифта в 4vw показывается в пикселях
    2 - зачем вообще нужен JS, когда можно всегда считать по этой ширине экрана?

    Ответить
    • Alexander:

      1 - пример не всегда у меня показывает тот код, который дается, иногда я его меняю для удобства и наглядности. В этом случае там показывается 4vw, но значение указано в пикселях, чтобы видеть его реальный размер.
      2 - Блок не всегда может быть связан с шириной экрана, например на 1200 точках справа может быть колонка еще и наш блок будет шириной 700px, а на разрешении 900 точек наш блок может и прибавиться даже, т.к. колонка скроется или пойдет ниже.

      Ответить