Подтвердить что ты не робот

Удалите пустое пространство над и под большим текстом в элементе встроенного блока

Скажем, у меня есть один элемент span, определенный как встроенный блок. Это только текстовое содержимое. Когда размер шрифта очень большой, вы можете четко видеть, как браузер добавляет небольшую отступы над и под текстом.

HTML:

CSS:

span {
  display: inline-block;
  font-size: 50px;
  background-color: green;
}

​
<span>BIG TEXT</span>
4b9b3361

Ответ 1

Похоже, что вам нужно явно установить шрифт и изменить line-height и height мере необходимости. Предполагая, что "Times New Roman" является шрифтом вашего браузера по умолчанию:

span {
  display: inline-block;
  font-size: 50px;
  background-color: green;
  /*new:*/
  font-family: 'Times New Roman';
  line-height: 34px;
  height: 35px;
}
<link href='http://fonts.googleapis.com/css?family=Tinos' rel='stylesheet' type='text/css'>
<span>
    BIG TEXT
</span>

Ответ 2

Браузер не добавляет никаких отступов. Вместо этого буквы (даже заглавные буквы) обычно значительно меньше в вертикальном направлении, чем высота шрифта, не говоря уже о высоте строки, которая обычно по умолчанию примерно в 1,2 раза больше высоты шрифта (размера шрифта).

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

Практические решения могут быть найдены экспериментально, но они неизбежно зависят от шрифта. Вам нужно будет установить высоту строки существенно меньше, чем размер шрифта. Следующее, похоже, дает желаемый результат в разных браузерах Windows для шрифта Arial:

span.foo
{
  display: inline-block;
  font-size: 50px;
  background-color: green;
  line-height: 0.75em;
  font-family: Arial;
}

span.bar
{
  position: relative;
  bottom: -0.02em;
}
<span class=foo><span class=bar>BIG TEXT</span></span>

Ответ 3

Я дизайнер, и у наших разработчиков была эта проблема при работе с Android на начальном этапе, и у наших веб-разработчиков возникла та же проблема. Мы обнаружили, что интервал между строкой текста и другим объектом (или компонентом, подобным кнопке, или отдельной строкой текста), который выдает программа дизайна, является неправильным. Это связано с тем, что программа проектирования не учитывает диакритические знаки, когда она определяет "размер" одной строки текста.

Мы закончили тем, что добавили Êg к каждой строке текста и вручную создали разделители (маленькие синие прямоangularьники), которые выступают в качестве "измерения" от фактической вершины текста (то есть от вершины знака акцента на E) или от спусковое устройство (дно "г"). Например, скажем, у вас действительно скучная верхняя навигация, которая представляет собой просто прямоangularьник и заголовок под ним. Программа дизайна скажет, что пространство между нижней частью верхней панели навигации и верхней частью заголовка текстового поля 24px. Однако, когда вы измеряете от нижней части навигационной панели до верха знака акцента, интервал фактически составляет 20 пикселей.

Хотя я понимаю, что это не кодовое решение, оно должно помочь объяснить несоответствия между спецификациями проекта и тем, как выглядит сборка.

See this image for an example of what Sketch does with type

Ответ 4

У меня была аналогичная проблема. По мере увеличения высоты линии пространство над текстом увеличивается. Это не дополнение, но это повлияет на вертикальное пространство между контентом. Я обнаружил, что добавление верхнего края поля показало, что это трюк. Это должно было быть сделано для всех разных экземпляров строки-высоты, и это также зависит от семейства шрифтов. Может быть, это то, что дизайнеры должны лучше знать при прохождении требований к дизайну (?) Итак, для конкретного экземпляра семейства шрифтов и высоты строки:

h1 {
    font-family: 'Garamond Premier Pro Regular';
    font-size: 24px;
    color: #001230;
    line-height: 29px;
    margin-top: -5px;    /* CORRECTION FOR LINE-HEIGHT */
}

Ответ 5

Если его текст должен масштабироваться пропорционально ширине экрана, вы также можете использовать шрифт в качестве SVG, вы можете просто экспортировать его из чего-то вроде иллюстратора. Я должен был сделать это в моем случае, потому что я хотел выровнять верхнюю часть левой и правой границы с верхом шрифта | TEXT | , Используя высоту строки, текст будет прыгать вверх и вниз при масштабировании окна.

Ответ 6

Меня часто это раздражало. Vertical-align будет работать только на дне и в центре, но никогда не будет сверху!: - (

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

CSS

p {
    font-family: "Times New Roman", Times, serif;
    font-size: 15px;
    background: #FFFFFF;
    margin: 0
    margin-top: 3px;
    margin-bottom: 10px;
}

Для меня настройки полей отсортированы независимо от того, где я помещаю свой код "p > .../p > ".

Надеюсь, что это поможет...