Как стать автором
Обновить

Комментарии 24

Получается, что при верстке стоит рассчитывать только на 99% размера родительского блока с определенным размером?

Или есть другие методы с исправлением ситуации?
Или использовать кол-во процентов, достаточное для того, чтоб не приходилось пиксели "делить".
Согласен. Простые решения обычное правильные
Обычно, ширина в процентах, кратная 4, показывается корректно везде. Хотя с ие попробуй угадай.
нужно стараться % - ми верстать... желательно кратной 2
Желательно "резиной"
Думаю рассчитывать надо на 100, но хотя бы изначально задавать такие размеры, чтобы получались целые числа.
а дальше начинается развлекуха с бордерами, которые то считаются так то эдак :) имхо лучше делать запас
Встречал такие варианты с плавающими блоками, когда сайт верстается, допустим, в 2 колонки (к примеру 30% и 70% соответственно), то opera и ff при таких процентах блоки выставляют правильно - один за одним, а для ie прихзодится делать правый блок 69.9%. Тогда он не будет сваливаться под левый при изменении размеров окна.
Интересное исследование.

Вот только я не понимаю чем
12.5px
отличается от 12.4667px

Ведь пиксель - минимальная величина, или я что то путаю? То есть у меня в фотошопе
12px и 12.4px - это одно и тоже = 12px

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


также в теории может быть использован антиальясинг - там влияние дробных долей былобы существенным.
очень просто.
просто в x86 процессорах, не все десятичные дробные числа могут быть представленны без потери точности :)
С точки зрения CSS px не является абсолютной величиной.
Firefox делает всё правильно.
НЛО прилетело и опубликовало эту надпись здесь
Я думаю что нужно вынести эту проблему на W3C и разработчикам просто взять их решение за основу. А по хорошему нужно находить решения такие, чтоб не нужно было извращаться с версткой. Я думаю дизайнер, если он понимает что делает, то вполне может предугадать такие вот казусы и находить более приемлемые варианты без ущерба всей концепции сайта.
На днях размышлял на эту тему, подумалось что не плохо было бы, если в CSS3 внесли такие вещи:
width: 1/4;
или, что бывает не редко
width: 1/3;
тогда как писать 33.33333% не очень
продолжая тему можно было бы ввести модификатор N означающий количество дочерних элементов, тогда получается
width: 1/N;
В зависимости от числа элементов их ширина будет пропорционально распределена по ширине родителя.
Можно так же продолжить
width: 2/N;
Блоки будут "растекаться" в две линии.
width: 1/2N;
Блоки будут делить половину ширины родителя.
width: 2N;
Не знаю насколько это разумно, но при 2 элементах элементы будут в 4 раза больше родителя, при 3 в 6 раз, при 4 в 8. Наверное данная запись лишена смысла.
Предложил бы кто нибудь данную тему w3c...
А еще в опере есть такая проблема, что она воспринимает только целые значения в процентах для ширины. Например 25,5% превратятся в 25%.
Да, очень не красивая штука. Если задать ширину блока 0.5%, блока вообще не будет видно, так как опера эту величину до 0% сократит. В свое время меня этот эффект очень озадачил, пришлось отказаться от использования процентов в пользу целых пикселей.
вопервых там точка должна стоять а не запятая. во вторых все прекрасно работает. недавно прописывал паддинги 4.5px и в трех браузерах отображалось 9 при соединении двух блоков...
очень интересная статья:) только, пожалуйста, добавьте хабракат, чтобы неприятностей (в виде незаслуженных минуов за это) не было.
Похоже, те кто минусуют Arwen не знают ни про хабракат, ни про то, зачем хабралюдям дано право минусовать и плюсовать друг друга. Не так просто нести свет людям, хотя на кострах за это уже не сжигают =)
Ну вот, Arwen уже в плюсе, зато меня минусанули. Нет слов.
нечего использовать дробные числа в CSS, теперь это очевидно. Результат для таких чисел был раньше непредсказуем, а теперь видно почему. Разработчикам браузеров можно порекомендовать интерпретировать такой случай как ошибку, так как претензионной точности для дизайна не получится, особенно для областей с большой контрастностью. В браузере для таких случаев можно ввести режим "кривой дизайн"
да а красиво было бы делать так:

<div style="float:left; width: 50%">main</div>

<div style="float:right; width: 50%">

    <div style="float:left; width: 50%">
     sideblock-1
    </div>
    <div style="float:right; width: 50%">
     sideblock-2
    </div>

</div>

при изменении окна в IE, блок вываливается вниз, хорошо если верстка простая, бывает же еще и со "штучками дрючкапи" :-\
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории