ฉันพบวิธีการทำสิ่งนี้โดยใช้ CSS แต่คุณต้องระวังเพราะอาจเปลี่ยนแปลงได้ขึ้นอยู่กับการไหลของเว็บไซต์ของคุณเอง ฉันได้ทำไปแล้วเพื่อฝังวิดีโอด้วยอัตราส่วนคงที่ภายในส่วนความกว้างของเว็บไซต์ของฉัน
สมมติว่าคุณมีวิดีโอแบบฝังนี้:
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
คุณสามารถวางทั้งหมดนี้ไว้ใน div ด้วยคลาส "วิดีโอ" คลาสวิดีโอนี้อาจเป็นองค์ประกอบที่เป็นของเหลวในเว็บไซต์ของคุณเองโดยที่มันไม่มีข้อจำกัดความสูงโดยตรง แต่เมื่อคุณปรับขนาดเบราว์เซอร์จะเปลี่ยนความกว้างตามการไหลของเว็บไซต์ นี่เป็นองค์ประกอบที่คุณอาจลองรับวิดีโอที่ฝังไว้ในขณะที่ยังคงรักษาอัตราส่วนภาพของวิดีโอไว้
เพื่อที่จะทำสิ่งนี้ฉันใส่ภาพก่อนวัตถุฝังตัวใน div class "วิดีโอ"
!!! ส่วนที่สำคัญคือภาพมีอัตราส่วนภาพที่ถูกต้องที่คุณต้องการบำรุงรักษา นอกจากนี้ตรวจสอบให้แน่ใจว่าขนาดของภาพเป็นอย่างน้อยใหญ่ที่สุดเท่าที่เล็กที่สุดที่คุณคาดหวังวิดีโอ (หรืออะไรก็ตามที่คุณรักษา AR ของ) เพื่อให้ได้ตามเค้าโครงของคุณ สิ่งนี้จะหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นในความละเอียดของภาพเมื่อมีการปรับขนาดเป็นเปอร์เซ็นต์ ตัวอย่างเช่นหากคุณต้องการรักษาอัตราส่วนภาพไว้ที่ 3: 2 อย่าใช้ภาพ 3px คูณ 2px มันอาจทำงานภายใต้สถานการณ์บางอย่าง แต่ฉันไม่ได้ทดสอบและอาจเป็นความคิดที่ดีที่จะหลีกเลี่ยง
คุณน่าจะมีความกว้างขั้นต่ำเช่นนี้ที่กำหนดไว้สำหรับองค์ประกอบของเหลวในเว็บไซต์ของคุณ หากไม่เป็นเช่นนั้นเป็นความคิดที่ดีที่จะทำเช่นนั้นเพื่อหลีกเลี่ยงการตัดองค์ประกอบหรือมีการทับซ้อนกันเมื่อหน้าต่างเบราว์เซอร์มีขนาดเล็กเกินไป มันจะดีกว่าที่จะมีแถบเลื่อนในบางจุด ความกว้างของหน้าเว็บที่เล็กที่สุดควรอยู่ที่ประมาณ ~ 600px (รวมถึงคอลัมน์ที่มีความกว้างคงที่) เนื่องจากความละเอียดหน้าจอจะไม่เล็กลงเว้นแต่คุณจะจัดการกับเว็บไซต์ที่เป็นมิตรกับโทรศัพท์ !!!
ฉันใช้ png โปร่งใสอย่างสมบูรณ์ แต่ฉันไม่คิดว่ามันจะจบลงถ้าคุณทำถูกต้อง แบบนี้:
<div class="video">
<img class="maintainaspectratio" src="maintainaspectratio.png" />
<object>
<param ... /><param ... />...
<embed src="..." ...</embed>
</object>
</div>
ตอนนี้คุณควรจะสามารถเพิ่ม CSS ได้ดังต่อไปนี้:
div.video { ...; position: relative; }
div.video img.maintainaspectratio { width: 100%; }
div.video object { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }
div.video embed {width: 100%; height: 100%; }
ตรวจสอบให้แน่ใจว่าคุณได้ลบประกาศความสูงหรือความกว้างที่ชัดเจนภายในวัตถุและแท็กฝังที่มักจะมาพร้อมกับรหัสฝัง / คัดลอก
วิธีการทำงานขึ้นอยู่กับคุณสมบัติตำแหน่งขององค์ประกอบคลาสวิดีโอและรายการที่คุณต้องการคงไว้ซึ่งอัตราส่วนภาพที่แน่นอน มันใช้ประโยชน์จากวิธีที่ภาพจะรักษาอัตราส่วนที่เหมาะสมเมื่อปรับขนาดในองค์ประกอบ มันบอกสิ่งอื่นใดที่อยู่ในองค์ประกอบคลาสวิดีโอเพื่อใช้ประโยชน์จากอสังหาริมทรัพย์ที่มีให้โดยรูปภาพแบบไดนามิกโดยบังคับให้ความกว้าง / ความสูงเป็น 100% ขององค์ประกอบวิดีโอคลาสที่ปรับด้วยรูปภาพ
ค่อนข้างเท่ห์ใช่มั้ย
คุณอาจต้องเล่นกับมันสักหน่อยเพื่อให้มันทำงานกับการออกแบบของคุณเอง แต่มันใช้งานได้ดีจริง ๆ สำหรับฉัน แนวคิดทั่วไปอยู่ที่นั่น