เป็นไปได้ไหมที่ใช้ CSS และแท็ก DIV แบบอินไลน์บล็อก (หรืออะไรก็ได้) แทนการใช้ตาราง
เวอร์ชันของตารางคือ (เพิ่มเส้นขอบเพื่อให้คุณเห็น):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table style="width:100%;">
<tr>
<td style="border:1px solid black;width:100px;height:10px;"></td>
<td style="border:1px solid black;height:10px;"></td>
</tr>
</table>
</body>
</html>
มันสร้างคอลัมน์ด้านซ้ายด้วยความกว้างคงที่ (ไม่ใช่ความกว้างร้อยละ) และคอลัมน์ด้านขวาที่ขยายเพื่อเติมเต็มพื้นที่ที่เหลืออยู่ในบรรทัด ฟังดูง่าย ๆ ใช่มั้ย นอกจากนี้เนื่องจากไม่มีสิ่งใด "ลอยตัว" ความสูงของคอนเทนเนอร์หลักจะขยายอย่างเหมาะสมเพื่อรวมความสูงของเนื้อหา
- เริ่มต้น RANT -
ฉันได้เห็นการใช้งาน "การแก้ไขที่ชัดเจน" และ "จอกศักดิ์สิทธิ์" สำหรับเค้าโครงหลายคอลัมน์พร้อมคอลัมน์ด้านกว้างคงที่และพวกเขาดูดและพวกเขากำลังซับซ้อน พวกเขากลับคำสั่งขององค์ประกอบพวกเขาใช้ความกว้างร้อยละหรือพวกเขาใช้ลอยขอบลบและความสัมพันธ์ระหว่างแอตทริบิวต์ "ซ้าย", "ขวา" และ "ระยะขอบ" มีความซับซ้อน นอกจากนี้เลย์เอาต์มีความละเอียดอ่อนพิกเซลย่อยเพื่อให้เพิ่มแม้แต่หนึ่งพิกเซลของเส้นขอบ, padding หรือระยะขอบจะทำลายรูปแบบทั้งหมดและส่งการตัดคอลัมน์ทั้งหมดไปยังบรรทัดถัดไป ตัวอย่างเช่นข้อผิดพลาดในการปัดเศษเป็นปัญหาแม้ว่าคุณจะพยายามทำสิ่งที่ง่ายเช่นใส่ 4 องค์ประกอบในบรรทัดโดยความกว้างของแต่ละคนตั้งไว้ที่ 25%
--END RANT -
ฉันได้ลองใช้ "inline-block" และ "white-space: nowrap;" แต่ปัญหาคือฉันไม่สามารถรับองค์ประกอบที่ 2 เพื่อเติมช่องว่างที่เหลือในบรรทัด การตั้งค่าความกว้างเป็นบางอย่างเช่น "width: 100% - (LeftColumWidth) px" จะทำงานในบางกรณี แต่การคำนวณในคุณสมบัติความกว้างนั้นไม่ได้รับการสนับสนุนจริงๆ
display: table-*
ก่อสร้างที่จะใช้งานได้ แต่ก็ไม่ได้หมายถึง "ความหมายมากขึ้น" (เช่นdiv
ซุปที่แย่มาก) และแบ่ง IE6 ฉันเองจะยึดติดกับ<table>
ถ้าไม่มีใครจัดการที่จะเกิดขึ้นกับความคิดที่เรียบง่ายอัจฉริยะที่ทำงานได้โดยไม่ต้อง