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