วิวพอร์ตคืออะไร ทำงานอย่างไร และใช้ทำอะไร? การใช้เมตาแท็กวิวพอร์ตเพื่อควบคุมเลย์เอาต์บนเบราว์เซอร์บนอุปกรณ์เคลื่อนที่


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

การใช้งานหลักของแท็กวิวพอร์ต

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

< meta name = "viewport" content = "ความกว้าง=ความกว้างของอุปกรณ์, ขนาดเริ่มต้น=1.0">

การใช้แท็กวิวพอร์ตสำหรับไซต์ที่ไม่ได้ออกแบบมาสำหรับอุปกรณ์เคลื่อนที่

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

ตัวอย่าง


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

< meta name = "viewport" content = "width=1024" >

อีกตัวอย่างหนึ่ง

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

คุณสามารถแก้ไขได้โดยตั้งค่าความกว้างของหน้าต่างเป็น 720px ความกว้างของการออกแบบของคุณไม่เปลี่ยนแปลง แต่ iPhone จะปรับขนาดให้พอดีที่ 720px

< meta name = "viewport" content = "width=720" >

ข้อผิดพลาดทั่วไป

ข้อผิดพลาดทั่วไปคือคนมักจะเติม เริ่มต้น - สเกล = 1สำหรับการออกแบบที่เกินขนาด ซึ่งจะทำให้เพจมีขนาด 100% โดยไม่ต้องปรับขนาด หากโปรเจ็กต์ของคุณไม่พอดีกับหน้าจอ ผู้ใช้จะต้องซูมออกเพื่อดูเต็มหน้า มันแย่ยิ่งกว่านั้นอีกเมื่อรวมกัน ผู้ใช้ - ปรับขนาดได้ = ไม่หรือ สูงสุด - สเกล = 1กับ เริ่มต้น - สเกล = 1- นี่จะเป็นการปิดใช้ตัวเลือกการซูม ผู้ใช้ไม่มีตัวเลือกในการลดขนาดหน้าเพื่อดู

มาสร้างเพจง่ายๆ ด้วยมาร์กอัปขั้นต่ำ:

สวัสดีชาวโลก!

สวัสดีชาวโลก!



ตอนนี้เรามาเปิดหน้านี้บนอุปกรณ์มือถือกันดีกว่า เมื่อเปิดขึ้นมาเราจะพบว่าหน้าของเราจะแสดงดังนี้:

อย่างที่คุณเห็น ข้อความมีขนาดเล็กเกินไปที่จะอ่าน มีพื้นที่ว่างมากมาย และเพื่อที่จะอ่านข้อความนี้ เราต้องขยายเข้าไป

ทำไมสิ่งนี้ถึงเกิดขึ้น?

ปัญหาเกี่ยวกับเบราว์เซอร์มือถือ

เมื่อเปรียบเทียบเบราว์เซอร์บนมือถือและเดสก์ท็อป ความแตกต่างที่ชัดเจนที่สุดคือ ขนาดหน้าจอ- โดยค่าเริ่มต้น เบราว์เซอร์มือถือจะแสดงไซต์ที่ออกแบบมาสำหรับเบราว์เซอร์เดสก์ท็อปทั่วไปที่แย่กว่าที่สามารถทำได้: ไม่ว่าจะโดยการลดขนาด ทำให้ข้อความและเนื้อหาอื่น ๆ เล็กเกินไปและไม่สามารถอ่านได้ (เช่นเดียวกับในเวอร์ชันของเรา) หรือโดยการแสดงเพียงส่วนเล็ก ๆ ของ ไซต์ที่เหมาะกับหน้าจอ

หากคุณคิดอย่างมีเหตุผล ก็สมเหตุสมผลแล้ว: เบราว์เซอร์มือถือมองเห็นหน้าเว็บและถือว่าหน้าเว็บนั้นถูกสร้างขึ้นสำหรับเบราว์เซอร์เวอร์ชันเดสก์ท็อป ซึ่งเป็นเรื่องจริงสำหรับไซต์ส่วนใหญ่ จากสิ่งนี้ เบราว์เซอร์นี้จะตั้งค่าความกว้างของหน้าเป็น 980px (Safari iPhone) และพยายามปรับให้พอดีกับหน้าจอสมาร์ทโฟนโดยแสดงในระดับที่ลดลงมากที่สุด โดยทั่วไป ความกว้างของไซต์จะอยู่ที่ประมาณนี้ ดังนั้นเมื่อคุณเปิดหน้าเว็บโดยเฉลี่ยบนอุปกรณ์เคลื่อนที่ หน้าเว็บจะขยายจนเต็มความกว้าง แต่จะเล็กกว่าขนาดเดิม 2-3 เท่า

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

และนี่คือสาเหตุที่เราจะใช้เมตาแท็ก วิวพอร์ตซึ่งเปิดตัวโดย Apple และคัดลอกโดยผู้อื่นตามปกติ

เพิ่มลงในบล็อก บรรทัดต่อไปนี้:

และนี่คือสิ่งที่จะเกิดขึ้นตามมา:

มันเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง โดยการตั้งค่าเมตาแท็กวิวพอร์ตเป็น “ความกว้างของอุปกรณ์”เรากำลังบอกเบราว์เซอร์ว่าความกว้างของวิวพอร์ตคือความกว้างของอุปกรณ์นั้น แทนที่จะเป็นความกว้างมาตรฐาน 980px ที่อาจถือว่าเป็นค่าเริ่มต้น บนสมาร์ทโฟนจำนวนมาก ความกว้างของหน้าจอคือ 320px (ในโหมดแนวตั้ง) คุณสามารถตั้งค่าความกว้างได้เองเป็น 320px ซึ่งจะให้ผลลัพธ์เดียวกัน แต่ในสมาร์ทโฟนบางรุ่น ความกว้างของหน้าจออาจแตกต่างกัน ดังนั้นตัวเลือกที่ดีที่สุดคือใช้ความกว้างของอุปกรณ์

หนึ่งในตัวเลือกทั่วไปในการกำหนดวิวพอร์ตคือตัวเลือกต่อไปนี้:

ซึ่งกำหนดความกว้างของหน้าและกำหนดมาตราส่วนเริ่มต้น

นอกจากนี้ คุณมักจะพบตัวเลือกนี้:

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

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

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับแท็กเหล่านี้และแท็กบนมือถือเฉพาะอื่นๆ ได้

ตัวเลือกที่เป็นไปได้สำหรับเมตาแท็กวิวพอร์ต

คุณลักษณะ ความหมายที่เป็นไปได้ คำอธิบาย
ความกว้าง
(ตั้งแต่ 200px – 10,000px)
หรือค่าคงที่ความกว้างของอุปกรณ์
กำหนดความกว้างของวิวพอร์ต
หากไม่ได้ระบุความกว้าง ค่าจะถูกตั้งเป็น 980px ใน Safari บนมือถือ, 850px ใน Opera, 800px ใน Android WebKit และ 974px ใน IE
ความสูง ค่าจำนวนเต็มที่ไม่เป็นลบ
(จาก 223px ถึง 10,000px)
หรือค่าคงที่ความสูงของอุปกรณ์
กำหนดความสูงของวิวพอร์ต ในกรณีส่วนใหญ่ คุณสามารถละเว้นแอตทริบิวต์นี้ได้
ระดับเริ่มต้น
ค่า 1.0 - ห้ามปรับขนาด
กำหนดขนาดหน้าเริ่มต้น ยิ่งตัวเลขสูง สเกลก็จะยิ่งสูงขึ้น
ผู้ใช้ปรับขนาดได้ ไม่หรือใช่ กำหนดว่าผู้ใช้สามารถซูมเข้าหน้าต่างได้หรือไม่
ค่าเริ่มต้นคือ "ใช่" ใน Safari บนมือถือ
ขนาดขั้นต่ำ ตัวเลขที่มีจุด (ตั้งแต่ 0.1 ถึง 10)
1.0 - อย่าปรับขนาด
กำหนดขนาดวิวพอร์ตขั้นต่ำ ค่าเริ่มต้นคือ “0.25” ใน Safari บนมือถือ
ขนาดสูงสุด ตัวเลขที่มีจุด (ตั้งแต่ 0.1 ถึง 10)
1.0 - อย่าปรับขนาด
กำหนดการซูมวิวพอร์ตสูงสุด ค่าเริ่มต้นคือ “1.6” ใน Safari บนมือถือ

ตารางความเข้ากันได้ของวิวพอร์ต

สองวิวพอร์ต

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

George Cummins อธิบายแนวคิดของวิวพอร์ตได้ดีมากใน Stack Overflow:

คิดว่าวิวพอร์ตของหน้าเป็นรูปภาพขนาดใหญ่ที่มีขนาดและรูปร่างคงที่ ทีนี้ลองนึกภาพกรอบเล็ก ๆ ที่คุณใช้ดูภาพขนาดใหญ่นี้ กรอบนี้ล้อมรอบด้วยวัสดุทึบแสงซึ่งทำให้คุณไม่สามารถมองเห็นภาพขนาดใหญ่ทั้งหมดได้ ยกเว้นบางส่วนเท่านั้น ส่วนของภาพขนาดใหญ่ที่มองเห็นได้ผ่านเฟรมจะเป็นวิวพอร์ตภาพ หากคุณย้ายออกจากภาพขนาดใหญ่ที่มีกรอบ (ซูมออก เช่น ลดขนาด) คุณสามารถเห็นภาพทั้งหมดพร้อมกัน หรือเข้ามาใกล้มากขึ้น (ซูมเข้า เพิ่มขนาด) คุณจะเห็นเพียงบางส่วนของภาพเท่านั้น ภาพ. นอกจากนี้คุณยังสามารถหมุนเฟรมเพื่อเปลี่ยนการวางแนว (แนวตั้งหรือแนวนอน) ในขณะที่ขนาดและรูปร่างของรูปภาพขนาดใหญ่ (วิวพอร์ตเพจ) ยังคงไม่เปลี่ยนแปลงอยู่เสมอ

วิวพอร์ตภาพ- ส่วนหนึ่งของเพจที่ปรากฏบนหน้าจอในปัจจุบัน ผู้ใช้สามารถเลื่อนเพื่อเปลี่ยนส่วนที่มองเห็นได้ของหน้า หรือใช้การซูมเพื่อเปลี่ยนขนาดของวิวพอร์ตภาพ

เค้าโครงหน้า โดยเฉพาะอย่างยิ่งหากมีการระบุความกว้างเป็นเปอร์เซ็นต์ จะถูกคำนวณโดยสัมพันธ์กัน วิวพอร์ตหน้าซึ่งกว้างกว่าวิวพอร์ตภาพอย่างมาก

ดังนั้นองค์ประกอบ - จะใช้ความกว้างของวิวพอร์ตเพจในตอนแรก จากนั้น CSS จะทำงานเหมือนกับว่าหน้าจอกว้างกว่าหน้าจอโทรศัพท์มาก ซึ่งจะทำให้ไซต์มีลักษณะการทำงานเหมือนกับในเบราว์เซอร์บนเดสก์ท็อป

วิวพอร์ตภาพนั้นกว้างแค่ไหน? ขึ้นอยู่กับเบราว์เซอร์ Safari iPhone ใช้ 980px, Opera ใช้ 850px, Android WebKit ใช้ 800px และ IE ใช้ 974px

เบราว์เซอร์บางตัวมีพฤติกรรมแตกต่างออกไป:

Symbian WebKit พยายามเทียบวิวพอร์ตเพจกับวิวพอร์ตภาพ และนั่นหมายความว่าองค์ประกอบเปอร์เซ็นต์ความกว้างสามารถทำงานได้อย่างคาดเดาไม่ได้ อย่างไรก็ตาม หากหน้าไม่พอดีกับวิวพอร์ตภาพเนื่องจากค่าสัมบูรณ์ เบราว์เซอร์จะขยายวิวพอร์ตหน้าเป็นสูงสุด 850 พิกเซล

Samsung WebKit ทำให้วิวพอร์ตเพจมีความกว้างเท่ากับองค์ประกอบที่กว้างที่สุด

บน BlackBerry ด้วยมาตราส่วน 100% วิวพอร์ตเพจจะเท่ากับวิวพอร์ตภาพไม่ว่าในกรณีใดก็ตาม

กำลังซูม

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

ทำความเข้าใจเกี่ยวกับวิวพอร์ตเพจ

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

ความจริงก็คือขนาดของวิวพอร์ตของหน้าเบราว์เซอร์นั้นตรงกับหน้าจอในระดับที่ลดลงสูงสุดดังนั้นจึงเท่ากับวิวพอร์ตภาพ

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

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

สิ่งนี้ส่งผลต่อความสูงของวิวพอร์ตเพจ ซึ่งตอนนี้มีขนาดเล็กกว่าในแนวตั้งมาก แต่สำหรับนักพัฒนาแล้ว ความกว้างมีความสำคัญมากกว่าความสูง

Android และความหนาแน่นเป้าหมาย dpi

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

จะไม่มีการปรับขนาดบนอุปกรณ์ HDPI (240dpi)

รายการนี้หมายความว่าจะไม่มีการปรับขนาดบนอุปกรณ์ Android ใดๆ

เป็นพื้นที่ของหน้าต่างที่สามารถดูเนื้อหาเว็บได้ ซึ่งมักจะไม่เท่ากันกับหน้าที่แสดงผล ในกรณีนี้เบราว์เซอร์จะมีแถบเลื่อนให้ผู้ใช้เลื่อนดูและเข้าถึงเนื้อหาทั้งหมด

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

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

ป้อนเมตาแท็กวิวพอร์ต

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

เพื่อบรรเทาปัญหานี้ Apple ได้เปิดตัว "เมตาแท็กวิวพอร์ต" ใน Safari iOS เพื่อให้นักพัฒนาเว็บควบคุมขนาดและขนาดของวิวพอร์ต ขณะนี้เบราว์เซอร์มือถืออื่นๆ จำนวนมากรองรับแท็กนี้ แม้ว่าจะไม่ได้เป็นส่วนหนึ่งของมาตรฐานเว็บใดๆ ก็ตาม Apple" เอกสารของทำงานได้ดีในการอธิบายว่านักพัฒนาเว็บสามารถใช้แท็กนี้ได้อย่างไร แต่เราจำเป็นต้องทำงานด้านนักสืบเพื่อหาคำตอบว่าจะนำไปใช้ใน Fennec ได้อย่างไร ตัวอย่างเช่น เอกสารของ Safari ระบุว่าเนื้อหาเป็น "รายการที่คั่นด้วยเครื่องหมายจุลภาค" แต่เบราว์เซอร์และหน้าเว็บที่มีอยู่ใช้เครื่องหมายจุลภาค อัฒภาค และช่องว่างผสมกันเป็นตัวคั่น

เรียนรู้เพิ่มเติมเกี่ยวกับวิวพอร์ตในเบราว์เซอร์มือถือต่างๆ ใน ​​A Tale of Two Viewports ที่ quirksmode.org

ข้อมูลพื้นฐานเกี่ยวกับวิวพอร์ต

ไซต์ที่ปรับให้เหมาะสมสำหรับมือถือโดยทั่วไปประกอบด้วยสิ่งต่อไปนี้:

คุณสมบัติความกว้างควบคุมขนาดของวิวพอร์ต สามารถตั้งค่าเป็นจำนวนพิกเซลเฉพาะ เช่น width=600 หรือเป็นค่าพิเศษ device-width ซึ่งเป็นความกว้างของหน้าจอในพิกเซล CSS ที่ระดับ 100% (มีค่าความสูงและความสูงของอุปกรณ์ที่สอดคล้องกัน ซึ่งอาจมีประโยชน์สำหรับหน้าเว็บที่มีองค์ประกอบที่เปลี่ยนขนาดหรือตำแหน่งตามความสูงของวิวพอร์ต)

คุณสมบัติมาตราส่วนเริ่มต้นจะควบคุมระดับการซูมเมื่อโหลดเพจครั้งแรก คุณสมบัติขนาดสูงสุด , ขนาดต่ำสุด และคุณสมบัติที่ผู้ใช้ปรับขนาดได้จะควบคุมวิธีที่ผู้ใช้ได้รับอนุญาตให้ซูมหน้าเข้าหรือออก

พิกเซลไม่ใช่พิกเซล

ในช่วงไม่กี่ปีที่ผ่านมา ความละเอียดของหน้าจอได้เพิ่มขึ้นจนจนแต่ละพิกเซลแยกแยะได้ยากด้วยสายตามนุษย์ ตัวอย่างเช่น สมาร์ทโฟนรุ่นล่าสุดโดยทั่วไปจะมีหน้าจอขนาด 5 นิ้วที่มีความละเอียดสูงกว่า 1920-1080 พิกเซล (~400 dpi) ด้วยเหตุนี้ เบราว์เซอร์จำนวนมากจึงสามารถแสดงหน้าเว็บของตนในขนาดทางกายภาพที่เล็กลงได้โดยการแปลพิกเซลฮาร์ดแวร์หลายตัวสำหรับ "พิกเซล" ของ CSS แต่ละตัว ในตอนแรกสิ่งนี้ทำให้เกิดปัญหาด้านการใช้งานและความสามารถในการอ่านบนเว็บไซต์ที่ได้รับการปรับปรุงระบบสัมผัสหลายแห่ง Peter-Paul Koch เขียนเกี่ยวกับปัญหานี้ใน A pixel is not a pixel

บนหน้าจอที่มี dpi สูง หน้าเว็บที่มีมาตราส่วนเริ่มต้น=1 จะถูกซูมอย่างมีประสิทธิภาพด้วยเบราว์เซอร์ ข้อความจะเรียบและคมชัด แต่ภาพบิตแมปอาจจะไม่ใช้ประโยชน์จากความละเอียดเต็มหน้าจอ เพื่อให้ได้ภาพที่คมชัดยิ่งขึ้นบนหน้าจอเหล่านี้ นักพัฒนาเว็บอาจต้องการออกแบบภาพหรือเลย์เอาต์ทั้งหมดในขนาดที่สูงกว่าขนาดสุดท้าย จากนั้นจึงย่อขนาดลงโดยใช้คุณสมบัติ CSS หรือวิวพอร์ต สิ่งนี้สอดคล้องกับข้อกำหนด CSS 2.1 ซึ่งระบุว่า:

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

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

อัตราส่วนพิกเซลเริ่มต้นขึ้นอยู่กับความหนาแน่นของจอแสดงผล บนจอแสดงผลที่มีความหนาแน่นน้อยกว่า 200dpi อัตราส่วนคือ 1.0 บนจอแสดงผลที่มีความหนาแน่นระหว่าง 200 ถึง 300dpi อัตราส่วนคือ 1.5 สำหรับจอแสดงผลที่มีความหนาแน่นมากกว่า 300dpi อัตราส่วนคือพื้นจำนวนเต็ม ( ความหนาแน่น/150จุดต่อนิ้ว) โปรดทราบว่าอัตราส่วนเริ่มต้นจะเป็นจริงเฉพาะเมื่อมาตราส่วนวิวพอร์ตเท่ากับ 1 มิฉะนั้น ความสัมพันธ์ระหว่างพิกเซล CSS และพิกเซลของอุปกรณ์จะขึ้นอยู่กับระดับการซูมปัจจุบัน

ความกว้างของวิวพอร์ตและความกว้างของหน้าจอ

เว็บไซต์สามารถตั้งค่าวิวพอร์ตเป็นขนาดเฉพาะได้ ตัวอย่างเช่น คำจำกัดความ "width=320, Initial-scale=1" สามารถใช้เพื่อให้พอดีกับจอแสดงผลโทรศัพท์ขนาดเล็กในโหมดแนวตั้งได้อย่างแม่นยำ ซึ่งอาจทำให้เกิดปัญหาเมื่อเบราว์เซอร์ไม่แสดงหน้าเว็บในขนาดที่ใหญ่ขึ้น ในการแก้ไขปัญหานี้ เบราว์เซอร์จะขยายความกว้างของวิวพอร์ตหากจำเป็นเพื่อให้เต็มหน้าจอตามขนาดที่ร้องขอ ซึ่งจะเป็นประโยชน์อย่างยิ่งกับอุปกรณ์ที่มีหน้าจอขนาดใหญ่ เช่น iPad (การเลือกวิวพอร์ตสำหรับไซต์ iPad ของ Allen Pike มีคำอธิบายที่ดีสำหรับนักพัฒนาเว็บ)

สำหรับหน้าที่ตั้งค่ามาตราส่วนเริ่มต้นหรือสูงสุด หมายความว่าคุณสมบัติ width แปลเป็น a ขั้นต่ำความกว้างวิวพอร์ต ตัวอย่างเช่น หากเลย์เอาต์ของคุณต้องการความกว้างอย่างน้อย 500 พิกเซล คุณสามารถใช้มาร์กอัปต่อไปนี้ได้ เมื่อหน้าจอกว้างมากกว่า 500 พิกเซล เบราว์เซอร์จะขยายวิวพอร์ต (แทนที่จะซูมเข้า) เพื่อให้พอดีกับหน้าจอ:

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

เบราว์เซอร์มือถือบางรุ่นอาจไม่รองรับการเปลี่ยนแปลงการวางแนวในลักษณะเดียวกัน ตัวอย่างเช่น Mobile Safari มักจะเพียงซูมหน้าเมื่อเปลี่ยนจากแนวตั้งเป็นแนวนอน แทนที่จะจัดวางหน้าเหมือนที่เคยทำเมื่อโหลดในแนวนอน หากนักพัฒนาเว็บต้องการให้การตั้งค่ามาตราส่วนของตนคงที่เมื่อเปลี่ยนการวางแนวบน iPhone พวกเขาจะต้องเพิ่มค่ามาตราส่วนสูงสุดเพื่อป้องกันการซูมนี้ ซึ่งมีผลข้างเคียงที่บางครั้งไม่พึงประสงค์ในการป้องกันไม่ให้ผู้ใช้ซูมเข้า:

ระงับการซูมขนาดเล็กที่ใช้กับสมาร์ทโฟนหลายรุ่นโดยตั้งค่าสเกลเริ่มต้นและค่าสเกลขั้นต่ำเป็น 0.86 ผลลัพธ์คือการเลื่อนแนวนอนจะถูกระงับในทิศทางใดก็ได้ และผู้ใช้สามารถซูมเข้าได้หากต้องการ

ขนาดวิวพอร์ตทั่วไปสำหรับอุปกรณ์เคลื่อนที่และแท็บเล็ต

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

ข้อมูลจำเพาะ

ข้อมูลจำเพาะ สถานะ ความคิดเห็น
การปรับอุปกรณ์ CSS
คำจำกัดความของ “ “ในข้อกำหนดนั้น
ร่างการทำงาน อธิบายองค์ประกอบ Viewport META อย่างไม่ปกติ

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

บ่อยครั้งผู้คนไม่เข้าใจความแตกต่างระหว่างความกว้าง (ความกว้าง) และความกว้างของอุปกรณ์ (และยิ่งกว่านั้น ยังมีตัวอย่างที่มีความกว้างของอุปกรณ์ขั้นต่ำและความกว้างสูงสุดของอุปกรณ์) โดยใช้คำสั่งสื่อ CSS ความเข้าใจผิดนี้นำไปสู่โค้ดที่ไม่ดีและทำให้นักพัฒนาต้องทำงานมากขึ้น คำถามนี้เกิดขึ้นบ่อยครั้งในฟอรัม SitePoint ดังนั้นจึงถึงเวลาอธิบายรายละเอียดเพิ่มเติมแล้ว บทความนี้จะกล่าวถึงปัญหานี้และพิจารณาตัวเลือกที่คุณควรใช้เมื่อสร้างเว็บไซต์แบบตอบสนองอย่างละเอียด

คำจำกัดความพื้นฐาน

มากำหนดสิ่งที่เราหมายถึงเมื่อเราพูดถึงคิวรีสื่อตาม "ความกว้าง" และ "ความกว้างของอุปกรณ์" คำพูดด้านล่างนี้มาจากบทความ MDN เกี่ยวกับการสืบค้นสื่อ และมีคำจำกัดความของ "ความกว้าง" นี้:

คุณสมบัติสภาพแวดล้อม "ความกว้าง" อธิบายความกว้างของพื้นผิวจอแสดงผลของอุปกรณ์เอาท์พุต (ตัวอย่างเช่น ความกว้างของหน้าต่างเอกสารหรือความกว้างของหน้าต่างหน้าบนเครื่องพิมพ์)

และนี่คือวิธีที่ MDN กำหนด "ความกว้างของอุปกรณ์":

อธิบายความกว้างของอุปกรณ์เอาท์พุต (หมายถึงเต็มหน้าจอหรือหน้า ไม่ใช่แค่พื้นที่แสดงผล เช่น หน้าต่างเอกสาร)

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

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

แท็บเล็ตและอุปกรณ์มือถือส่วนใหญ่ไม่ได้มี 1 พิกเซลของอุปกรณ์ต่อ 1 พิกเซล CSS เสมอไป ตัวอย่างเช่นคุณควรรู้ว่า iPhone 4 มีพื้นที่การรับชมมาตรฐาน 640x960 ซึ่งหมายความว่าในตัวอย่างนี้ ความกว้างของอุปกรณ์ของ iPhone4 คือ 320x480 ประเด็นก็คือ Apple เข้าใจดีว่าไม่ใช่ทุกไซต์ที่ได้รับการออกแบบมาให้ตอบสนองและพยายามทำให้ทุกคนพอใจโดยให้ความกว้างประมาณ 980px เพื่อแสดงไซต์เวอร์ชันเดสก์ท็อป ซึ่งหมายความว่าหากไม่มีเมตาแท็กวิวพอร์ต iPhone4 จะนำไซต์และเรนเดอร์ราวกับว่ามีความกว้าง 980px ในขณะที่บีบให้เป็นหน้าจอกว้าง 320px ส่งผลให้ไซต์ปรากฏเล็กลงจากมุมมองของผู้ใช้

มาเริ่มกันเลย

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

เมื่อตัวอย่างนี้ปรากฏบนหน้าของเรา หากเราดูหน้านั้นบนอุปกรณ์ที่แตกต่างกัน ข้อความค้นหาสื่อที่แตกต่างกันก็จะเริ่มทำงาน หากไม่มีสิ่งนี้ เมื่อดูเพจบนอุปกรณ์เฉพาะ เพจนั้นก็จะปรากฏเป็นเวอร์ชันที่เล็กกว่าของเพจ อุปกรณ์จะพยายามบีบเว็บไซต์ทั้งหมดให้เป็นหน้าจอกว้าง 320px และสิ่งนี้ไม่ดีสำหรับคุณหรือผู้ใช้ของคุณ! ผู้ใช้ไม่ชอบซูมเข้าไปในไซต์เพื่อดูเนื้อหา และไม่ต้องการเลื่อนกลับไปกลับมาอย่างแน่นอน

ตัวอย่างเช่น ลองใช้ iPhone 4 ซึ่งมีความกว้างวิวพอร์ตมาตรฐานที่ 980px หากไม่มีเมตาแท็ก ความพยายามในการใช้คิวรี่สื่อจะสูญเปล่า และอุปกรณ์จะเข้าถึงวิวพอร์ตมาตรฐานไม่ถูกต้อง ข้อความค้นหาสื่อส่วนใหญ่ได้รับการออกแบบให้มีขนาด 500px หรือน้อยกว่า โดยปกติจะทำโดยใช้การสืบค้นสื่อที่มีความกว้างสูงสุดแบบธรรมดา หากไม่มีเมตาแท็ก คุณจะไม่ได้รับผลกระทบจากคำขอนี้ เนื่องจาก iPhone 4 จะยังคงแสดงไซต์เวอร์ชันกว้าง 980px ต่อไป ลองดูตัวอย่างด้านล่าง:

เนื้อความ ( พื้นหลัง: สีขาว; ) @หน้าจอสื่อ และ (ความกว้างขั้นต่ำ: 980px) /* เดสก์ท็อป */ ( เนื้อความ ( พื้นหลัง: สีแดง; ) ) หน้าจอ @media และ (ความกว้างสูงสุด: 979px) /* แท็บเล็ต */ ( เนื้อความ ( พื้นหลัง: สีน้ำเงิน; ) ) @หน้าจอสื่อ และ (ความกว้างสูงสุด: 500px) /* มือถือ */ ( เนื้อความ ( พื้นหลัง: สีเขียว; ) )

ด้านล่างนี้เป็นภาพหน้าจอสองภาพที่ถ่ายด้วย iPhone 4 ทั้งสองหน้ามี CSS ข้างต้น แต่หน้าหนึ่งใช้เมตาวิวพอร์ตแท็ก และอีกหน้าไม่มี

หน้าเว็บที่แสดงด้านบนไม่มีเมตาแท็ก ด้วยเหตุนี้ พื้นหลังจึงปรากฏเป็นสีแดงและจำลองวิวพอร์ตกว้างมาตรฐาน 980px แทนที่จะใช้แบบสอบถามสื่อบนมือถือ 500px

ในกรณีนี้ เมตาแท็กพร้อมใช้งานแล้ว และ iOS แสดงผลหน้าเว็บอย่างถูกต้องตามที่เราต้องการ โดยอิงตามความกว้าง 320px และอนุญาตให้คำสั่งสื่อของเราทำงานตามที่เราคาดหวัง

ทำไมต้องเลือกความกว้างของอุปกรณ์?

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

จากมุมมองของ CSS และ RWD ไซต์ที่ดีคือไซต์ที่ "ไม่เชื่อเรื่องอุปกรณ์" อย่างแท้จริง และไม่พยายามรองรับความกว้างของอุปกรณ์แต่ละชิ้น การกำหนดเป้าหมายเบรกพอยต์เฉพาะสำหรับ "ประเภท" ของอุปกรณ์ที่แตกต่างกัน (เช่น แท็บเล็ตหรือโทรศัพท์มือถือ) ทำได้โดยการเน้นไปที่วิธีการแสดงเนื้อหาที่ความกว้างของวิวพอร์ตเฉพาะ จากนั้นจึงทำการเปลี่ยนแปลงคิวรีสื่อตามนั้น ดังนั้นจึงไม่ใช่อุปกรณ์ที่กำหนดเบรกพอยต์ แต่กำหนดเค้าโครงและเนื้อหา และท้ายที่สุดสิ่งนี้สามารถนำไปสู่ผลลัพธ์ที่ดีที่สุด ทั้งจากมุมมองของคุณและจากมุมมองของผู้ใช้

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

อย่างไรก็ตาม ลองดูตัวเลือกอื่นที่เป็นไปได้

แล้ว "ความกว้าง" ล่ะ?

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

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

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

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

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

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

สรุปแล้ว

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

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

  • เมตาแท็กวิวพอร์ต
    • แอตทริบิวต์เมตาแท็กของวิวพอร์ต
  • เมตาแท็กเพิ่มเติมและมีประโยชน์
    • เมตาแท็ก HandheldFriendly
    • เมตาแท็ก MobileOptimized
    • เมตาแท็กรองรับ apple-mobile-web-app-capable
  • ชุดเมตาแท็กที่แนะนำ

เมตาแท็กวิวพอร์ต

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

บันทึก: เมตาแท็ก มุมมองไม่ได้เป็นส่วนหนึ่งของมาตรฐานอย่างเป็นทางการและเป็นส่วนหนึ่งของข้อกำหนด การปรับอุปกรณ์ CSS(http://goo.gl/FSTGbn) แต่จนกว่าข้อกำหนดนี้จะได้รับการสรุปและนำไปใช้อย่างกว้างขวาง ขอแนะนำให้ใช้เมตาแท็ก วิวพอร์ตแยกจากกันและใช้ร่วมกับสไตล์ @วิวพอร์ตเพื่อวัตถุประสงค์ด้านความเข้ากันได้

ตัวอย่าง:

แอตทริบิวต์เมตาแท็กของวิวพอร์ต

เมตาแท็ก วิวพอร์ตอาจมีคุณลักษณะต่อไปนี้ คั่นด้วยเครื่องหมายจุลภาค (,):

ความกว้าง- ความกว้างของพื้นที่รับชม

ค่าแอตทริบิวต์เป็นจำนวนเต็มที่ไม่เป็นลบของ 200 ถึง 10000 พิกเซลหรือค่าคงที่ ความกว้างของอุปกรณ์ซึ่งกำหนดความกว้างของหน้าให้พอดีกับขนาดหน้าจอ

หากไม่ได้ระบุค่า ค่าเริ่มต้นจะตั้งเป็น - ในมือถือ Safari = 980px, Opera = 850px, Android WebKit = 800px, IE = 974px

บันทึก: สำหรับไซต์ที่มีการออกแบบแบบตอบสนอง ขอแนะนำให้ใช้: width=device-width

ความสูง- ความสูงของพื้นที่รับชม

ค่าแอตทริบิวต์เป็นจำนวนเต็มที่ไม่เป็นลบจาก 233 ถึง 10000 พิกเซลหรือค่าคงที่ ความสูงของอุปกรณ์ซึ่งกำหนดความสูงของหน้าให้พอดีกับขนาดหน้าจอ

บันทึก: หากมีการระบุแอตทริบิวต์ ความกว้างระบุแอตทริบิวต์ ความสูงไม่จำเป็น.

ระดับเริ่มต้น- ขนาดหน้าเริ่มต้น

0.1 ถึง 1.0 - ความหมาย 1.0 กำหนดขนาด 1:1 , เช่น. "อย่าปรับขนาด"

บันทึก: บนระบบปฏิบัติการบางระบบ (iOS, Windows Phone ฯลฯ)ความกว้างของหน้าเมื่อหมุนแล้วยังคงไม่เปลี่ยนแปลง แทนที่จะกระจายเนื้อหาซ้ำ เนื้อหาจะถูกปรับขนาด ดังนั้นจึงแนะนำให้ใช้: มาตราส่วนเริ่มต้น=1.0.

ผู้ใช้ปรับขนาดได้- ความพร้อมใช้งานของการปรับขนาดหน้าโดยผู้ใช้

ค่าแอตทริบิวต์เป็นบูลีน " ใช่"(1) - สามารถปรับขนาดได้หรือ" เลขที่"(0) - ไม่สามารถปรับขนาดได้

บันทึก: แนะนำให้ใช้ค่า " ใช่"และเพราะว่า มันถูกติดตั้งตามค่าเริ่มต้นแล้ว ผู้ใช้ปรับขนาดได้ไม่อาจระบุได้

ขนาดขั้นต่ำ- ขนาดพื้นที่การรับชมขั้นต่ำ

ค่าแอตทริบิวต์คือตัวเลขที่มีจุดจาก 0.1 ถึง 1.0 - ในเบราว์เซอร์มือถือ Safari ค่าเริ่มต้นคือ 0.25 ความหมาย 1.0 กำหนดขนาด 1:1 , เช่น. "อย่าปรับขนาด"

ขนาดสูงสุด- ขนาดวิวพอร์ตสูงสุด

ค่าแอตทริบิวต์คือตัวเลขที่มีจุดจาก 0.1 ถึง 1.0 - เบราว์เซอร์มือถือ Safari มีค่าเริ่มต้นเป็น 1.6 ความหมาย 1.0 กำหนดขนาด 1:1 , เช่น. "อย่าปรับขนาด"

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

เมตาแท็กเพิ่มเติมและมีประโยชน์

เมตาแท็ก มือถือที่เป็นมิตรกำหนดว่าหน้าเว็บไซต์ได้รับการปรับให้เหมาะสมสำหรับอุปกรณ์มือถือบน Palm และ Blackberry ในเบราว์เซอร์เช่น AvantGo หรือไม่ ตอนนี้ได้รับการยอมรับจากเบราว์เซอร์มือถืออื่น ๆ มากมาย

ตัวอย่าง:

เมตาแท็ก เพิ่มประสิทธิภาพบนมือถือ(http://goo.gl/ZpLjZz) กำหนดความกว้างของวิวพอร์ตในเบราว์เซอร์มือถือ IE Mobile หรือ Pocket IE มีความคล้ายคลึงกับคุณลักษณะ ความกว้างในเมตาแท็ก วิวพอร์ต.

ตัวอย่าง:




เมตาแท็ก รองรับแอปเปิ้ลมือถือบนเว็บแอป(http://goo.gl/VGDYQC) อนุญาตให้เพจทำงานในโหมดเต็มหน้าจอ ซึ่งเกี่ยวข้องกับอุปกรณ์มือถือ Apple

ตัวอย่าง:

ชุดเมตาแท็กที่ฉันใช้สำหรับไซต์ที่มีการออกแบบที่ตอบสนองซึ่งปรับแต่งมาสำหรับอุปกรณ์มือถือ: