뚠뚠멍의 생각들

ปัญหา Cross-Browsing ที่ฉันเจอ (ส่วนใหญ่เป็น Safari)

สร้าง: 2024-09-27

สร้าง: 2024-09-27 21:56

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

ฉันต้องการบันทึกไว้


ปัญหาการคำนวณความสูงของ viewport เนื่องจากแถบที่อยู่และแถบนำทางของเบราว์เซอร์เอง


Safari และ Samsung Internet มีแถบนำทางด้านล่างในเบราว์เซอร์เอง โดยปกติแล้ว หากไม่ได้ตั้งค่า show/hide โดยเฉพาะ แถบนำทางจะปรากฏขึ้นเมื่อเลื่อนลงและหายไปเมื่อเลื่อนขึ้น

ปัญหาคือ viewport ไม่คงที่และเปลี่ยนแปลงเนื่องจากสิ่งเหล่านี้

ตัวอย่างเช่น หากตั้งค่าความสูงเป็น 100vh レイアウトจะถูกวาดอย่างถูกต้องเมื่อไม่มีแถบนำทาง แต่ถ้าแถบนำทางปรากฏขึ้น แถบนำทางจะบัง UI

เพื่อแก้ไขปัญหานี้

1. ใช้ dvh

dvh คือ viewport แบบไดนามิก ซึ่งจะสะท้อนการเปลี่ยนแปลงโดยอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลงความสูงของ viewport ดังนั้นจึงสามารถรับมือกับการเปลี่ยนแปลงเค้าโครง UI ตามที่มีหรือไม่มีแถบที่อยู่หรือแถบนำทางด้านล่าง


2. สามารถพิจารณา svh ได้เช่นกัน

svh คือความสูงของพื้นที่ UI อย่างแท้จริงโดยไม่รวมแถบที่อยู่หรือแถบนำทาง ในสถานการณ์ที่คาดว่าแถบที่อยู่หรือแถบนำทางจะปรากฏขึ้น การใช้ svh จะมีความแม่นยำมากขึ้น



ปัญหา UI เลื่อนเนื่องจากแป้นพิมพ์เสมือนเมื่อเลือก (โฟกัส) input

ใน Safari บนมือถือ เมื่อเลือก input ปัญหา UI เลื่อนเนื่องจากแป้นพิมพ์เสมือนเกิดขึ้น โดยทั่วไปแล้วในเบราว์เซอร์อื่นๆ แป้นพิมพ์เสมือนจะปรากฏขึ้นแบบ absolute แต่ใน Safari เว็บมือถือ ดูเหมือนว่าจะใช้ display block และใช้พื้นที่


Safari ปรับความสูงของ viewport แบบไดนามิกเมื่อแป้นพิมพ์เสมือนปรากฏขึ้น ทำให้เกิดปัญหากับองค์ประกอบที่ใช้หน่วย vh ในการแก้ปัญหานี้


1. ใช้ min-height

ตั้งค่าความสูงคงที่เพื่อป้องกันไม่ให้ UI เลื่อน


2. ใช้ vendor prefix (กล่าวถึงด้านล่าง)

แทรกแอตทริบิวต์ที่ใช้ในเบราว์เซอร์เฉพาะ เช่น Safari


3. ควบคุม viewport แบบไดนามิกด้วย JavaScript

* วิธีนี้ไม่แนะนำ เนื่องจากความสูงของการเลื่อนจะเคลื่อนที่อย่างรวดเร็วและเค้าโครงจะกะพริบ

ตั้งค่า event listener สำหรับ resize เพื่อตรวจจับการเปลี่ยนแปลงของ viewport และใช้สไตล์ที่เหมาะสม


3-1. ควบคุมตำแหน่งเมื่อเกิดเหตุการณ์ focusin


3-2. ควบคุมตำแหน่งเมื่อแป้นพิมพ์เสมือนปรากฏขึ้น (ในตัวอย่างด้านล่างใช้ class)


การแก้ปัญหาด้วย CSS อย่างสมบูรณ์เป็นวิธีที่ดีที่สุด แต่ถ้าไม่สามารถแก้ไขได้ด้วยตัวอย่างข้างต้น ให้ตรวจสอบว่าเป็นองค์ประกอบ position: absolute หรือ fixed หรือไม่ และลองลบแอตทริบิวต์ top, right, left, bottom แล้วแก้ไข CSS


อื่นๆ

นอกจากนี้ ฉันยังค้นหาสิ่งต่างๆ ที่ควรพิจารณาเมื่อพัฒนาเว็บมือถือใน Safari

1. ใช้ vendor prefix เมื่อใช้แอตทริบิวต์บางอย่าง

* vendor prefix คือคำนำหน้าที่ช่วยให้เบราว์เซอร์สามารถเข้าใจและแสดงผลแอตทริบิวต์ CSS เฉพาะได้ ทำให้ CSS ที่ใช้แตกต่างกันในแต่ละเบราว์เซอร์ทำงานได้ตามที่ตั้งใจไว้ โดยการนี้จะช่วยให้เกิดความสอดคล้องกันระหว่างเบราว์เซอร์และสามารถเข้ากันได้กับเบราว์เซอร์เวอร์ชันเก่า


ประเภท

-webkit-: Chrome, Safari ฯลฯ
-moz-: Mozilla Firefox
-ms-: Internet Explorer และ Edge
-o-: Opera


แอตทริบิวต์ทั่วไปที่ต้องการ vendor prefix มีดังนี้


นอกจากนี้ Safari ยังจำกัดขนาดของ LocalStorage และ SessionStorage ไว้ที่ประมาณ 5 MB และไม่แชร์พื้นที่เก็บข้อมูลระหว่างแท็บ ดังนั้นจึงจำเป็นต้องระมัดระวัง



ความคิดเห็น0

การเพิ่มประสิทธิภาพ SEO สำหรับมือถือ: สร้างเว็บไซต์ที่ใช้งานง่ายบนมือถือคู่มือการเพิ่มประสิทธิภาพ SEO สำหรับมือถือ ครอบคลุมการออกแบบเว็บไซต์ที่ตอบสนองต่ออุปกรณ์ต่างๆ ความเร็วในการโหลดหน้าเว็บที่รวดเร็ว การนำทางที่ง่ายดาย การออกแบบที่ใช้งานง่ายบนหน้าจอสัมผัส เนื้อหาที่ปรับให้เหมาะกับมือถือ การใช้ Google AMP และ Google Search C
꿈많은청년들
꿈많은청년들
꿈많은청년들
꿈많은청년들

June 10, 2024

บอกลา Safari บน iPhone ที่ช้า! เคล็ดลับเร่งความเร็วสุดเจ๋ง6 เคล็ดลับเร่งความเร็ว Safari บน iPhone! จากการล้างแคช, คุกกี้ ไปจนถึงการตั้งค่าเครือข่ายใหม่ เราจะมาแนะนำวิธีแก้ปัญหา Safari ที่ทำงานช้า
뉴스코리아
뉴스코리아
뉴스코리아
뉴스코리아

November 19, 2024

อัปเดตการดำเนินงาน 25 ม.ค. 2567 (ศุกร์)วันที่ 25 มกราคม 2567 วันศุกร์ ได้มีการอัปเดตเว็บไซต์ เช่น การออกแบบเว็บไซต์และการปรับปรุง SEO การแก้ไขเลย์เอาต์หน้าแรกและหน้ารายละเอียดของบล็อกผู้ใช้ เป็นต้น
durumis-release
durumis-release
durumis-release
durumis-release

January 29, 2024

เหตุผลที่คุณไม่จำเป็นต้องวางแผนเว็บไซต์ให้ตอบสนองต่อการใช้งานบทความนี้จะแนะนำวิธีการสร้างเว็บไซต์ที่ปรับให้เหมาะสมกับมือถือโดยไม่ต้องวางแผนเว็บไซต์แบบ Responsive คุณสามารถประหยัดเวลาและค่าใช้จ่ายโดยการรักษาเนื้อหาให้สอดคล้องกันในสภาพแวดล้อมของเดสก์ท็อป แท็บเล็ต และมือถือ
리틀리 블로그|올인원 프로필 링크
리틀리 블로그|올인원 프로필 링크
리틀리 블로그|올인원 프로필 링크
리틀리 블로그|올인원 프로필 링크

May 29, 2024

[ตอนที่ 4] สร้างเกมเว็บด้วย AI ภายใน 30 นาทีบล็อกนี้เป็นบทความชุด 4 ตอนที่เกี่ยวกับขั้นตอนการสร้างเกมเว็บภายใน 30 นาทีโดยใช้ AI เกมนี้มีการเพิ่มคุณสมบัติต่างๆ เช่น ค่าคริติคอล มอนสเตอร์ และระบบร้านค้า นอกจากนี้ยังรองรับการใช้งานบนมือถือด้วยการออกแบบที่ตอบสนองต่อหน้าจอต่างๆ ลองเล่นได้ที่ ggoban.c
꼬반
꼬반
꼬반
꼬반

November 8, 2024

สร้างพลังบล็อกของชเวบงฮยอก – วิเคราะห์คีย์เวิร์ดการค้นหาที่พุ่งสูงขึ้น ทะลุเพดาน พุ่งขึ้น พุ่งลง การแสดงผลบนอันดับต้นๆชเวบงฮยอก นักข่าวแบ่งปันผลการวิเคราะห์คีย์เวิร์ดบล็อกประจำเดือนกันยายน พร้อมแนะนำเทรนด์ล่าสุด เช่น ไอโฟน 16 ปัญญาประดิษฐ์ และเครื่องมือ No-Code
NEWS FDN (다큐)
NEWS FDN (다큐)
NEWS FDN (다큐)
NEWS FDN (다큐)

September 18, 2024