Что делать с отступами вокруг текста?

Вопрос по верстке: есть некоторый макет (данный взят с первого попавшегося сайта, но актуально для всех, имеющих печатный текст), в нем есть header с текстом в правой части. По макету отступ от верхнего края хедера до номера телефона должен быть 45px, ширина и высота блока с номерами и надписью "обратная связь" исходя из макета должны получиться 256px и 81px соответственно.

wIlIL.png

Реализация конкретно блока с телефоном и надписью "обратная связь":

<header>
      <div class="container">
        <div class="contacts">
          <span class="contacts__phone">+7(499) 777-77-77</span>
          <span class="contacts__phone">+7(499) 777-77-77</span>
          <span class="contacts__feedback">Обратная связь</span>
        </div>
      </div>
    </header>


CSS стили (для текста вытащил из Zeplin, шрифты подключил через Google Fonts).

@import url('https://fonts.googleapis.com/css2?family=Open+Sans+Condensed:ital,wght@0,300;0,700;1,300&display=swap');
    @import url('https://fonts.googleapis.com/css2?family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap');

    .container {
      max-width: 980px;
      margin: 0 auto;
      display: flex;
      justify-content: flex-end;
    }

    header {
      padding: 45px 0 65px;
      background-color: #ddd;
    }

    .contacts {
      display: flex;
      flex-direction: column;
      text-align: left;
    }

    .contacts__phone {
      font-family: 'Open Sans Condensed';
      font-size: 40px;
      font-weight: 300;
      font-stretch: condensed;
      line-height: 1.15;
      letter-spacing: 1px;
      color: #767676;
    }

    .contacts__feedback {
      font-family: PTSans;
      font-size: 24px;
      font-weight: 900;
      line-height: 1.92;
      letter-spacing: 0.6px;
      color: #767676;
    }


Результат (без подчеркивания "Обратная связь"):

eE8WH.png

Что получаю на практике:

Ширина блока получается чуть больше требуемой - 258.7px заместо должной 256px. Равно как и высота блока, которая получилась 119px вместо 81px. Виной этому, как можно заметить на рисунке ниже, отступы вокруг текста, которые и дают небольшую прибавку по бокам и весомую прибавку по вертикали.
Промежуток между последним номером телефона и надписью "Обратная связь" должен быть 10px, сейчас уже есть некоторый промежуток из-за установленных line-height. Отсюда верстка получается неверной: поскольку отступ от верхней части хедера до номера телефона должен быть 45px, я дал хедеру верхний padding в эти 45px, но line-height добавляет лишнее количество пикселей.

x6nXa.png

Собственно, каковы вопросы:

1. Что делать в таких ситуациях, как убирать ненужные отступы, чтобы получалось"пиксель в пиксель" (или хотя бы очень близко к этому)?
2. Где еще могут встретиться подобные проблемы? (знаю, например, что между стоящими в ряд inline-block элементами появляется пробел. Или, к примеру, изображение, дающее небольшой отступ вниз)
3. Уместно ли корректировать подобные вещи подгоном line-height под высоту текста, отрицательными margin-ми, относительным позиционированием, transform: translate?
4. Как к таким моментам относятся реальные заказчики?

Я только недавно начал изучение web-разработкy, поэтому слабо представляю, как все это происходит на реальных проектах.

5. Существует ли адекватная и удобная линейка для измерений непосредственно в браузере?

Заранее спасибо всем за ответы!
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега CSS
Руководитель frontend направления, предприниматель
Краткий экскурс — типографике в вебе = боль. Наслаждайся. Ничего общего с полиграфией, хотя хотелось бы.

Теперь по сути:
1. Править руками частные случаи. Тут возможностей просто море, от line-height:1 (норм) до абсолютного позиционирования (плохо).
2. Постоянно и везде, поэтому стоит понимать анатомию шрифтов, чтобы знать, как с ними работать. Ну и да, никакой Zeplin тебе эту магию не выдаст, так как это программа, которая просто транспонирует свойства редактора (читай все абсолютно спозиционировано) в типа CSS.
3. Да, главное не прострелить себе ногу при этом. Т.е. скорее всего не стоит к такому прибегать.
4. Заказчику важно сделать деньги на том проекте, что ты реализуешь.
5. Да есть, типа Baseliner-а, или всякие плагины для накладывания полупрозрачной пикчи поверх верстки, но вообще это все от лукавого.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@papabig
Попробуйте свойство line-heigh
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы