Problema
No, las consultas de medios no se pueden usar de esta manera
<span style="@media (...) { ... }"></span>
Solución
Pero si desea proporcionar un comportamiento específico que se pueda usar sobre la marcha Y que responda, puede usar el style
marcado y no el atributo.
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>
Vea el código trabajando en vivo en CodePen
En mi blog, por ejemplo, inserto un <style>
marcado <head>
justo después de la <link>
declaración de CSS y contiene el contenido de un área de texto proporcionada junto al área de texto de contenido real para crear una clase adicional sobre la marcha cuando escribí un artículo.
Nota: el scoped
atributo es parte de la especificación HTML5. Si no lo usa, el validador lo culpará, pero los navegadores actualmente no son compatibles con el propósito real: limitar el contenido <style>
solo al elemento primario inmediato y a los elementos secundarios de ese elemento. El alcance no es obligatorio si el <style>
elemento está <head>
marcado.
ACTUALIZACIÓN: Aconsejo usar siempre las reglas en el móvil de la primera manera, por lo que el código anterior debería ser:
<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>