การจัดวาง CSS ฉลาดขึ้นด้วย calc()

อเล็กซ์ ดานิโล

การสร้างเค้าโครง CSS ที่ดีเริ่มต้นด้วยการกำหนดขนาดของสิ่งต่างๆ ทั้งหมดที่วางอยู่ในเว็บแอปพลิเคชัน คุณสมบัติหนึ่งที่เป็นที่ต้องการอย่างมากคือความสามารถในการระบุขนาดโดยใช้หน่วยการวัดขนาดปนกัน ตัวอย่างเช่น ถ้าสามารถจองพื้นที่ 50% บวกกับพื้นที่ที่แน่นอน ก็เช่น 10 พิกเซล ตอนนี้คุณทำได้แล้วโดยใช้พร็อพเพอร์ตี้ calc() คุณสามารถใช้คุณลักษณะนี้ได้ทุกที่ที่มีการใช้ความยาวหรือตัวเลข เพื่อให้คุณสามารถใช้เพื่อวางตำแหน่งสิ่งต่างๆ หรือใช้ในค่าสี rgb() เพื่อการใช้งานที่ดีมากในสไตล์ชีต

คุณใช้ calc() ทำสิ่งใดได้บ้าง

คุณสามารถใช้พร็อพเพอร์ตี้ calc() ที่ใดก็ได้ที่มีความยาวหรือตัวเลข CSS ในสไตล์ชีต

โดยจะให้ฟีเจอร์หลัก 2 ประการเพื่อทำให้เลย์เอาต์มีความยืดหยุ่นมากขึ้น

  • การผสมเปอร์เซ็นต์และค่าสัมบูรณ์
  • กำลังผสมหน่วยการวัดขนาด

การผสมเปอร์เซ็นต์กับหน่วยสัมบูรณ์

มาดูตัวอย่างการผสมเปอร์เซ็นต์กับหน่วยสัมบูรณ์กัน สมมติว่าเราต้องการจัดสรรพื้นที่ที่ใช้ได้ 50% ให้มีจำนวนพิกเซลคงที่น้อยลง จากนั้นเราสามารถเขียนดังนี้

#foo {
    width: calc(50% - 100px);
}
<div id="foo">Always 100 pixels less than half the available area</div>

ถ้ามีสีพื้นหลังสีเขียว จะมีลักษณะดังนี้

และหากคุณย่อขนาดระดับบนสุด จะมีลักษณะดังนี้

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

หน่วยผสม

สิ่งที่ดีมากอีกอย่างหนึ่งคือความสามารถในการรวมหน่วยวัดต่างๆ เข้าด้วยกันเพื่อให้ได้ขนาดผลลัพธ์ ตัวอย่างเช่น คุณสามารถกำหนดขนาดที่สัมพันธ์กับขนาดแบบอักษรปัจจุบันโดยการผสมหน่วย "em" และ "px"

#bar {
    height: calc(10em + 3px);
}

ดูตัวอย่างการรวมค่าได้ที่นี่และที่นี่

ลองเลย

calc() จะช่วยให้คุณใช้ +, -, * และ / เพื่อบวก ลบ คูณ และหารค่าได้ เพื่อความเป็นไปได้ทุกแบบ คุณใช้ calc() ได้ทุกที่ที่มีความยาว CSS หรือหมายเลขได้ เรากำลังเพิ่ม calc() สำหรับพร็อพเพอร์ตี้มุมและความถี่ในเร็วๆ นี้ พร็อพเพอร์ตี้ calc() สำหรับความยาวพร้อมให้ใช้งานแล้วใน Chrome 19 (เวอร์ชันที่กำลังพัฒนา) โดยใช้พร็อพเพอร์ตี้ -webkit-calc ใน Firefox ตั้งแต่เวอร์ชัน 8 โดยใช้พร็อพเพอร์ตี้ -moz-calc และใน Internet Explorer ตั้งแต่เวอร์ชัน 9 ที่ไม่มีคำนำหน้า บอกให้เราทราบว่าคุณคิดอย่างไรโดยแสดงความคิดเห็นด้านล่าง