Подтвердить что ты не робот

Почему вы используете HTML/CSS ширину 99,9% вместо 100%?

Я видел, как многие разработчики писали HTML или CSS встроенные стили шириной 99,9% в тех местах, где я бы использовал 100%. Есть ли веская причина для использования 99,9%? Имеет ли он какое-либо эффективное отличие от 100%?

РЕДАКТИРОВАТЬ, чтобы отредактировать очень важный вопрос MSalters: Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%? Я бы предположил, что он прав, что если вы идете с dirty hack, вы должны использовать 99,99%, кто-нибудь не согласен?

Дополнительные ссылки:

4b9b3361

Ответ 1

Свойство hasLayout

Это грязный хак, используемый для установки IE определенного свойства hasLayout элемента в true. Свойство hasLayout определяет, как элементы рисуют и связывают их содержимое, взаимодействуют с другими элементами и взаимодействуют с ними, а также реагируют и передают события приложения/пользователя ". Предоставление элемента layout - это простой способ исправить множество ошибок, связанных с компоновкой, которые появляются в Internet Explorer.

Что с 99,9%?

Установка ширины до 99,9% является одним из способов ее запуска. Причина, по которой вы будете использовать 99,9%, заключается в том, что макет присваивается элементу, если для его width установлено значение, отличное от auto. Установка его в процентах предотвращает необходимость использования фиксированной ширины.

После некоторого тестирования в jsFiddle я пришел к выводу, что нет необходимости использовать ширину 99,9%, используя ширину 100%, так же эффективно. http://jsfiddle.net/3qfjW/2/ (только для IE). Похоже, что установка width до 99.9%, возможно, была распространенным заблуждением, которое застряло.. Распространение слова people.

Другие методы

Вы также можете запустить hasLayout с помощью zoom: 1;. Хотя это предпочтительный метод для многих, так как он не вовлекается в другие связанные с стилем элементы элемента, это также неверный CSS-код, который не является опцией для использования некоторыми разработчиками.


Дополнительная литература

Дополнительные методы для запуска hasLayout: http://www.satzansatz.de/cssd/onhavinglayout.html

Для получения дополнительной информации о свойстве hasLayout проверьте статью MSDN на hasLayout http://msdn.microsoft.com/en-us/library/bb250481(VS.85).aspx (это действительно замечательный, много подробной информации)

Ответ 2

Это true width ничего, кроме auto и zoom trigger hasLayout, а zoom - более гибкое свойство/значение, поскольку оно не испортит ширину, но я не думаю, что причина почему вы видели, что разработчики используют 99,9%.

В некоторых случаях с плавающей точкой необходимо, чтобы объединенная ширина поплавков не составляла до 100% (если она указана в процентах), потому что IE6 неправильно вычисляет это значение, превышающее 100%, и обычно последний поплавок падает.

Решение состоит в том, чтобы либо указать правое поле -1px только для IE, либо сделать сумму 99,99%.

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