Masalah
Tidak, Kueri Media tidak dapat digunakan dengan cara ini
<span style="@media (...) { ... }"></span>
Larutan
Tetapi jika Anda ingin memberikan perilaku tertentu yang dapat digunakan dengan cepat DAN responsif, Anda dapat menggunakan style
markup dan bukan atributnya.
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>
Lihat kode yang aktif di CodePen
Di Blog saya misalnya, saya menyuntikkan <style>
markup <head>
tepat setelah <link>
deklarasi untuk CSS dan itu berisi konten textarea yang disediakan di samping textarea konten nyata untuk membuat kelas tambahan saat saya menulis artitle.
Catatan: scoped
atribut adalah bagian dari spesifikasi HTML5. Jika Anda tidak menggunakannya, validator akan menyalahkan Anda, tetapi browser saat ini tidak mendukung tujuan sebenarnya: mencakup konten <style>
hanya pada elemen induk dan elemen anak elemen itu. Scoped tidak wajib jika <style>
elemen dalam <head>
markup.
UPDATE: Saya menyarankan untuk selalu menggunakan aturan dalam cara seluler terlebih dahulu sehingga kode sebelumnya harus:
<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>