Problem
Nie, zapytań o media nie można używać w ten sposób
<span style="@media (...) { ... }"></span>
Rozwiązanie
Ale jeśli chcesz zapewnić określone zachowanie możliwe do użycia w locie ORAZ responsywne, możesz użyć styleznaczników, a nie atrybutu.
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>
Zobacz kod działający na żywo w CodePen
Na przykład na moim blogu wstawiam <style>znacznik <head>tuż po <link>deklaracji dla CSS i zawiera on zawartość obszaru tekstowego dostarczonego obok rzeczywistego obszaru tekstowego, aby stworzyć dodatkową klasę w locie, gdy pisałem artykuł.
Uwaga: ten scopedatrybut jest częścią specyfikacji HTML5. Jeśli go nie użyjesz, walidator będzie cię winił, ale przeglądarki obecnie nie obsługują prawdziwego celu: zakres zawartości <style>tylko elementu bezpośrednio nadrzędnego i elementów potomnych tego elementu. Zakres nie jest obowiązkowy, jeśli <style>element jest <head>oznaczony.
AKTUALIZACJA: Radzę, aby zawsze używać reguł w telefonie komórkowym, więc poprzedni kod powinien być:
<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>