Блог Это не баг, это фича!

Это не баг, это фича!Вспомните, как часто мы, верстальщики, расстраиваемся, когда браузеры ведут себя не так, как нужно, ругаем разработчиков, злимся на них. Но от безвыходности приходится мириться с таким поведением браузеров и искать обходные пути. Казалось бы, что если бы все работало по правилам, по стандартам, то жить стало бы легче. Да, я с этим полностью согласен.

Но как ни странно, иногда эти самые неприятные баги могут приятно удивить верстальщиков, заставить их подскочить с кресла и воскликнуть: «Это не баг, это фича!»

Не все баги одинаково бесполезны

Давайте вспомним те багофичи браузеров, которые могут быть в некоторых ситуациях полезны при верстке. Думаю, ни у кого не возникнет сомнения, что лидер в этой номинации — старичок IE6. Ну хоть в чем то он преуспел ;)

1. Position:fixed в ie6

Если блоку назначить свойство overflow со значением auto или scroll, а его дочернему элементу прописать position:relative, то дочерний элемент будет оставаться на месте при прокрутке родителя. А так как IE6 не поддерживает значение fixed, то этот баг можно считать отличной фичей. Есть много ситуаций, где он может быть полезен. Например, когда нужно фиксировать шапку сайта вверху страницы.

Бонус четвертого задания «Верстальщика-виртуоза», к сожалению, так и не был никем решен, а разгадкой для его решения была эта багофича.

2. !important в ie6

В примере про футер я рассказывал про то, что IE6 живет по закону «кто последний тот и папа», а на свойство !important он забивает.

height:auto !important; height:100%;

Такой код он поймет по своему и установит высоту в 100%, а все другие браузеры это значение проигнорируют. Существует масса других хаков для «ослика». Но этот способ хорош тем, что он валидный. Думаю, его так же можно считать фичей.

3. Min-height в ie6

Как известно, ie6 не поддерживает min-height. Это свойство незаменимо, когда необходимо выполнение следующих условий:

  • высота блока должна определяться высотой контента
  • если контента мало, высота блока должна фиксироваться

Но, к счастью, у шестерки есть проблемы со свойством height, когда контент, который не вмещается в блок с заданной высотой, не выходит за границы блока, а растягивает этот блок. Поэтому можно спокойно писать height вместо min-height, и это свойство будет определять минимальную высоту в ie6. Это же правило работает в ie6 и для свойства min-width

4. Margin:auto в ie6

В ie6 нельзя выровнять блок по центру, прописав к нему margin:auto. Но, к счастью, у него есть полезная багофича со свойством text-align — это свойство работает не только для текста, но и для блоков внутри контейнера, которому задается свойство. Таким образом, задав для контейнера text-align: center, мы сможем выровнять внутренние блоки по центру контейнера.

Предлагаю обсудить другие баги браузеров, которые иногда бывают полезными для верстальщиков.

Поделиться ссылкой на статью:

Предыдущая статья
Следующая статья
-->

Внимание! АКЦИЯ!

Вступите в группу Вконтакте и получите бесплатную консультацию по верстке. Расскажите друзьям про группу и получите 5% скидку на услуги Webmolot.com