คุณสมบัติ cssFloat (JavaScript property name) เทียบเท่ากับ CSS float ใช้สำหรับกำหนดหรือดึงค่าการจัดตำแหน่งแนวนอนขององค์ประกอบ (Float Left/Right)
ไวยากรณ์ (Syntax)
object.style.cssFloat = "left|right|none|initial|inherit"
หมายเหตุ: ใน JavaScript ใช้ cssFloat (ไม่ใช่ float เพราะ float เป็น reserved word) แต่ใน CSS ใช้ float
ค่าที่รองรับ
| ค่า | คำอธิบาย |
|---|---|
| none | ไม่ลอย (ค่าเริ่มต้น) |
| left | ลอยไปทางซ้ายสุดของพาเรนต์ |
| right | ลอยไปทางขวาสุดของพาเรนต์ |
| initial | ตั้งค่ากลับเป็นค่าเริ่มต้น |
| inherit | สืบทอดจากพาเรนต์ |
ตัวอย่างการใช้งาน
<!DOCTYPE html>
<html>
<head>
<style>
#DIV1 {
height: 50px;
width: 50px;
margin: 5px;
float: left;
background-color: rebeccapurple;
}
div + p {
height: 70px;
color: red;
border: 2px solid #b8860b;
padding: 10px;
}
</style>
<script>
function changeFloat() {
document.getElementById("DIV1").style.cssFloat = "right";
document.getElementById("Sample").innerHTML = "องค์ประกอบ div จะลอยไปทางขวาแล้ว";
}
</script>
</head>
<body>
<div id="DIV1"></div>
<p>นี่คือย่อหน้าตัวอย่าง บรรทัดที่สอง บรรทัดที่สาม</p>
<p>คลิกปุ่มเพื่อเปลี่ยนคุณสมบัติ float ของ div ด้านบน</p>
<button onclick="changeFloat()">เปลี่ยน Float</button>
<p id="Sample"></p>
</body>
</html>
ผลลัพธ์
ก่อน: กระบวนสี่เหลี่ยมม่วงลอยซ้าย ข้อความรอบขวา
หลัง: กระบวนสี่เหลี่ยมม่วงลอยขวา ข้อความรอบซ้าย
การทำงานของ Float (Visual)
float: left float: right
┌─────────┐ ┌─────────┐
│ BOX │ Text wraps... │ BOX │
└─────────┘ around here └─────────┘
Text wraps around here
ปัญหาที่พบบ่อยและวิธีแก้
1. Container Collapse (พาเรนต์สูง 0)
พาเรนต์ที่มีลูก float ทั้งหมด จะสูง 0
/* Clearfix - วิธีคลาสสิก */
.clearfix::after {
content: "";
display: table;
clear: both;
}
/* Modern way - แนะนำ */
.container {
display: flow-root; /* สร้าง BFC ใหม่ */
/* หรือ */
overflow: auto; /* แตกต่างเรื่อง scrollbar */
}
2. Clear Property
ใช้ clear: left|right|both บนองค์ประกอบถัดไป เพื่อเลื่อนลงใต้ float
สมัยใหม่: ใช้ Flexbox/Grid แทน Float
| Float (เก่า) | Flexbox/Grid (ใหม่) |
|---|---|
| ซับซ้อน ต้อง clearfix | ง่าย ไม่ต้อง clearfix |
| จัดกึ่งกลางยาก | justify-content/align-items |
| Equal height columns ยาก | อัตโนมัติ (stretch) |
| Source order ผูกมัด | order property ควบคุมได้ |
การใช้งาน Float ที่ยังเหมาะสม
- Text wrapping รอบรูปภาพ (Magazine layout)
- Drop caps (ตัวอักษรแรกใหญ่ ลอยซ้าย)
- Layout เล็กๆ น้อยๆ ที่ไม่ซับซ้อน
การรองรับเบราว์เซอร์
รองรับทุกเบราว์เซอร์ (IE4+)