Я пытаюсь создать макет, в котором вертикальный интервал между элементами будет идеальным. До сих пор я исключил почти все большие сеточные системы (960.gs, Blueprint), потому что они вообще не имеют решения для вертикальных расстояний. С ними единственный способ установить вертикальный интервал между divами - это использовать атрибут body {line-height} и манипулировать этим с помощью div. Я бы не назвал это решением, поскольку он разрушает ваш шаблон, зависит от семейства шрифтов и не позволяет использовать разные расстояния для разных элементов div.
Единственная система сетки, которую я нашел, которая имеет правильную поддержку вертикального интервала, это Золотая сетка , которая не использует body {line-height}, но имеет свой собственный .clear {height: 5px} для вертикальный интервал.
Моя проблема в том, что, как бы я ни старался, я не смог заставить работать интервалы в HTML5. Я говорю о вертикально расположенных изображениях без промежутка между ними. В переходном режиме XHTML все работает идеально, изображения идеально выровнены, но в режиме HTML5 между ними имеется вертикальный разрыв. Разрыв составляет 2 пикселя в Chrome и 2-3 пикселя в Firefox, чередуясь между строками. Я думаю, что это имеет место с каждой системой сетки при использовании в режиме HTML5. Я не знаю, как лучше написать этот код в простом HTML5, поэтому я просто попробовал грид-системы. Вертикальный зазор присутствует в 960.gs, Blueprint тоже.
Решение, которое я обнаружил, может состоять в том, чтобы установить body {line-height: 0} и определить высоту строки в каждом типографском теге. Но я не понимаю, почему такой плохой взлом потребовался бы для такого простого случая: вертикально расположенные изображения. Почему браузеры в режиме HTML5 отличаются от переходного режима XHTML?
Здесь у меня та же страница, ничего не изменилось, только doctype. XHTML one идеально подходит для всех браузеров, а HTML5 имеет пробел и отличается от браузера к браузеру.
Каков наилучший способ заставить пример HTML5 работать как переходный XHTML?
ОБНОВЛЕНИЕ : Тридцать не ответил на проблему, если я включил img {display: block; } версия HTML5 ведет себя точно так же, как XHTML Transitional. Спасибо, тридцать дот!
Но прежде чем закрыть эту ветку, кто-нибудь может объяснить мне, почему это так:
- Почему все браузеры ведут себя по-разному в режиме HTML5 и все имеют разные вертикальные промежутки между элементами img, если они не указаны как display: block. Посмотрите в браузере сайт сравнения html5 по ссылке выше, она будет отличаться от браузера к браузеру. Они имеют промежутки от 2 до 4 пикселей.
- Почему XHTML Transitional не нуждается в этом хаке
- Почему XHTML Strict также создает вертикальный разрыв
- Безопасно ли использовать img {display: block; } в листе reset.css?