использовать начальную ширину для элемента, не работающего в IE


107

У меня есть плагин графика, который вставляет холст и легенду <table>в свой контейнер. В этом плагине tableне widthопределено, а в моем CSS есть ширина для таблиц внутри этого контейнера, в которые вставляется мой плагин.

Итак, новый div наследуется table{ width: 100%}от CSS и отображается неправильно.

Я пробовал использовать width: initial;, выглядит хорошо в Chrome, но IE не любит проверять совместимость браузера

Я допускаю изменение / принудительное использование встроенного CSS в скрипте / плагине, поскольку он должен работать в любой среде.

Какое здесь лучшее решение?


Вы пробовали просто установить минимальную ширину? Это работает?
BuddhistBeast

@BuddhistBeast, не думал об этом! Но попробовал это сейчас и в Chrome тоже не работал.
Рикард

Ответы:


177

Как вы сказали, обычно width: autoбудет иметь аналогичный эффект. Имея правила:

.my-selector {
    width: auto;
    width: initial;
}

Должен вызвать его использование, initialесли он поддерживается, и в autoпротивном случае.


3
Это устранило мою проблему. Спасибо.
dchayka

2
Просто сэкономил мне час. Спасибо.
Skitterm

2
Обратите внимание initial : это допустимое значение свойства ( developer.mozilla.org/en-US/docs/Web/CSS/initial ). Но (если вы прокрутите вниз до «Совместимость браузера» в предыдущей ссылке), ни одна версия IE не поддерживает его.
gtramontina

4
это известно как резервный вариант и является очень распространенным шаблоном кодирования в CSS. Кроме того , используя width: autoне только иметь подобный эффект, но он будет иметь тот же эффект, потому что autoэто определяется как начальное значение для widthсвойства.
chharvey

6

Использование width: auto;inline внутри скрипта решает проблему в Chrome, FIrefox и IE 11. Просто не уверен, есть ли лучший способ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.