Почему маржа: 2.5px не работает? Как решить эту проблему - PullRequest
4 голосов
/ 14 февраля 2010

Почему margin:2.5px не работает? в одной ситуации в моем коде я хочу дать margin:2.5px в условном CSS IE6 для решения двойного поля IE, и мой CSS по умолчанию имеет margin:5px, но в IE6 css margin:2.5px и margin:2px создает такое же поле. тогда как получить одинаковые margin в обоих браузерах?

Это код экрана по умолчанию CSS

    #newsHeadline LI 
{font-weight: bold; 
list-style-position: inside; 
font-size: 13px;
margin: 5px 0px;
width: 320px; 
line-height:
normal; list-style-type: disc; 
position: relative}

это условный код CSS, я пишу #newsHeadline LI {margin: 2.5px 0px}

Редактировать: 15 фев

если margin: 2.5px не работает, то как получить одинаковую маржу в браузере IE и FF? Есть ли другой способ?

Ответы [ 7 ]

9 голосов
/ 14 февраля 2010

Хотя многие считают, что пиксель неделим, и, следовательно, дробное значение пикселя не имеет смысла, стандарт CSS фактически не исключает дробные значения. Действительно, это предполагает, что при использовании устройства с высоким разрешением единицу пикселя CSS следует отображать на большее количество элементов, специфичных для устройства. Поэтому я считаю, что 2.5px не должно быть явно неправильным, просто вы не сможете положиться на него, чтобы сделать что-то полезное, особенно, я бы сказал, в Internet Explorer.

2 голосов
/ 14 февраля 2010

О неделимости пикселя: с функцией Zoom в современных браузерах приходит понятие «логический пиксель». Достаточно умная реализация масштабирования может и должна использовать дробные пиксели ...

2 голосов
/ 14 февраля 2010

Вы всегда можете установить поле на display: inline, но это не всегда то, что вы хотите. Двойное поле влияет на элементы уровня блока.

Как отмечает @Andrew Moore, если вы используете это в своей основной таблице стилей, это не будет перспективой на будущее и должно быть включено в таблицу стилей IE6 . Спасибо.

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

2 голосов
/ 14 февраля 2010

Потому что px - наименьшая возможная единица измерения. Вы действительно не можете разделить one display point, не так ли?

Редактировать: КАК для вашей проблемы, если нет помех для фона (то есть другого цвета), вы можете попробовать установить padding вместо поля для IE6.

0 голосов
/ 15 февраля 2010

вам, вероятно, просто нужно починить рыбу

<ul
><li>content 1</li
><li>content 2</li
></ul>

помните, что между каждым ul / ol или li

не должно быть пробела
0 голосов
/ 14 февраля 2010

Почему маржа: 2.5px не работает?

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

ТогдаКак получить одинаковое поле в обоих браузерах?

Обычное исправление - установить display: inline; для рассматриваемого элемента.На самом деле, некоторые предлагают просто применить встроенное исправление ко всем плавающим объектам, если хотите, убедившись, что исправление применяется только к IE5 и IE6 (например, с помощью условных комментариев), поскольку в этих браузерах нет известных побочных эффектов.*

0 голосов
/ 14 февраля 2010

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

...