Añadiendo @Import Declaración en una hoja de estilo dinámica para IE7 +
-
14-09-2020 - |
Pregunta
Tengo un problema con agregar un elemento de estilo dinámico con las declaraciones de @Import para IE.Prueba esto:
var string = '@import url(test.css)';
var style = document.createElement('style');
if (style.styleSheet) { // IE
style.styleSheet.cssText = string;
} else {
var cssText = document.createTextNode(string);
style.appendChild(cssText);
}
document.getElementsByTagName('head')[0].appendChild(style);
Esto funciona para FF / Chrome, pero no es IE.Parece reconocer a style.styleSheets.imports
, pero no aplicará la hoja de estilos importada.¿Es este un error o limitación?
Solución
Muchos navegadores mayores no pueden procesar formas variables de la Directiva @Import, esto se puede usar para ocultar CSS de ellos.Comprobar http://www.w3development.de/css/hide_css_from_browsers/import/ Para más detalles.
Las directivas @import
deben venir primero en una hoja de estilo, o si sean ignoradas.Sin embargo, es decir, no ignora las directivas extraviadas @import
.
Editar : consulte el Método Addimport para inyectar hojas de estilo en IE.