Vấn đề
Không, Truy vấn phương tiện không thể được sử dụng theo cách này
<span style="@media (...) { ... }"></span>
Giải pháp
Nhưng nếu bạn muốn cung cấp một hành vi cụ thể có thể sử dụng một cách nhanh chóng và phản hồi nhanh, bạn có thể sử dụng style
đánh dấu chứ không phải thuộc tính.
ei
<style scoped>
.on-the-fly-behavior {
background-image: url('particular_ad.png');
}
@media (max-width: 300px) {
.on-the-fly-behavior {
background-image: url('particular_ad_small.png');
}
}
</style>
<span class="on-the-fly-behavior"></span>
Xem mã làm việc trực tiếp trên CodePen
Ví dụ, trong Blog của tôi, tôi đã đưa ra một <style>
đánh dấu <head>
ngay sau khi <link>
khai báo CSS và nó chứa nội dung của một văn bản được cung cấp bên cạnh văn bản nội dung thực sự để tạo thêm lớp khi tôi viết một tiêu đề.
Lưu ý: scoped
thuộc tính là một phần của đặc tả HTML5. Nếu bạn không sử dụng nó, trình xác nhận sẽ đổ lỗi cho bạn nhưng các trình duyệt hiện không hỗ trợ mục đích thực sự: chỉ giới hạn nội dung <style>
trên phần tử cha ngay lập tức và phần tử con của phần tử đó. Phạm vi không bắt buộc nếu <style>
phần tử được <head>
đánh dấu.
CẬP NHẬT: Tôi khuyên bạn luôn luôn sử dụng các quy tắc trong điện thoại di động theo cách đầu tiên để mã trước đó phải là:
<style scoped>
/* 0 to 299 */
.on-the-fly-behavior {
background-image: url('particular_ad_small.png');
}
/* 300 to X */
@media (min-width: 300px) { /* or 301 if you want really the same as previously. */
.on-the-fly-behavior {
background-image: url('particular_ad.png');
}
}
</style>
<span class="on-the-fly-behavior"></span>