: vw, vh และ vmin เมื่อเร็ว ๆ นี้ Chrome เวอร์ชัน dev (หมายเลข 20) ก็รองรับเช่นกัน และทำให้มีความหวังว่านักพัฒนาเบราว์เซอร์อื่นจะปฏิบัติตามตัวอย่างนี้ อันที่จริงสิ่งนี้จะมีประโยชน์เพราะสะดวกและใช้งานได้จริงและฉันจะพยายามบอกคุณว่าทำไมถึงเป็นเช่นนั้น
ทำไมมันเจ๋งแบบนี้ล่ะ?
เหตุผลหลายประการ นี่คือสองคน:
- มีสิ่งเช่นความยาวของบรรทัดข้อความที่อ่านได้สบาย ฉันไม่ต้องการเริ่มสงครามโฮลีวาร์ แต่สมมติว่ามีอักขระ 80 ตัว ดังนั้นหน่วยการวัดเหล่านี้จึงช่วยให้คุณรักษาค่านี้ไว้บนหน้าจอทุกขนาดได้
- นอกจากนี้ยังสามารถปรับความสัมพันธ์ระหว่างชื่อเรื่องและข้อความเนื้อหาได้ เช่นเดียวกับในโพสต์ของ Trent Walton
มันทำงานอย่างไร?
หน่วยของแต่ละค่าทั้งสามนี้คือ 1% ของขนาดหน้าจอ ตัวอย่างเช่น หากขนาดหน้าจอกว้าง 40 เซนติเมตร 1vw จะเท่ากับ 0.4 ซม.
1vw= ความกว้างหน้าต่าง 1%
1vh= ความสูงของหน้าต่าง 1%
1vนาที= 1vw หรือ 1vh แล้วแต่จำนวนใดจะน้อยกว่า
การใช้งาน
โอ้ มันง่ายมาก:
H1 (ขนาดตัวอักษร: 5.9vw; ) h2 (ขนาดตัวอักษร: 3.0vh; ) p (ขนาดตัวอักษร: 2vmin; )
รองรับเบราว์เซอร์
โครเมียม 20+และ ไออี 10+
ฉันตรวจสอบใน Opera Next (12), Safari 5.2 และ Firefox Beta (13) แล้ว - ไม่มีประโยชน์
การสาธิต
วิดีโอสั้น ๆ ที่แสดงการใช้ vw:
คุณสามารถลองด้วยตัวเอง (ตรวจสอบให้แน่ใจว่าเบราว์เซอร์ของคุณรองรับหน่วยการวัดเหล่านี้)
แมลง
มีการรองรับใน Chrome 20 แต่ก็มีความไม่สมดุลเล็กน้อย เมื่อหน้าต่างเบราว์เซอร์ถูกปรับขนาด แบบอักษรจะไม่ปรับให้พอดีกับขนาดหน้าต่างใหม่ ข้อกำหนดบอกว่า:
หากความสูงหรือความกว้างของหน้าต่างเปลี่ยนแปลง หน้าต่างจะถูกปรับขนาดตามนั้น
ฉันส่งคำขอไปยังเครื่องมือติดตามบั๊ก บางทีนี่อาจไม่ใช่ปัญหาใหญ่ แบบอักษรยังคงเปลี่ยนแปลงเมื่อโหลดหน้าที่ "สะอาด" สิ่งเล็กๆ น้อยๆ เหล่านี้เป็นเพียงสิ่งที่น่าสนใจสำหรับเราเท่านั้น ผู้รักการออกแบบที่ปฏิบัติต่อสิ่งเหล่านั้นอย่างระมัดระวัง แต่ยังคง
ในการแก้ไขปัญหานี้ (อนุญาตให้ปรับขนาดโดยไม่ต้องโหลดหน้าซ้ำ) คุณต้องบังคับให้องค์ประกอบวาดใหม่ ฉันใช้ jQueryและเพิ่งทดลองกับค่าดัชนี z ของแต่ละองค์ประกอบที่ทำให้เกิดการวาดใหม่
CauseRepaintsOn = $("h1, h2, h3, p"); $(window).resize(function() ( CauseRepaintsOn.css("z-index", 1); ));
ไม่ใช่แค่ขนาดตัวอักษรเท่านั้น
อย่างไรก็ตาม นี่เป็นเพียงบางส่วนเท่านั้น เช่น em , px อะไรก็ตาม คุณสามารถใช้ได้ทุกที่ ไม่จำกัดเพียงขนาดตัวอักษร
ใช้มัน!
การใช้งานพื้นเมือง
อย่าลืมโทรกลับสำหรับเบราว์เซอร์ที่ยังไม่รองรับหน่วยเหล่านี้:
H1 (ขนาดตัวอักษร: 36px; ขนาดตัวอักษร: 5.4vw; )
รองรับการตรวจสอบ
Modernizr ยังไม่มีการทดสอบสำหรับการตรวจสอบนี้ แต่คุณสามารถตรวจสอบได้ด้วยตัวเองโดยใช้สคริปต์ JS ขนาดเล็ก
วาร์ testEl = $("#vw-test"); var วิวพอร์ต = $(หน้าต่าง); testEl.css(( ความกว้าง: "100vw" )); if (testEl.width() == viewport.width()) ( $("html").addClass("vw-support"); ) else ( $("html").append("vw-unsupported") ;
เลียนแบบฟังก์ชันการทำงานด้วย FitText.js
แนวคิดนี้คือเชื่อมโยงความกว้างโดยรวมของส่วนหัวกับความกว้าง องค์ประกอบหลักซึ่งเป็นสิ่งที่ FitText.js ทำ จริงอยู่ เขาทำสิ่งนี้ผ่าน Javascript, คณิตศาสตร์, สแปนแท็ก และอื่นๆ อีกมากมาย ตามทฤษฎีแล้ว คุณสามารถดำเนินการตรวจสอบและใช้ Modernizr.load เพื่อโหลด FitText.js ได้ หากไม่พบการสนับสนุน
ฉันพูดถึงหน่วยวัดใหม่ (ค่อนข้าง) หน่วยเหล่านี้คือ vw, vh, vmin และ vmax และขึ้นอยู่กับขนาดวิวพอร์ตของเบราว์เซอร์ ขนาดจริงจะเปลี่ยนไปเมื่อวิวพอร์ตของเบราว์เซอร์เปลี่ยนแปลง ทำให้หน่วยเหล่านี้เหมาะสำหรับ การออกแบบที่ปรับเปลี่ยนได้- แม้ว่าในโพสต์ก่อนหน้าของฉัน ฉันแย้งกับการใช้หน่วยเหล่านี้เพื่อระบุขนาดตัวอักษร แต่ก็มีประโยชน์มากสำหรับการทำงานกับองค์ประกอบเค้าโครง
หน่วยวิวพอร์ต
หน่วยวิวพอร์ตเป็นหน่วยสัมพัทธ์ ซึ่งหมายความว่าไม่สามารถวัดได้อย่างเป็นกลาง ขนาดของมันถูกกำหนดโดยขนาดของวิวพอร์ตของเบราว์เซอร์ มีสี่หน่วยที่เกี่ยวข้องกับวิวพอร์ต
ฉันจะเน้นไปที่สองอันแรกเนื่องจากเป็นอันที่ใช้บ่อยที่สุด ในหลายกรณี หน่วยวิวพอร์ต (vh และ vw) ซ้อนทับกับเปอร์เซ็นต์ในแง่ของความสามารถ อย่างไรก็ตามแต่ละคนมีจุดแข็งและจุดอ่อนของตัวเอง
โดยสรุปดูเหมือนว่านี้:
เมื่อต้องรับมือกับความกว้าง % จะดีกว่า และเมื่อต้องรับมือกับความสูง vh จะดีกว่า
องค์ประกอบความกว้างหน้าเต็ม: % > vw
ดังที่ได้กล่าวไปแล้ว vw กำหนดขนาดขององค์ประกอบตามความกว้างของวิวพอร์ต อย่างไรก็ตาม เบราว์เซอร์จะคำนวณขนาดตามพื้นที่สำหรับแถบเลื่อน
หากความกว้างของหน้าเกินความกว้างของวิวพอร์ต แถบเลื่อนจะปรากฏขึ้น อย่างไรก็ตาม ในความเป็นจริงแล้ว ความกว้างของวิวพอร์ตจะมากกว่าความกว้างขององค์ประกอบ html
วิวพอร์ต > html > เนื้อหา
ดังนั้น หากคุณตั้งค่าความกว้างขององค์ประกอบเป็น 100vw องค์ประกอบจะขยายเกิน html และเนื้อหา วี ในตัวอย่างนี้ฉันสร้างเส้นขอบสีแดงรอบๆ องค์ประกอบ html และเติมสีต่างๆ ให้กับส่วนต่างๆ
เนื่องจากความแตกต่างเล็กน้อยนี้ การสร้างองค์ประกอบทั่วทั้งความกว้างของหน้าโดยใช้เปอร์เซ็นต์ แทนที่จะอาศัยความกว้างของวิวพอร์ต
องค์ประกอบความสูงของหน้าเต็ม: vh > %
เมื่อสร้างองค์ประกอบที่ต้องมีความสูงเท่ากับหน้า จะเป็นการดีกว่ามากถ้าใช้ vh แทนเปอร์เซ็นต์ เนื่องจากขนาดเปอร์เซ็นต์ขององค์ประกอบสัมพันธ์กับองค์ประกอบหลัก เราจึงสามารถรับความสูงขององค์ประกอบได้ ความสูงเท่ากันหน้าจอเฉพาะในกรณีที่องค์ประกอบหลักใช้ความสูงทั้งหมดของหน้าจอด้วย ซึ่งหมายความว่าเราต้องวางตำแหน่งองค์ประกอบให้คงที่เพื่อที่จะทำ องค์ประกอบ HTMLผู้ปกครองหรือหันไปใช้แฮ็คบางประเภท
การใช้ vh เพื่อให้ได้เอฟเฟกต์นี้ค่อนข้างง่าย:
ตัวอย่าง ( ความสูง: 100vh; )
ไม่ว่าองค์ประกอบ .example จะซ้อนกันอย่างไร ก็สามารถตั้งค่ามิติให้สัมพันธ์กับขนาดของวิวพอร์ตได้ ปัญหาการเลื่อนจะไม่รบกวนเราเนื่องจากไซต์ส่วนใหญ่ไม่มีแถบเลื่อนแนวนอน
ต่อไปนี้เป็นตัวอย่างวิธีการใช้หน่วย vh
ภาพพื้นหลังแบบเต็มหน้าจอ
การใช้งานทั่วไปของหน่วย vh คือการสร้าง ภาพพื้นหลังซึ่งครอบคลุมความสูงและความกว้างทั้งหมดของหน้าจอ ไม่ว่าอุปกรณ์จะมีขนาดเท่าใดก็ตาม มันค่อนข้างง่ายที่จะทำ
Bg ( ตำแหน่ง: ญาติ; พื้นหลัง: url("bg.jpg") ตรงกลาง/ปก; ความกว้าง: 100%; ความสูง: 100vh; )
ในทำนองเดียวกัน เราสามารถสร้างเอฟเฟ็กต์ "หน้า" ได้โดยให้แต่ละส่วนมีมิติของวิวพอร์ต
ส่วน (กว้าง: 100%; สูง: 100vh; )
เราสามารถใช้ JavaScript เพื่อสร้างภาพลวงตาของการเปลี่ยนหน้าได้
$("nav").on("click", function() ( if ($(this).hasClass("down")) ( var movePos = $(window).scrollTop() + $(window).height (); ) if ($(this).hasClass("up")) ( var movePos = $(window).scrollTop() - $(window).height(); ) $("html, body"). เคลื่อนไหว (( scrollTop: movePos ), 1,000 ))
ภาพพับ
Vh ยังสามารถใช้เพื่อควบคุมขนาดของรูปภาพภายในเพจได้ เช่น ภายในกรอบของบทความ เราต้องการให้แน่ใจว่าภาพใดๆ ก็ตามจะแสดงอย่างครบถ้วนโดยไม่คำนึงถึงขนาดหน้าจอ
เราจะต้องมีรหัสต่อไปนี้
Img ( width: auto; /* ความกว้างอัตโนมัติเป็นสัดส่วนกับความสูง */ ความกว้างสูงสุด: 100%; /* ไม่ใช่ ความกว้างมากขึ้นองค์ประกอบหลัก */ ความสูงสูงสุด: 90vh; /* ไม่เกินความสูงของวิวพอร์ต */ ระยะขอบ: 2rem อัตโนมัติ; -
รองรับเบราว์เซอร์
เนื่องจากหน่วยเหล่านี้ค่อนข้างใหม่ จึงยังคงมีปัญหากับเบราว์เซอร์บางตัว
ต่อไปนี้เป็นวิธีการแก้ปัญหา
หน่วย มิติข้อมูล CSSเล่น บทบาทที่สำคัญในการสร้างและปรับขนาดเว็บไซต์ องค์ประกอบต่างๆ. ค่าซีเอสเอสสามารถแสดงเป็นจำนวนบวกหรือลบได้ แม้ว่าคุณสมบัติบางอย่างจะใช้เพียงเท่านั้น ตัวเลขบวก. ค่าตัวเลขพร้อมด้วยตัวย่อสองตัวที่แสดงถึงหน่วยความยาวจริง ตัวอย่างเช่น ซม. (เซนติเมตร), px (พิกเซล) หรือ em CSS ข้อยกเว้นสำหรับกฎนี้คือค่า 0 (ศูนย์) ซึ่งไม่จำเป็นต้องใช้หน่วยวัด
หน่วย CSS มีสองประเภท: แบบสัมบูรณ์และแบบสัมพัทธ์
หน่วยความยาวสัมบูรณ์ใน CSS
หน่วย CSS สัมบูรณ์ไม่เหมาะสำหรับการออกแบบเว็บไซต์ เป็นตัวแทนการนำเสนอผลการวัดในโลกทางกายภาพในรูปแบบดิจิทัล และไม่ขึ้นกับขนาดและความละเอียดของหน้าจอ ความยาวสัมบูรณ์ที่มีค่าเท่ากันอาจแตกต่างกัน หน้าจอที่แตกต่างกัน- สาเหตุนี้เกิดจากความแตกต่างของ DPI ของหน้าจอ (จุดต่อนิ้ว)
หน้าจอความละเอียดสูงมีมากขึ้น อัตราสูง DPI เมื่อเทียบกับหน้าจอที่มีความละเอียดต่ำกว่า ทำให้รูปภาพและข้อความดูเล็กลง หน่วยสัมบูรณ์ใช้ในการกำหนดรูปแบบในการพิมพ์ โดยการวัดจะมีหน่วยเป็นนิ้ว จุด และพิกา
หน่วยวัดความยาวสัมบูรณ์:
- ซม. (เซนติเมตร);
- มม. (มิลลิเมตร);
- ใน (นิ้ว);
- พีซี(พีค);
- จุด (คะแนน);
- พิกเซล (พิกเซล)
หน่วยความยาวสัมบูรณ์ส่วนใหญ่ไม่มีประโยชน์บนอินเทอร์เน็ต ข้อยกเว้นเพียงอย่างเดียวคือ px พิกเซลเป็นหน่วยสัมพันธ์กับความละเอียดของหน้าจอ สำหรับเครื่องพิมพ์และจอภาพเป็นอย่างมาก ความละเอียดสูงหนึ่งพิกเซลใน CSS เท่ากับหลายพิกเซลบนหน้าจอ ดังนั้นจำนวนพิกเซลต่อนิ้วจึงอยู่ที่ประมาณ 96 พิกเซลเป็นหน่วยวัดที่เล็กที่สุด และมักใช้เป็นข้อมูลอ้างอิงสำหรับหน่วยอื่นๆ
หน่วยความยาวสัมพัทธ์ใน CSS
หน่วยสัมพัทธ์ขนาดความยาวใน CSS ไม่มีค่าคงที่ ความหมายของพวกเขาขึ้นอยู่กับผู้อื่น ตั้งค่าหรือฟังก์ชันต่างๆ พวกมันได้รับความนิยมมากกว่าในการออกแบบเว็บเพราะทำให้ง่ายต่อการกำหนดขนาดขององค์ประกอบ ด้วยความช่วยเหลือเหล่านี้ คุณสามารถตั้งค่าความกว้าง ความสูง ขนาดตัวอักษร ฯลฯ โดยสัมพันธ์กับพารามิเตอร์พื้นฐานอื่นๆ
หน่วยสัมพัทธ์ขึ้นอยู่กับแบบอักษร
หน่วยสัมพัทธ์ที่ขึ้นกับแบบอักษรมีการอ้างอิงล่วงหน้า ขนาดที่กำหนดค่าคุณสมบัติแบบอักษรหรือตระกูลแบบอักษร:
- เช่น (ความสูงของตัวอักษร x);
- ช( ความกว้างอักขระเป็นศูนย์ (0));
- หน่วย em ใน CSS (ความสูงของแบบอักษรองค์ประกอบปัจจุบัน);
- อีกครั้ง ( ขนาดตัวอักษรขององค์ประกอบราก).
อดีต
กำหนดให้เป็น “ ความสูงของอักขระ x ของแบบอักษรปัจจุบันหรือครึ่งหนึ่ง 1 em- นั่นก็คือความสูง ตัวอักษรตัวพิมพ์เล็ก x แบบอักษรที่ติดตั้ง- เมื่อคุณเปลี่ยนค่าของคุณสมบัติตระกูลฟอนต์ หน่วยอดีตจะเปลี่ยนไป
ช
เท่ากับความกว้างของอักขระ 0 หน่วยวัดนี้ยังเปลี่ยนแปลงเมื่อค่าของคุณสมบัติตระกูลฟอนต์เปลี่ยนแปลง
em
หน่วย CSS em มีค่าเท่ากับขนาดตัวอักษรของเนื้อหาหรือองค์ประกอบหลัก ตัวอย่างเช่น หากขนาดแบบอักษรขององค์ประกอบหลักคือ 30px ค่า 1em จะถูกคำนวณเป็น 30px (30 x 1) สำหรับองค์ประกอบย่อยทั้งหมด ตัวเลขไม่จำเป็นต้องเป็นจำนวนเต็ม หากในตัวอย่างเราแทนที่ 1em ด้วย 0.5 ค่าจะเป็น 15px (30 x 0.5)
หน่วย em รับค่าของแท็กพาเรนต์ ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่พึงประสงค์เมื่อใช้องค์ประกอบที่ซ้อนกัน
สมมติว่าเรามีสามองค์ประกอบที่ซ้อนกัน องค์ประกอบแรก (รูท) มีขนาดตัวอักษร 30px และองค์ประกอบที่ซ้อนกันทั้งสองมีขนาดตัวอักษร 2em องค์ประกอบที่ซ้อนอยู่ใต้รูทจะมีขนาดตัวอักษรที่คำนวณเป็น 60px (30 x 2) และองค์ประกอบที่ซ้อนอยู่ภายในจะมีขนาดตัวอักษรคำนวณเป็น 120px (60 x 2)
อีกครั้ง
rem คล้ายกับ CSS em แต่ค่าของมันจะยังคงเท่ากับขนาดตัวอักษรขององค์ประกอบรูทเสมอ หน่วย rem มีประโยชน์ในการพัฒนาเว็บไซต์แบบตอบสนองเนื่องจากช่วยให้คุณสามารถปรับขนาดทั้งหน้าโดยการเปลี่ยนขนาดแบบอักษรในองค์ประกอบ HTML
หน่วยความยาวเปอร์เซ็นต์ตามขนาดวิวพอร์ต
พื้นที่การดูจะขึ้นอยู่กับความกว้างและความสูงของวิวพอร์ต และประกอบด้วย:
- วีเอช( ความสูงของวิวพอร์ต);
- โฟล์คสวาเก้น( ความกว้างวิวพอร์ต);
- วีมิน( เล็กที่สุดของ (vw, vh));
- วีแม็กซ์ ( ยิ่งใหญ่ที่สุดของ (vw, vh)).
โฟล์คสวาเก้น
นี่คือความกว้างของวิวพอร์ต 1vw เท่ากับ 1/100 ของความกว้างวิวพอร์ต คล้ายกับเปอร์เซ็นต์เล็กน้อย ยกเว้นว่าค่าจะยังคงเหมือนเดิมสำหรับองค์ประกอบทั้งหมด โดยไม่คำนึงถึงความกว้างขององค์ประกอบหลัก ตัวอย่างเช่น หากความกว้างของหน้าต่างคือ 1,000px ดังนั้น 1vw จะเท่ากับ 10px
vh
เช่นเดียวกับ vw ( ความกว้างวิวพอร์ต), เท่านั้น หน่วยนี้การวัดขึ้นอยู่กับความสูงของพื้นที่รับชม 1vh เท่ากับ 1/100 ของความสูงในการรับชม ตัวอย่างเช่น หากความสูงของหน้าต่างเบราว์เซอร์คือ 900px ดังนั้น 1vh จะเป็น 9px
วีมิน
Vmin เท่ากับ 1/100 ของ ค่าต่ำสุดระหว่างความสูงและความกว้างของวิวพอร์ต กล่าวอีกนัยหนึ่งคือ 1/100 ของด้านที่มีความยาวสั้นที่สุด เช่นถ้าขนาดหน้าต่าง 1200 x 800 พิกเซลจากนั้นค่า vmin จะเป็น 8px
วีแม็กซ์
vmax เท่ากับ 1/100 ของ ค่าสูงสุดระหว่างความสูงและความกว้างของวิวพอร์ต กล่าวอีกนัยหนึ่ง 1/100 ของด้าน ความยาวที่ยาวที่สุด- เช่น ถ้าขนาดเป็น 1200 x 800 พิกเซลจากนั้น vmax คือ 12px
ความสนใจ %
ระยะทางที่ระบุเป็นเปอร์เซ็นต์ขึ้นอยู่กับความยาวขององค์ประกอบหลัก ตัวอย่างเช่น หากองค์ประกอบหลักมีความกว้าง 1,000px และองค์ประกอบย่อยคือ 50% ของค่านั้น ความกว้าง องค์ประกอบลูกจะเป็น 500px .
การสนับสนุนเบราว์เซอร์
ไม่ว่าจะเป็น CSS, ex, px, cm, mm, in, pt และ pc
รองรับทุกเบราว์เซอร์ รวมถึง IE เวอร์ชันเก่าด้วย
CSS3 มีหน่วยการวัดใหม่ (ฉันคิดว่าฉันได้พูดคุยเกี่ยวกับเรื่องนี้แล้ว อังกฤษ) คุณเคยได้ยินเกี่ยวกับ px, pt, em และ rem ใหม่แล้ว มาดูอีกสองสามอย่าง: vw และ vh
มักจะมีองค์ประกอบในเค้าโครงที่รับประกันว่าจะพอดีกับวิวพอร์ตของเบราว์เซอร์ โดยทั่วไปแล้ว JavaScript ใช้สำหรับสิ่งนี้ มาตรวจสอบขนาดของวิวพอร์ตและปรับขนาดองค์ประกอบตามนั้น หากผู้ใช้ปรับขนาดหน้าต่างเบราว์เซอร์ กระบวนการนี้จะทำซ้ำ
การใช้ vw/vh ทำให้เราสามารถกำหนดขนาดขององค์ประกอบให้สัมพันธ์กับขนาดของวิวพอร์ตได้ หน่วย vw/vh มีความน่าสนใจเนื่องจาก 1vw เป็นหน่วยเท่ากับ 1/100 ของความกว้างวิวพอร์ต หากต้องการกำหนดความกว้างให้กับองค์ประกอบให้เท่ากับความกว้างของวิวพอร์ต ตัวอย่างเช่น คุณต้องตั้งค่า width:100vw
สามารถนำมาใช้ได้อย่างไร
ไลท์บ็อกซ์เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการใช้งาน vw และ vh เนื่องจากโดยปกติแล้วจะอยู่ในตำแหน่งที่สัมพันธ์กับวิวพอร์ต แต่ฉันพบว่าตำแหน่ง:แก้ไขด้วยค่าบน ล่าง ซ้ายและขวานั้นใช้งานง่ายกว่าเนื่องจากคุณไม่จำเป็นต้องตั้งค่า ความสูงและความกว้างเลยคุณสามารถใช้หน่วยการวัดใหม่เพื่อกำหนดขนาดขององค์ประกอบที่อยู่ในการไหลปกติได้ เช่น ฉันสามารถโพสต์ภาพหน้าจอบนเพจได้ ความสูงของภาพหน้าจอเหล่านี้ไม่ควรเกินความสูงของวิวพอร์ต เมื่อต้องการทำเช่นนี้ ฉันสามารถตั้งค่าความสูงสูงสุดของรูปภาพได้:
Img ( ความสูงสูงสุด:95vh; )
ใน ในกรณีนี้ฉันตั้งค่าความสูงเป็น 95vh เพื่อให้มีพื้นที่ว่างเมื่อแสดงบนหน้าจอ
รองรับเบราว์เซอร์
หากเบราว์เซอร์หลักเกือบทั้งหมดรองรับ rem รวมถึง IE9 การใช้ vw และ vh ก็คุ้มค่าที่จะรอ บน ในขณะนี้รองรับพวกเขาเท่านั้น อินเทอร์เน็ตเอ็กซ์พลอเรอร์ 9.CSS ใช้หน่วยสัมบูรณ์และหน่วยสัมพัทธ์เพื่อกำหนดขนาดองค์ประกอบต่างๆ หน่วยสัมบูรณ์เป็นอิสระจากอุปกรณ์เอาท์พุต แต่หน่วยสัมพัทธ์จะกำหนดขนาดขององค์ประกอบที่สัมพันธ์กับค่าของขนาดอื่น
หน่วยสัมพัทธ์
หน่วยสัมพัทธ์มักใช้เพื่อทำงานกับข้อความ ในตาราง 1 แสดงรายการหน่วยสัมพันธ์หลัก
หน่วยเอ็มคือ ค่าที่เปลี่ยนแปลงได้ซึ่งขึ้นอยู่กับขนาดตัวอักษรขององค์ประกอบปัจจุบัน (ขนาดถูกกำหนดผ่านคุณสมบัติลักษณะขนาดตัวอักษร) แต่ละเบราว์เซอร์มีขนาดข้อความในตัวที่ใช้เมื่อไม่ได้ระบุขนาดนี้อย่างชัดเจน ดังนั้น ในตอนแรก 1em จะเท่ากับขนาดตัวอักษรเริ่มต้นของเบราว์เซอร์หรือขนาดตัวอักษรขององค์ประกอบหลัก สัญกรณ์เปอร์เซ็นต์เหมือนกับ em โดยที่ค่า 1em และ 100% เท่ากัน
หน่วย ex ถูกกำหนดให้เป็นความสูงของอักขระ "x" ใน ตัวพิมพ์เล็ก- ex อยู่ภายใต้กฎเดียวกันกับ em กล่าวคือ ผูกไว้กับขนาดตัวอักษรเริ่มต้นของเบราว์เซอร์หรือกับขนาดตัวอักษรขององค์ประกอบหลัก
หน่วย ch เท่ากับความกว้างของอักขระ "0" สำหรับองค์ประกอบปัจจุบัน และเช่นเดียวกับ em ขึ้นอยู่กับขนาดตัวอักษร
ความแตกต่างระหว่าง em และ rem มีดังนี้ em ขึ้นอยู่กับขนาดตัวอักษรขององค์ประกอบหลักและเปลี่ยนแปลงด้วย และ rem จะเชื่อมโยงกับองค์ประกอบรูท เช่น ขนาดตัวอักษรที่ระบุสำหรับองค์ประกอบ html
นอกจากนี้ยังมีกลุ่มของหน่วยสัมพันธ์ที่เชื่อมโยงกับขนาดของวิวพอร์ตของเบราว์เซอร์ ในตาราง 2 แสดงรายการพร้อมคำอธิบาย
หน่วยสัมบูรณ์
หน่วยสัมบูรณ์คือ มิติทางกายภาพ- นิ้ว เซนติเมตร มิลลิเมตร จุด พิกะ และพิกเซล สำหรับอุปกรณ์ที่มี dpi ต่ำ (จำนวนพิกเซลต่อนิ้วกำหนดความหนาแน่นของพิกเซล) การเชื่อมโยงจะต่อพิกเซล ในกรณีนี้ หนึ่งนิ้วเท่ากับ 96 พิกเซล แน่นอนว่านิ้วจริงจะไม่ตรงกับนิ้วบนอุปกรณ์ดังกล่าว บนอุปกรณ์ DPI สูง นิ้วจริงจะเท่ากับนิ้วบนหน้าจอ ดังนั้นขนาดพิกเซลจึงคำนวณเป็น 1/96 นิ้ว ในตาราง 3 แสดงรายการหน่วยสัมบูรณ์พื้นฐาน
ตัวอย่าง
ส่วนหัว 30px
ขนาดตัวอักษร 1.5 em
พาดหัว 24 จุด
เลื่อนข้อความไปทางขวา 30 มม
บันทึก
เมื่อตั้งค่าขนาด ต้องแน่ใจว่าได้ระบุหน่วยการวัด เช่น ความกว้าง: 30px มิฉะนั้นเบราว์เซอร์จะไม่สามารถแสดงผลที่ต้องการได้เนื่องจากไม่เข้าใจขนาดที่คุณต้องการ หน่วยจะไม่เพิ่มเมื่อเท่านั้น ค่าศูนย์(ระยะขอบ: 0)
Internet Explorer รองรับหน่วย vm แทน vmin
ข้อมูลจำเพาะ
ข้อมูลจำเพาะแต่ละอย่างต้องผ่านการอนุมัติหลายขั้นตอน
- คำแนะนำ - ข้อมูลจำเพาะได้รับการอนุมัติจาก W3C และแนะนำให้ใช้เป็นมาตรฐาน
- คำแนะนำผู้สมัคร ( คำแนะนำที่เป็นไปได้ ) - กลุ่มที่รับผิดชอบมาตรฐานมีความพึงพอใจว่าบรรลุเป้าหมาย แต่ต้องการความช่วยเหลือจากชุมชนการพัฒนาเพื่อนำมาตรฐานไปใช้
- ข้อเสนอแนะที่เสนอ ข้อแนะนำ) - ในขั้นตอนนี้ เอกสารจะถูกส่งไปยังสภาที่ปรึกษา W3C เพื่อขออนุมัติขั้นสุดท้าย
- Working Draft - ร่างฉบับสมบูรณ์ยิ่งขึ้นซึ่งได้รับการหารือและแก้ไขเพื่อการตรวจสอบของชุมชน
- ร่างบรรณาธิการ ( ร่างบรรณาธิการ) - เวอร์ชันร่างของมาตรฐานหลังจากมีการเปลี่ยนแปลงโดยบรรณาธิการโครงการ
- ร่าง ( ข้อกำหนดฉบับร่าง) - เวอร์ชันร่างแรกของมาตรฐาน