No hay muchos artículos que cubran incompatibilidades o diferencias de CSS solo en Firefox , y por una buena razón.
Firefox siempre ha hecho un excelente trabajo al admitir CSS y JavaScript de una manera compatible con los estándares sin demasiados errores incómodos.
Sin embargo, hay algunas propiedades y selectores de CSS que no son compatibles con una o más de las versiones publicadas desde la versión 3.0, que trataré aquí.
Este artículo cubrirá errores, inconsistencias y falta de soporte . Por lo tanto, si tiene problemas con una propiedad o selector de CSS en Firefox y no aparece en la lista aquí, entonces probablemente tendrá que replantearse su diseño y reconsiderar cuál podría ser el culpable.
Dado que Firefox 2 es virtualmente inexistente , No consideraré esa versión específicamente, pero esta información generalmente se aplicará a esa versión de manera predeterminada.
Y debería tener en cuenta que el material para esta publicación fue tomado principalmente del recién actualizado SitePoint Referencia CSS , que es la mejor y más completa referencia de CSS disponible en cualquier lugar.
En Firefox 3.x, cuando un elemento se desborda del borde de un padre que tiene el outline
conjunto de propiedades, el contorno se estirará para adaptarse al elemento que lo contiene, como se muestra en la captura de pantalla a continuación:
La implementación correcta se muestra en la siguiente captura de pantalla tomada desde Chrome:
Como se muestra arriba, el esquema debe abarcar el elemento que se está delineando, y no debe verse afectado por elementos desbordados. Para asegurarse de que no haya confusión, tenga en cuenta que esto es un error en la implementación de la outline
propiedad, no el border
propiedad.
Referencia: Referencia de SitePoint CSS: propiedad de esquema
En Firefox, cuando una tabla tiene sus bordes establecidos en collapse
utilizando el border-collapse
propiedad, los márgenes superior e izquierdo de la tabla en relación con los elementos cercanos están a 1 píxel de descuento. Esto se muestra en una captura de pantalla ampliada en la imagen siguiente, que muestra el borde inferior de un elemento de nivel de bloque (rojo) que toca el borde superior de una tabla contraída (azul):
Aquí está la implementación correcta de este par de propiedad / valor, como se muestra en Chrome:
Como se muestra arriba, debido a que los bordes están "plegados", y debido a que la tabla no es un elemento de bloque, debe haber un ligero desplazamiento en el margen izquierdo, y el margen superior debe ser uniforme con el borde inferior del elemento encima.
Referencia: Referencia de SitePoint CSS: propiedad de colapso de borde
Este es un valor de propiedad que no se implementa correctamente en ningún navegador, incluido Firefox. Cuando una fila de la tabla no tiene contenido visible y todas sus celdas tienen su empty-cells
propiedad configurada para hide
, toda la fila debería comportarse como si estuviera configurada en "display: none", sin bordes ni fondos visibles.
Ningún navegador maneja esto correctamente, por lo que la fila de la tabla sigue siendo visible, como se muestra en la imagen a continuación.
Referencia: Referencia CSS de SitePoint: propiedad de celdas vacías
En Firefox 3.x, un valor negativo en el word-spacing
la propiedad se tratará como cero en elementos adyacentes en línea. El valor negativo debe hacer que los elementos en línea se superpongan entre sí, como sería el caso con el texto, pero esto no sucede. En cambio, los elementos tienen una separación de espacio en blanco cero sin superposición.
La imagen a continuación muestra las implementaciones correctas e incorrectas:
En los ejemplos que se muestran arriba, las tres palabras "Frutas", "Verduras" y "Otros alimentos" se envuelven individualmente en elementos, mientras que el párrafo que los envuelve tiene su
word-spacing
propiedad establecida en un valor negativo.
El segundo ejemplo (Firefox) no aplica el espaciado de palabra negativo, excepto entre las dos últimas palabras porque esas palabras no están envueltas individualmente por tramos sino que son elementos de texto natural.
Como punto secundario, este error ocurre de manera similar en IE8, pero no en versiones anteriores de IE.
Referencia: Referencia de CSS de SitePoint: propiedad de separación de palabras
Cuando un elemento tiene un valor de decoración de texto establecido, ese valor no debe ser heredado por descendientes flotantes. En Firefox 3.x, los descendientes flotantes reciben los mismos valores de decoración de texto que sus padres, aunque este no debería ser el caso.
En la imagen de arriba, la primera línea es una captura de pantalla de IE8, que muestra una elemento flotaba dentro de un ancla. El texto dentro del
no tiene una decoración de texto visible, que es la forma correcta de mostrarlo. En Firefox (que se muestra en el segundo ejemplo), la decoración del texto se aplica incorrectamente al flotante
.
Es posible que haya notado este error en Firefox al intentar eliminar la decoración de texto de las imágenes flotantes dentro de los anclajes.
Referencia: Referencia CSS de SitePoint: propiedad de decoración de texto
Utilizando el white-space
propiedad en Firefox 3.5, puede especificar si los caracteres de espacios múltiples deben colapsarse en un solo espacio o no. De forma predeterminada, los documentos HTML colapsarán varios espacios en un solo espacio. En algunos casos, puede aplicar white-space: pre
para evitar que se derrumbe el espacio en blanco, que es similar al uso del Etiqueta HTML Posteriormente, es posible que desee eliminar esa configuración usando
white-space: pre-line
(para colapsar el espacio en blanco).
Firefox 3.0 no es compatible con este valor, por lo que se conservará el espacio en blanco. Firefox 3.5 colapsa el espacio correctamente. La imagen a continuación muestra ambos ejemplos:
Del mismo modo, cuando un párrafo de texto está configurado para white-space: pre-wrap
, esto debería preservar los espacios en blanco entre las palabras, pero naturalmente debe incluir saltos de línea. Firefox 3.0 no implementa esto correctamente, mientras que las versiones posteriores (y todos los demás navegadores) incluyen los saltos de línea naturales. Ambos ejemplos se muestran a continuación.
Tenga en cuenta que el elemento externo se da white-space: pre
mientras que un interior está intentando anular la falta de saltos de línea usando
pre-wrap
. Por sí mismo, pre-wrap
no tendría ningún efecto.
Firefox 3.x también trata algunos de los white-space
valores diferentes de otros navegadores cuando esos valores se aplican a la elemento. Por ejemplo, aplicando
white-space: nowrap
debe causar todo el texto escrito en una para formar una línea, pero Firefox 3.x no hace esto.
Referencia: Referencia de SitePoint CSS: propiedad de espacio en blanco
CSS permite a los desarrolladores especificar dónde se deben o no los saltos de página utilizando las tres propiedades page-break-before
, page-break-inside
y page-break-after
. Opera es el único navegador que admite completamente estas propiedades, mientras que otros navegadores ofrecen soporte parcial o no son compatibles.
los page-break-inside
propiedad especifica si un salto de página puede ocurrir o no dentro de un único elemento de nivel de bloque. Firefox no proporciona soporte para esta propiedad. Usando la sintaxis page-break-inside: avoid
, puede evitar que un elemento se divida durante la impresión. La siguiente imagen, desde una vista previa de impresión en Opera 10, muestra cómo esta propiedad puede evitar que una lista desordenada se divida en dos páginas:
Por el contrario, observe la imagen a continuación, tomada desde la opción de vista previa de impresión en Firefox 3.5:
Referencia: Referencia CSS de SitePoint: Propiedades de medios paginados
los orphans
y widows
Las propiedades de CSS solo son compatibles con Internet Explorer 8 y Opera desde la versión 9. Esta propiedad se utiliza para especificar el número mínimo de líneas de un solo párrafo que pueden aparecer en una página impresa, ya sea en la parte inferior (huérfanos) o en la parte superior (viudas) ) Dependiendo del número elegido, las líneas se moverán de una página a la siguiente (o anterior) para evitar que se imprima una sola línea en la parte superior o inferior de una página.
Incluso con el orphans
propiedad establecida en un valor de "3", como se muestra en la imagen a continuación, la vista previa de impresión de Firefox muestra una sola línea en la parte inferior de una de las páginas imprimibles:
Similar a page-break-inside
propiedad, Firefox tampoco admite los valores avoid
, left
y right
tanto para el page-break-before
y page-break-after
propiedades.
Referencias Referencia CSS de SitePoint: propiedad huérfanos | Referencia CSS de SitePoint: propiedad de viudas
los Internet Explorer 8, Chrome y Safari implementan esta característica correctamente, evitando que el anidamiento de elementos de bloque rompa el diseño, como se muestra en la imagen a continuación: En el párrafo anterior, el texto está dentro de un Referencia: Referencia CSS de SitePoint: Pseudo-Elemento de primera línea Firefox ha agregado gradualmente mejor soporte para CSS3 desde el lanzamiento de la versión 3.0. A continuación se muestra una descripción de cómo Firefox maneja las diferentes características de CSS3. Algunos de estos aún pueden estar en el borrador de trabajo o recomendación del candidato etapa, por lo tanto, no podemos ser dogmáticos sobre lo que debe y no debe ser apoyado hasta que hayan alcanzado el recomendación escenario. Algunos de los errores e incompatibilidades más importantes se discutieron anteriormente, pero hay algunos otros que vale la pena mencionar. Después de revisar este material, puede ver claramente que la falta de compatibilidad con las características de CSS en Firefox es mínima y, en muchos casos, bastante irrelevante, ya que muchas de las propiedades que se analizan aquí no se usan con mucha frecuencia. No obstante, espero que esto proporcione una referencia decente para los errores e inconsistencias más importantes en Firefox. Si tiene problemas con una característica particular de CSS en Firefox que no figura aquí, es probable que esté haciendo algo mal o que no comprenda totalmente ciertos conceptos y principios de CSS. Entonces, en ese sentido, esta referencia debería funcionar bien como una referencia inversa , ya que se puede confiar en que los que no están listados aquí funcionen bien si se implementan correctamente con la sintaxis adecuada. Por supuesto, si hay algo que he echado de menos, o cualquier error, por favor comenten y haré todo lo posible para hacer las correcciones y adiciones necesarias. Imagen de Firefox proporcionada por Rakaz Esta publicación fue escrita exclusivamente para Webdesigner Depot por Louis Lazaris, un escritor independiente y desarrollador web. Louis corre Webs impresionantes donde publica artículos y tutoriales sobre diseño web. Puedes seguir a Louis en Twitter o ponte en contacto con él a través de su sitio web . :first-line
El pseudo-elemento permite que la primera línea de cualquier bloque de texto tenga un formato diferente del resto del texto. Por ejemplo, la primera línea de un párrafo de texto se puede cambiar a mayúscula o a un color diferente. Para que este elemento CSS funcione de manera práctica, debe permitir la posibilidad de elementos de nivel de bloque anidados. Por ejemplo, un elemento debe permitir el
:first-line
pseudo-elemento para cambiar el estilo de la primera línea de texto dentro del elemento, que reside dentro de un
tiene el
:first-line
pseudo-elemento configurado para color: blue
, que falla en Firefox debido a la anidación del párrafo dentro del Soporte de CSS3 en Firefox 3.x
text-shadow
propiedad box-shadow
propiedad, excepto cuando se usa el prefijo de propiedad -moz-
box-sizing
propiedad, excepto cuando se usa el prefijo de propiedad -moz-
-moz-
es usado border-image
propiedad, pero 3.5 lo soporta usando el -moz-
prefijo propietario Otras características de CSS no son compatibles
run-in
Para el display
propiedad ::selection
pseudo-elemento Conclusión
Referencias adicionales