วิธี ตั้งความสูงของ Div ใน HTML ด้วย CSS สำหรับการจัดเลย์เอาต์แบบตาราง

การสร้างเลย์เอาต์เว็บที่น่าสนใจสามารถเป็นความท้าทาย โดยเฉพาะเมื่อพยายามให้แน่ใจว่าองค์ประกอบต่างๆ แสดงผลอย่างถูกต้องข้างกัน หากคุณกำลังจัดการกับการจัดเลย์เอาต์แบบสองคอลัมน์ ตัวอย่างเช่น อาจเป็นเรื่องยากที่จะรักษาความสูงที่สอดคล้องกันในแต่ละคอลัมน์ โดยเฉพาะเมื่อเนื้อหาของพวกมันแตกต่างกันอย่างมีนัยสำคัญในขนาด

ในโพสต์นี้ เราจะพูดถึงปัญหาที่มักพบในนักพัฒนาเว็บ: วิธีตั้งความสูงของ div อย่างมีประสิทธิภาพเพื่อให้ตรงกันในเชิงสายตามกับเนื้อหาที่อยู่ติดกัน ในขณะที่มั่นใจว่าจะมีสีพื้นหลังที่สอดคล้องกันเติมพื้นที่นั้น

ปัญหา

ลองจินตนาการว่าคุณมีการจัดเลย์เอาต์ที่มีสองคอลัมน์ที่:

  • คอลัมน์ซ้าย: มีเนื้อหาจำนวนมาก
  • คอลัมน์ขวา: มีข้อความที่สั้นกว่าซึ่งต้องรักษาความสูงให้สม่ำเสมอไปถึงเส้นแบ่งของแถวด้านล่าง

ตัวอย่างสถานการณ์

คุณจะพบกับสถานการณ์เช่นนี้ใน HTML/CSS บ่อยครั้ง ที่คุณต้องการให้คอลัมน์ขวามีสีพื้นหลังที่ชัดเจนแต่ยังต้องการให้มันยืดสูงพอสมควรเพื่อให้ตรงกับความสูงของคอลัมน์ซ้ายซึ่งอาจมีเนื้อหามากมาย

วิธีแก้ปัญหา

การ แก้ไขอย่างรวดเร็ว โดยการตั้งค่าความสูงเป็น 100% ใน div ของคุณอาจไม่ทำงานในดีไซน์ที่ซับซ้อน นี่คือวิธีการที่ดีกว่าและเป็นระเบียบในการทำให้แน่ใจว่าคอลัมน์ของคุณจัดเรียงได้อย่างถูกต้อง:

ขั้นตอนที่ 1: ตั้งค่าความสูงของ HTML และ Body

เริ่มต้นโดยการทำให้แน่ใจว่าองค์ประกอบ body และ html มีความสูงที่กำหนด นี่เป็นสิ่งสำคัญมาก เพราะถ้าความสูงของพวกเขาไม่ได้ตั้งเป็น 100% div ย่อยจะไม่ยืดตามที่คาดหวัง

html, body {
    height: 100%;
}

ขั้นตอนที่ 2: สร้าง Wrapper

เพื่อจัดการความสูงและเลย์เอาต์ได้อย่างมีประสิทธิภาพมากขึ้น ให้สร้าง <div> เป็นแถวสำหรับคอลัมน์ของคุณ Wrapper นี้จะช่วยรักษาความสูงของคอลัมน์ที่ลอยตัว

<div class="wrapper">
    <div class="left"> ... </div>
    <div class="rightfloat"> ... </div>
</div>

ขั้นตอนที่ 3: ใช้คุณสมบัติ Float

ถัดไป คุณจะลอยคอลัมน์ซ้ายและขวา จำไว้ว่าต้องล้างลอยใน wrapper ด้วยเพื่อให้มันยืดไปถึงความสูงของคอลัมน์

.wrapper {
    overflow: auto; /* ล้างลอยเพื่อให้มั่นใจว่าความสูงเต็ม */
}

.left {
    float: left;
    width: 70%; /* ปรับความกว้างตามการจัดเลย์เอาต์ของคุณ */
}

.rightfloat {
    float: right;
    width: 200px; 
    background-color: #BBBBBB; /* สีพื้นหลังที่ชัดเจน */
}

ขั้นตอนที่ 4: จัดการการจัดเลย์เอาต์

เพื่อจัดการกับขอบอย่างมีประสิทธิภาพ (โดยเฉพาะปัญหา"ขอบลอยคู่" ที่ลือชื่อใน IE) ให้แน่ใจว่า:

  • คุณตั้งค่า margin: 0; ให้กับองค์ประกอบที่ลอย
  • ตรวจสอบองค์ประกอบ wrapper ของคุณสำหรับมาร์จิ้นเพิ่มเติมที่อาจส่งผลต่อความสูง

การปรับแต่งครั้งสุดท้าย

เป็นความคิดที่ดีเสมอที่จะตรวจสอบว่าเลย์เอาต์ของคุณปรับตัวอย่างไรในเบราว์เซอร์ที่แตกต่างกัน ใช้เครื่องมือพัฒนาเบราว์เซอร์เพื่อปรับและแก้ไขปัญหาสไตล์ที่เกิดขึ้น

สรุป

โดยการทำตามขั้นตอนเหล่านี้ คุณควรมีวิธีการที่แข็งแกร่งในการรักษาความสูงที่เท่ากันสำหรับส่วน div ในการจัดเลย์เอาต์แบบคอลัมน์ ซึ่งจะช่วยให้สีพื้นหลังเติมพื้นที่ที่จำเป็นและให้การออกแบบภาพที่สอดคล้องมากขึ้น

หากคุณมีคำถามเพิ่มเติมหรือประสบการณ์ที่คุณต้องการแบ่งปันเกี่ยวกับความท้าทายในการจัดเลย์เอาต์ CSS โปรดอย่าลังเลที่จะทิ้งความคิดเห็นไว้ด้านล่าง!