ใช้ความกว้างเริ่มต้นสำหรับองค์ประกอบที่ไม่ทำงานใน IE


107

ฉันมีปลั๊กอินกราฟที่แทรกผืนผ้าใบและคำอธิบายแผนภูมิ<table>ลงในคอนเทนเนอร์ ในปลั๊กอินtableนี้ไม่มีwidthกำหนดไว้และใน CSS ของฉันมีความกว้างสำหรับตารางภายในคอนเทนเนอร์ที่ปลั๊กอินของฉันถูกแทรก

ดังนั้น div ใหม่จึงสืบทอดtable{ width: 100%}มาจาก CSS และแสดงผลผิด

ฉันพยายามใช้width: initial;ดูดีบน Chrome แต่IE ไม่ชอบให้ ตรวจสอบความเข้ากันได้ของเบราว์เซอร์

ฉันยอมรับการเปลี่ยน / บังคับใช้ CSS แบบอินไลน์ในสคริปต์ / ปลั๊กอินเนื่องจากต้องใช้งานได้ในทุกสภาพแวดล้อม

ทางออกที่ดีที่สุดคืออะไร?


คุณได้ลองตั้งค่าความกว้างขั้นต่ำแล้วหรือยัง? ได้ผลหรือไม่?
BuddhistBeast

@BuddhistBeast ไม่ได้คิดเรื่องนั้น! แต่ลองตอนนี้แล้วก็ไม่ทำงานบน Chrome ด้วย
Rikard

คำตอบ:


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;อินไลน์ภายในสคริปต์ช่วยแก้ปัญหาบน Chrome, FIrefox และ IE 11 เพียงไม่แน่ใจว่ามีวิธีที่ดีกว่านี้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.