css - programacion - programar en html desde cero
Entrada de Internet Explorer: marcado+etiqueta: antes de que no se represente el estilo (3)
Tengo problemas para conseguir que el estilo :checked
de mis casillas de verificación personalizadas se muestre en Internet Explorer.
Funcionan perfectamente bien en Chrome.
... pero en IE
Aquí está el estilo relevante
input[type="radio"], input[type="checkbox"] {
opacity: 1;
position: absolute;
top: -9999;
& + label {
vertical-align: middle;
}
}
input[type="radio"] + label:before,
input[type="checkbox"] + label:before {
content: ''/f3fd'';
font-family: ''Ionicons'';
width: 26px;
height: 20px;
border: 2px solid #45555F;
font-size: 24px;
color: transparent;
display: table-cell;
text-align: center;
transition: all 0.3s linear;
-webkit-transition: all 0.3s linear;
-moz-transition: all 0.3s linear;
-ms-transition: all 0.3s linear;
-o-transition: all 0.3s linear;
padding: 0 2px;
}
input[type="radio"]:checked + label:before,
input[type="checkbox"]:checked + label:before {
content: ''/f383'';
font-family: ''Ionicons'';
font-size: 24px;
width: 26px;
height: 20px;
text-align: center;
display: table-cell;
padding: 0 2px;
border: 2px solid #45555F;
color: #8ec549;
}
input[type="radio"] + label:before {
border-radius: 50% !important;
}
También noté que Internet Explorer simplemente elimina el estilo en la carga ...
¡Gracias por cualquier ayuda!
EDITAR: Demo Codepen (Esta demostración tampoco funciona en IE)
A diferencia de la modificación de :before
pseudo elemento en marcado simplemente utilicé el :after
pseudo elemento para el estado activo y cambio entre opacidades para ocultarlas y mostrarlas en consecuencia.
Gracias por todos los que ayudaron.
El problema al que se enfrenta es un conocido IE10 - IE11
error IE10 - IE11
, donde estos dos navegadores tienden a ignorar por completo la declaración de fuente en los pseudo elementos con display: table-cell
. Eso significa que las propiedades como font
, font-size
font-family
, color
, etc. se verán afectadas.
Para eludir este error , sería suficiente en su caso para:
▶ Use display: table-cell
con un elemento real en lugar de un pseudo-elemento, o
▶ Cambiar display: table-cell
para display: inline-block
o algún otro valor que non-table-cell
para su pseudo-elemento.
▶ Declare una propiedad float
que tiene un valor distinto de none
para que se display: table-cell
para display: block
.
Aquí hay algunas preguntas que enfrentan un problema con la display: table-cell
también que puede ser de alguna ayuda:
▶ IE no colorear: antes como tabla-celda, ¿por qué?
▶ Posicionamiento de div dentro de la pantalla: table-cell en IE 10
Parece un duplicado de En IE11 usando pseudo element :: before y display: table-cell y glyphicons contens no se mostrarán .
En resumen, hay un error en IE10 y 11 donde el estilo de font
se ignora para los pseudo-elementos con visualización de table-cell
.
Como se mencionó en el supuesto problema duplicado, una solución adecuada sería utilizar algún otro tipo de display
para el pseudo elemento junto con los ajustes necesarios en los estilos de width
y height
.