gunakan lebar awal untuk elemen yang tidak berfungsi di IE

107

Saya memiliki plugin grafik yang menyisipkan kanvas dan legenda <table>ke wadahnya. Dalam plugin tableini tidak ada widthdefinisi dan di CSS saya ada lebar untuk tabel di dalam wadah itu plugin saya dimasukkan.

Jadi, div baru mewarisi table{ width: 100%}dari CSS dan salah rendering.

Saya mencoba menggunakan width: initial;, terlihat bagus di Chrome tetapi IE tidak suka memeriksa kompatibilitas browser

Saya mengakui mengubah / memaksa CSS inline di skrip / plugin karena harus bekerja di lingkungan mana pun.

Apa solusi terbaik di sini?

Rikard
sumber
Sudahkah Anda mencoba menyetel lebar minimum? Apakah itu bekerja?
BuddhistBeast
@BuddhistBeast, tidak berpikir tentang itu! Tapi coba sekarang dan tidak berhasil di Chrome juga.
Rikard

Jawaban:

177

Seperti yang Anda katakan, umumnya width: autoakan memiliki efek yang serupa. Memiliki aturan:

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

Harus menyebabkannya digunakan initialjika didukung dan autosebaliknya.

Mark Rhodes
sumber
3
Ini memperbaiki masalah saya. Terima kasih.
dchayka
2
Hanya menyelamatkan saya satu jam. Terima kasih.
Skitterm
2
Sebagai catatan, initial adalah nilai properti yang valid ( developer.mozilla.org/en-US/docs/Web/CSS/initial ). Tetapi (jika Anda menggulir ke bawah ke "Kompatibilitas browser" di tautan sebelumnya), tidak ada versi IE yang mendukungnya.
gtramontina
4
ini dikenal sebagai fallback dan merupakan pola pengkodean yang sangat umum di CSS. juga, menggunakan width: autotidak hanya akan memiliki yang sama efek, tetapi akan memiliki yang sama persis efek, karena autoyang didefinisikan sebagai nilai awal untuk widthproperti.
chharvey
6

Menggunakan width: auto;inline, di dalam skrip memecahkan masalah di Chrome, FIrefox dan IE 11. Hanya tidak yakin apakah ada cara yang lebih baik.

Rikard
sumber