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?


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.