โฮมเพจ » การเข้ารหัส » ดูขนาดของกล่อง CSS3

    ดูขนาดของกล่อง CSS3

    บทความนี้เป็นส่วนหนึ่งของเรา "ชุดบทแนะนำ HTML5 / CSS3" - ทุ่มเทเพื่อช่วยให้คุณเป็นนักออกแบบและ / หรือนักพัฒนาที่ดีขึ้น. คลิกที่นี่ เพื่อดูบทความเพิ่มเติมจากซีรี่ส์เดียวกัน.

    เมื่อไม่นานมานี้เมื่อเราสร้าง กล่อง ในหน้าเว็บสมมติว่ามี div, เราระบุ 100px สำหรับทั้งความกว้างและความสูงตามด้วย การขยายความ สำหรับ 10px และพรมแดนประมาณ 10px เช่นกัน.

     div width: 100px; ความสูง: 100px; การขยาย: 10px; เส้นขอบ: 10px solid #eaeaea;  

    เบราว์เซอร์จะขยายขนาดของกล่องเป็น 140px โดยที่จำนวนนี้ 140px ของความกว้าง / ความสูงทั้งหมดประกอบขึ้นจากการเพิ่ม การขยายความ และ พรมแดน ดังนี้ 100px [width / height] + (2 x 10px [padding]) + (2 x 10px [border]).

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

    เพื่อเอาชนะปัญหาที่เกิดขึ้นซ้ำ ๆ เมื่อสร้างเค้าโครงหน้าเว็บเราสามารถใช้ CSS3 กล่องขนาด คุณสมบัติในการควบคุมวิธีการ รูปแบบกล่อง CSS ควรทำงานในเบราว์เซอร์.

    การใช้ขนาดกล่อง

    กล่องขนาด สถานที่ให้บริการมีสองตัวเลือกค่าแรก เนื้อหากล่อง; ซึ่งเป็นค่าเริ่มต้นเมื่อใช้ค่านี้แบบจำลองกล่องจะทำงานตามที่เราได้อธิบายไว้ข้างต้น.

    และอันที่สองก็คือ ชายแดนกล่อง, โดยที่จะคำนวณขนาดของกล่อง โดยย่อขนาดของเนื้อหาที่ระบุ ด้วยการเสริมเต็มและเพิ่มขอบ.

     div width: 100px; ความสูง: 100px; การขยาย: 10px; เส้นขอบ: 10px solid #eaeaea; ขนาดกล่อง: ชายแดนกล่อง; -moz-box-sizing: border-box; / * Firefox 1-3 * / -webkit-box sizing: border-box / * Safari * / 

    ตัวอย่างเช่นเมื่อเรามีกล่องเหมือนที่เราได้อธิบายไว้ข้างต้น (100px สี่เหลี่ยมจัตุรัสที่มี 10 พิกเซลสำหรับการขยายและขอบ) ขนาดของเนื้อหาจะลดลง 60px, และขนาดทั้งหมดของกล่องยังคงอยู่ 100px, โดยที่สมการของการลบสามารถอธิบายได้ดังนี้ 100px [width / height] - ((2 x 10px [padding]) + (2 x 10px [เส้นขอบ])).

    • การสาธิต
    • แหล่งดาวน์โหลด

    รองรับเบราว์เซอร์

    กล่องขนาด คุณสมบัติคือ รองรับทุกเบราว์เซอร์; Firefox 3.6+, Safari 3, Opera 8.5+ และ Internet Explorer 8 ขึ้นไป.

    ดังนั้นหากคุณรู้ว่าผู้เยี่ยมชมส่วนใหญ่ของคุณจะไม่ใช้ Internet Explorer เวอร์ชันต่ำกว่า 8 คุณสามารถใช้คำแนะนำที่มีประโยชน์นี้ (ขอบคุณ Paul Irish).

     * ขนาดกล่อง: เส้นขอบกล่อง; -moz-box-sizing: border-box; / * Firefox 1-3 * / -webkit-box sizing: border-box / * Safari * / 

    ตัวอย่างด้านบนจะใช้กับ กล่องขนาด คุณสมบัติให้กับองค์ประกอบทั้งหมดในหน้าเว็บของคุณ.

    ตัวอย่าง

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

      

    จากนั้นเราจะเพิ่มสไตล์การตกแต่งบางอย่าง; เช่นตั้งค่าการนำทาง แก้ไขความกว้างสำหรับ 500px และ ความกว้างของลิงค์ละ 100px, จากนั้นอินไลน์ไอเท็มรายการและให้พื้นหลังที่แตกต่างกันสำหรับแต่ละลิงค์เมนูเพื่อให้คุณเห็นความแตกต่างระหว่างพวกเขา.

     nav width: 500px; กำไร: 50px อัตโนมัติ 0; ความสูง: 50px;  nav ul padding: 0; กำไรขั้นต้น: 0;  nav li ลอย: ซ้าย;  นำทาง display: inline-block; ความกว้าง: 100px; ความสูง: 100%; สีพื้นหลัง: #ccc; สี: # 555; การตกแต่งข้อความ: ไม่มี; ตระกูลฟอนต์: Arial, sans-serif; ขนาดตัวอักษร: 12pt; ความสูงของเส้น: 300%; จัดข้อความ: ศูนย์;  นำทาง display: inline-block; ความกว้าง: 100px; ความสูง: 100%; สี: # 555; การตกแต่งข้อความ: ไม่มี; ตระกูลฟอนต์: Arial, sans-serif;  nav li: nth-child (1) a background-color: # E9E9E9; ขอบซ้าย: 0;  nav li: nth-child (2) a background-color: # E4E4E4;  nav li: nth-child (3) a background-color: #DFDFDF;  nav li: nth-child (4) a background-color: # D9D9D9;  nav li: nth-child (5) a background-color: # D4D4D4; ขอบขวา: 0;  

    ณ จุดนี้การนำทางของเราดูเหมือนปกติ.

    อย่างไรก็ตามปัญหาจะเกิดขึ้นเมื่อเราเพิ่มเส้นขอบซ้ายหรือขวาลงในเมนูลิงค์.

     นำทาง border-left: 1px solid #aaa; ขอบขวา: 1px solid # f3f3f3;  

    เมนูจะล้นไปทางด้านล่างเนื่องจากความกว้างของลิงค์จะไม่อยู่อีกต่อไป 100px. มันคือตอนนี้ 102px, ทำให้ความกว้างทั้งหมดของการนำทางเป็น 10px อีกต่อไปแล้วเราได้ระบุไว้ข้างต้น (500px).

    เพื่อเอาชนะปัญหานี้เราจำเป็นต้องใช้ กล่องขนาด ทรัพย์สินดังต่อไปนี้:

     นำทาง border-left: 1px solid #aaa; ขอบขวา: 1px solid # f3f3f3; ขนาดกล่อง: ชายแดนกล่อง; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;  
    • การสาธิต
    • แหล่งดาวน์โหลด

    อ่านเพิ่มเติม

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

    • ทำความเข้าใจกับ CSS Box Model - Tech Republic
    • บั๊กขนาดกล่องใน Firefox - BugZilla
    • FTW ขนาดกล่อง - พอลไอริช