Как избежать удаления AjaxMin для IE9 и ниже CSS взломать
Я использую следующие CSS:
.GridDraggedRow tr td.firstCol{
padding: 2px 10px 0 0;
text-align: right;
vertical-align: top;
width: 1px;
width: 1%\9; /* IE9 and below */
white-space: nowrap;
}
Как вы видите, я использую довольно уродливый хак CSS. Моя проблема в том, что этот хак удален из минимизированного css-файла, который я генерирую с помощью AjaxMin. Это шаг после сборки в нашей системе доставки, поэтому мы будем придерживаться AjaxMin. Документация ajaxmin объясняет, что допускается несколько хаков на основе комментариев с использованием флага 'hacks', например:
ajaxmin -css -комментарии: взломать GridLayout.css
К сожалению, взлом \9 не допускается. Что я могу сделать? Парсинг сгенерированного файла, на мой взгляд, не очень хорошая идея.
Я думаю, что мой лучший выбор - вставить этот хак в другой неминифицированный файл или непосредственно в html-страницу между тегами... У вас, ребята, есть идея получше? Было бы здорово, чтобы ajaxmin предоставил раздел исключения...
1 ответ
Вы не должны использовать ни одного из этих уродливых хаков!
Вместо этого используйте метод условных комментариев Пола Айриша.
Используйте это при открытии вашего HTML-тега:
<!--[if lt IE 10 ]> <html class="lt-ie10"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
Затем в вашем CSS используйте это:
.GridDraggedRow tr td.firstCol{
padding: 2px 10px 0 0;
text-align: right;
vertical-align: top;
width: 1px;
white-space: nowrap;
}
.lt-ie9 .GridDraggedRow tr td.firstCol{
width: 1%;
}
Это намного чище и гораздо надежнее.