Как заставить IE поддерживать свойства минимальной ширины/максимальной ширины CSS?
Являются ли эти свойства не стандартными CSS?
Я использую что-то вроде этого, которое работает правильно на Chrome 12, FF4, Opera 11 и Safari 5, но в IE9 минимальная ширина не соблюдается, если width < min-width
.
<span style="float:left; width:11%; min-width:150px;">
...
</span>
Edit: немного раздражает либеральное редактирование и миграция моего вопроса, но w/e. Вот более полный пример, который показывает явное различие в IE9 и других браузерах.
<html><body>
<p style="width: 600px">
<span style="float: left; width: 11%; min-width: 150px">Hello.</span>
<span style="float: left; width: 11%">World.</span>
</p>
</body></html>
Изменить 2: Как отмечено в комментарии Кевина ниже, добавление <!DOCTYPE html>
в начало решает проблему IE.
Ответы
Ответ 1
Если вы говорите правду, IE9 будет отклонять форму спецификацию. Однако я не могу повторить вашу жалобу. Используя ваш пример, IE9 уважает min-width
, если width
меньше 150px
за этот jsfiddle.
EDIT:
ПРИМЕЧАНИЕ. Режим Quirks соответствует различным правилам и не соответствует стандартным CSS в любом браузере. Если вы добавите doctype на страницу, это должно решить проблему (add: <!DOCTYPE html>
).
Чтобы расширить эту проблему, режим Quirks не стандартизирован. Есть некоторые вещи, которые реализует большинство браузеров, но новые функции undefined в этих стандартах defacto. Таким образом, некоторые браузеры позволяют использовать новый CSS (как вы заметили), но IE9 игнорирует новые значения css, поскольку им нет места в режиме Quirks.
Ответ 2
Я обнаружил, что <!DOCTYPE html>
недостаточно - мне пришлось идти строго:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Ответ 3
Попробуйте выполнить следующий код:
#limit-size
{
min-width: 998px;
width: expression(this.width < 998 ? 998: true);
min-height: 250px;
height: expression(this.height < 250 ? 250: true);
}
//html:
<div id="limit-size"></div>