การออกแบบเว็บที่ตอบสนองกับการดมกลิ่นของตัวแทนผู้ใช้


13

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

อย่างไรก็ตามในทางปฏิบัติฉันเริ่มเข้าใจแล้วว่าmediaคุณลักษณะการค้นหาCSS3 และการเคลื่อนไหว "Responsive Web Design" ทั้งหมดอาจไม่สอดคล้องกับคำสัญญา

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

สมมติว่าเรามีฟังก์ชั่น Javascript อย่างง่ายที่เพิ่งแสดงความกว้างของหน้าจอ:

function foo()
{
   alert(screen.width);
}

บน Blackberry Touch ของฉันผลลัพธ์นี้:

768

บน Samsung Galaxy ของฉันผลลัพธ์นี้:

800

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

สิ่งนี้ทำให้ฉันได้ถามคำถามเกี่ยวกับภูมิปัญญาทั้งหมดที่อยู่เบื้องหลังการเคลื่อนไหว "Responsive Web Design" ของ CSS3 ทั้งหมดตามการสืบค้นสื่อ ดูเหมือนว่าmediaคุณสมบัติการค้นหาจะเหมาะกว่าสำหรับการปรับขนาดหน้าต่างเบราว์เซอร์บนหน้าจอเดสก์ท็อปแทนที่จะเป็นอุปกรณ์พกพาต่างๆ

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

คำถาม:ดังนั้น ... ในฐานะนักพัฒนาเว็บถ้าผมไม่สามารถพึ่งพา RWD หรือตรวจสอบคุณสมบัติเป็นuser-agent ดม (ตามที่ฉาวโฉ่ไม่น่าเชื่อถือเช่นเคย) จริงๆเลือกที่ดีที่สุดในการตรวจสอบโทรศัพท์มือถือ?


หากเป้าหมายของ Responsive Web Design คือ (ตามที่วิกิพีเดียอ้างว่า ) "การอ่านและการนำทางอย่างง่ายดายด้วยการปรับขนาดการแพนและการเลื่อนขั้นต่ำ" ทำไมคุณถึงสนใจว่าเป็นเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ สิ่งสำคัญคือความละเอียดหน้าจอและขนาดหน้าจอของอุปกรณ์ไม่ใช่ประเภทของอุปกรณ์ ไม่มี?
ruakh

ฉันเดาว่าฉันกำลังพูดอะไรอยู่นั่นคือการเชื่อมต่อระหว่าง "ความละเอียดหน้าจอ" และขนาดหน้าจอจริง (เช่นเซนติเมตร / นิ้วของความกว้างหน้าจอ) กำลังเพิ่มขึ้นเรื่อย ๆ
Channel72

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

@zuallauz ไม่ได้รับการสนับสนุนที่device-widthไม่ดีเลยใช่ไหม
Channel72

ทำไมไม่ไปโดยหน่วย em? ด้วยวิธีนี้เนื้อหาจะเปลี่ยนไปตามพื้นที่ข้อความที่มีอยู่ ...

คำตอบ:


12

หยุดกังวลมากเกี่ยวกับอุปกรณ์เฉพาะ

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

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

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

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

ตัวแทนผู้ใช้ยังต้องการงานจำนวนมากเพื่อจัดการกับความเป็นไปได้ทั้งหมด คุณมี Firefox สำหรับ Android หรือไม่? Chrome บน IOS หรือไม่ โลมาบน Froyo เบราว์เซอร์ WiiU? เบราว์เซอร์ที่มีข้อ จำกัด อย่างมากในโทรศัพท์ฟีเจอร์เก่าของ LG คม? IE 13 การเชื่อมโยง? IceWeasel? เบราว์เซอร์ของ Blackberry playbook หรือไม่ คุณจะบอกความแตกต่างระหว่าง Opera ที่ทำงานบนแท็บเล็ตและ Opera ที่ทำงานบนโทรศัพท์ได้อย่างไร

รายการนี้สามารถเติบโตได้เมื่อเวลาผ่านไป


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

1
จริง ๆ แล้วควรจะมี ควรกำหนดพิกเซล CSS โดยใช้มุมและระยะทางไม่ใช่พิกเซลแบบฟิสิคัล ผู้ผลิตหลายรายมองข้ามสิ่งนี้ในการตั้งค่าเริ่มต้น
Mike Gossmann

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

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

1

ตัวแทนผู้ใช้ก็โกหกเช่นกัน หากคุณเป็น Google คุณจะพบรายชื่อตัวแทนผู้ใช้เทียบกับความจริง ดังนั้นนี่คือปัญหา บางรีสอร์ทใช้วิธีดูการตั้งค่า dpi เพื่อพิจารณาว่าเป็นอุปกรณ์ประเภทใด


3
หากใครบางคนมีความต้องการที่จะให้ข้อมูลที่เป็นเท็จในข้อมูลตัวแทนผู้ใช้เขาจะได้รับเว็บไซต์เริ่มต้นรุ่น ...
จอห์น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.