tôi nhấn một vấn đề tương tự với trang web của tôi khi phát triển một số CSS đáp ứng. Tôi muốn bất kỳ đối tượng Youtube được nhúng nào thay đổi kích thước, với khía cạnh, khi chuyển từ CSS của máy tính để bàn sang một cái gì đó nhỏ hơn (tôi sử dụng truy vấn phương tiện để hiển thị lại nội dung cho thiết bị di động).
Giải pháp tôi đã giải quyết là CSS và đánh dấu dựa trên. Về cơ bản, tôi có ba lớp video trong CSS của tôi như sau:
.video640 {width: 640px; height: 385px}
.video560 {width: 560px; height: 340px}
.video480 {width: 480px; height: 385px}
... và tôi gán một trong những nội dung Youtube tôi bao gồm, tùy thuộc vào kích thước ban đầu của nó (bạn có thể cần thêm các lớp học, tôi chỉ chọn nhiều nhất kích thước phổ biến).
Trong phương tiện CSS truy vấn cho các thiết bị nhỏ hơn, các lớp này cùng chỉ đơn giản là tái nói như vậy:
.video640 {width: 230px; height: 197px}
.video560 {width: 230px; height: 170px}
.video480 {width: 240px; height: 193px}
Tôi đánh giá cao điều này đòi hỏi một số mark-up "lên phía trước" khi bao gồm cả video trong HTML của bạn (tức là thêm một lớp), nhưng nếu bạn không muốn đi xuống các tuyến đường Javascript, điều này hoạt động khá tốt - bạn có thể nhà nước lại các lớp học video của bạn cho nhiều kích cỡ khác nhau như bạn yêu cầu. Dưới đây là cách đánh dấu trang Youtube:
<object class="video640" type="application/x-shockwave-flash" value="YOUTUBE URL">
<param name="movie" value="YOUTUBE URL"></param>
</object>
Ah, tôi đã không nghĩ về các truy vấn phương tiện truyền thông cho điều này - Tâm trí của tôi đã được sửa chữa ở quy mô mịn, nhưng nó thực sự không phải! (Bạn có thường xuyên thay đổi kích thước trình duyệt của mình như thế nào? Tôi có thể làm điều đó giống như ngọn 7 lần mỗi ngày) Chỉ cần nó vừa vặn và trông ổn thôi - Tôi rất vui. Tôi sẽ tự mình thử trước khi chấp nhận bạn trả lời (Và tạo cơ hội cho ai đó có thể có ý tưởng tốt hơn, nhưng tôi nghi ngờ điều đó) - cảm ơn bạn :) – Frank
Câu trả lời tuyệt vời; ước gì tôi có thể buộc mọi người vào và upvote nó :) – Kato