webkit просто отсекает десятичные дроби в css number … как обойти?

#css #webkit #integer #width

#css #webkit #целое #ширина

Вопрос:

когда я использую числа с десятичной дробью в своих спецификациях css, подобных этому:

 #UploadWrapper.OneRow #UploadList #UploadUl li div.imageDiv, #UploadWrapper.TwoRows #UploadList #UploadUl li div.imageDiv{
    width: 58.8px;
    height: 44px;
}
  

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

Браузеры Webkit просто принимают целое число (58) …

Как я могу:

 1. Force the Webkit browser to behave like FF?  ... or ...
2. Sepecify an other width, that only takes effect in webkit browsers? I already tried
   -webkit-width: but it didn't work ...
  

Спасибо за любой совет!

Ответ №1:

Я не думаю, что вы можете сделать это элегантно. В общем, лучше всего рассматривать пиксели как атомарные единицы, которые нельзя разделить.

Решения:

  1. Найдите другой способ позиционирования ваших элементов. т. Е. Используйте проценты или сделайте последний столбец на 1 пиксель короче (или что угодно, что нужно вашему дизайну, чтобы можно было использовать целые числа)
  2. Используйте JS browser sniffing, чтобы добавить класс «webkit» или аналогичный элементу body, а затем используйте это для применения других правил стиля.

Я бы посоветовал не использовать второе решение, поскольку оно, вероятно, излишне сложное.

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

1. На самом деле, представление пикселей как «атомарных единиц, которые нельзя разделить» — это то, что ломается, как только вы находитесь на iPhone 4 или как только пользователь увеличивает масштаб…. Но да, я согласен, что нет хорошего обходного пути для сбоя WebKit «мы просто округлим все длины до целых пикселей во время вычисления».