Странная бага Оперы

8 октября 2009

Случайно столкнулся со странной багой в опере 9.64 и 10. Есть простой всем известный способ растянуть сайт на всю высоту окна браузера:

CSS

html, body {
    background:#fff;
    border:0;
    height:100%; /*trick*/
    margin:0;
    padding:0;
}
.wrap {
    background:red;/* для контраста*/
    min-height:100%;
    _height:100%;/* ie6 underscore hack*/
    margin:0 auto;/* расположим блок посередине экрана */
    width:90%;/*необязательно*/
}

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Странная бага оперы</title>

<link href="minheightbug.css" media="screen" type="text/css" rel="stylesheet">

</head>

<body>

<div class="wrap">немного текста для теста.
Странная бага оперы с определением высоты блока</div>

 </body>

</html>

И вариант со стилями в самом .HTML файле, прописанными в HEAD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Странная бага оперы</title>

<style type="text/css">
html, body {
    background:#fff;
    height:100%;
    margin:0;
    padding:0;
}
.wrap {
    background:red;
    min-height:100%;
    margin:0 auto;
    width:90%;
}
</style type="text/css">

</head>

<body>

<div class="wrap">немного текста для теста.
Странная бага оперы с определением высоты блока</div>

 </body>

</html>


(DOCTYPE не важно какой)
Простой общеизвестный способ. Но...
Игрался как-то с разметкой (чуть позже распишу с какой). Создал html-файл и начал писать стили в
HEAD, для скорости и чтоб не делать лишних телодвижений (еще один файл, переключаться из HTML в CSS). Начал тестить: ФФ – гут, Хром – гут, Сафари (вин) – гут, ИЕ (о чудо) – гут. И тут черед дошёл до оперы…
И я увидел, что блок WRAP не растягивается на всю высоту окна. Отресайзишь окно – растягивает. Обновишь – опять WRAP по высоте на свой контент.

Странная бага оперы

Странная бага оперы

то же самое после ресайза окна

то же самое после ресайза окна в опере

Решил посмотреть предыдущую работу, в которой использован этот же способ. Опера все показывает правильно. Одна разница: там стили подключены внешним файлом через LINK. Я в недоумении. Опера правильно применила все стили, прописанные в HEAD, кроме определения минимальной высоты. И только, повторюсь, ресайз позволяет опере правильно вычислить это значение.
Выводов два.

  1. Нефиг лениться. Трудно видите ли не переключиться на отдельный файл стилей.
  2. Да и неверно это в принципе писать стили в HEAD: растет размер страницы, стили не кешируются, если у вас больше, чем один шаблон, то править стили придется в нескольких местах

В общем, если бы делал все, как положено, сэкономил бы себе пару часов времени: ни видел разницы в стилях, и это ставило в тупик.
P.S. При том, что опера замечательный браузер, вот такие вот простые ляпы сильно портят впечатление.

Отступы в кнопках в ИЕ и других

18 июня 2009

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

Something like this (как-то так):
button {padding:2px 5px;background: #FAF9F5 url(../images/bgimg.png) repeat;line-height: 1.5;
}
then use smaller padding left/right value for IE, e.g. (и потом уменьшите отступы для ИЕ)
button {padding: 2px 1px !important}

Вот последняя строчка и вызвала мое изумление. Уважаемый подписчик WSG не знает как можно избавиться от лишних отступов по бокам в кнопках в Интернет Експлорере.

Поясню в чем дело. Интернет Експлорер в версиях до 7 включительно добавлял в кнопках (будь то input, илиbutton) справа и слева непонятные отступы, причем, чем длиннее была надпись на кнопке, тем больше отступы. Вот как-то так:

лишние отступы в кнопках в браузерах Интернет Експлорер 5-7

лишние отступы в кнопках в браузерах Интернет Експлорер 5-7

Тогда как в остальных браузерах (для меня это Файрфокс, Опера и Хром) все выглядит так:

отступы в кнопках в файрфоксе

отступы в кнопках в файрфоксе

Никаких непонятных отступов, все одинаково, независимо от количества знаков в надписи.

И что же делать? Как привести в чувство этот загадочный ИЕ? Читать запись полностью »

Заявление на отпуск

4 июня 2009

Отношения с начальством зачастую слишком заформализированы, сухи, безжизненны. А как было бы хорошо, если бы различные заявления можно было бы писать живым, слегка ироничным языком, например так:

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

Искренне ваш, Сережка. Чмоки-чмоки!


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

Вот была бы жизнь, если б народ на парился по поводу должностей, положения на иерархической лестнице, субординации.