2016-11-16 1 views
1

У меня есть заголовок, который отображается заглавными буквами. Я хотел бы иметь всего 2 пикселя между этим заголовком и рамкой ниже.Удалите место вокруг заголовка верхнего регистра

Если текст содержит буквы нижнего регистра, такие как «g», нет места внизу, но после того, как все буквы «g», «y» и «j» исчезнут, оно появляется.

Есть ли кросс-браузерный метод избавления от этого пространства? По-видимому, браузеры отображают различное количество пустого места: https://jsfiddle.net/5o94va6p/13/, поэтому трюки вроде line-height: 0.7 работают в Firefox, но едят слишком много места в Safari.

+0

Вы пишете: «Если текст нормальный» - что вы подразумеваете под этим? – Johannes

+0

Спасибо, я отредактировал текст, чтобы сделать это явным. – Michal

ответ

0

Сафари и хром выглядят одинаково с точки зрения пустого пространства. Браузер, который выглядит по-другому, - это Firefox. Я бы только указал высоту строки для него с помощью CSS. Таким образом, Firefox будет выглядеть хорошо, и это не повлияет на внешний вид в других браузерах.

Попробуйте этот код, который будет предназначаться только Firefox:

@-moz-document url-prefix() { 
    h1 { 
     line-height: 0.7 
    } 
} 
+0

Это сработает, если Firefox сделает это в одну сторону и все остальные браузеры другим способом. Я боюсь, что каждый браузер делает свой собственный расчет, и будут некоторые различия. – Michal

+0

@ Michal в моем тесте на Mac, Chrome и Safari выглядели точно так же с точки зрения пустого пространства. Единственным браузером, который предоставляет другое пространство, является Firefox. Что касается Internet Explorer, я не тестировал его, и, честно говоря, я не думаю, что кто-то его использует. – Ibrahim

+0

Увы, Chrome/Windows дает больше места, чем Safari/macOS, поэтому, похоже, он также зависит от ОС. – Michal

0

попробовать использовать это -

.box{ 
    margin-top: 2px; 
    position: fixed; 
} 
+0

Это делает пространство в Firefox еще большим. – Michal

0

пространство ниже базовой линии, которая необходима для письма, как у, г, р и т.д. является ВСЕГДА там, это часть линии-высоты - это причина вашей проблемы. Вы не можете изменить это, если вы не определяете отрицательное значение нижнего предела, например

.my_heading { 
    margin-bottom: -4px; 
} 
+0

Да, я это понимаю. Проблема в том, что пространство отличается от Firefox и других браузеров - см. Мой пример. Добавление фиксированного отрицательного поля не решает этого, пространство будет по-прежнему большим для FF, для Safari оно мало. – Michal

+0

Используется ли тот же самый шрифт? Вы можете попытаться добавить определение высоты строки в пикселях. Строка-высота по умолчанию может отличаться между браузерами. – Johannes

+0

В этом проблема, тот же шрифт нуждается в разном расположении в разных браузерах. – Michal