2011-12-28 9 views
38

En resumen:individuales vs múltiples hojas de estilo en el diseño web receptivo

En caso de utilizar una o varias hojas de estilo cuando se hace el diseño web receptivo?

En detalle:

En responsive design, que tienden a tener un trozo principal de CSS, a continuación, otras partes y piezas para ajustar el diseño cuando se llega a ciertos puntos de interrupción. Se puede estructurar su código de una de dos maneras:

de hojas de estilo individual

/* Main CSS */ 

@media only screen and (min-width: 480px) { /* CSS */ } 
@media only screen and (min-width: 640px) { /* CSS */ } 
@media only screen and (min-width: 800px) { /* CSS */ } 

múltiples hojas de estilo

<link rel="stylesheet" media="screen" href="main.css"> 
<link rel="stylesheet" media="only screen and (min-width: 480px)" href="480.css"> 
<link rel="stylesheet" media="only screen and (min-width: 640px)" href="640.css"> 
<link rel="stylesheet" media="only screen and (min-width: 800px)" href="800.css"> 

Parece que el uso de una hoja de estilo se reducirá el número de peticiones HTTP, pero tendrá un archivo más grande que contendrá un código que algunos clientes podrían no usar. Varias hojas de estilo parecen mantener el tamaño de los archivos, pero luego tienes más solicitudes HTTP.

¿Cuándo debe optar por cada enfoque? ¿Cómo se acumulan en la práctica los pros y los contras del número de solicitudes HTTP y el tamaño del archivo?

+2

¿Qué tarda más, procesar una solicitud HTTP (ida y vuelta) o procesar un archivo CSS más largo de lo necesario? –

+1

El tamaño del archivo es relativamente pequeño en la mayoría de las hojas de estilo. Incluso un archivo CSS grande en 50K probablemente sea la menor de tus preocupaciones en la optimización del rendimiento. –

Respuesta

41

hojas de estilo son siempre descargado, independientemente de los medios actuales, ya sea screen, print, o 3D-glasses.

Ver: Why do all browsers download all CSS files - even for media types they don't support?

Así que con esto en mente, manteniendo a todos en una hoja de estilo reducirá peticiones http, donde como hojas de estilo separadas siempre va a crear más solicitudes con ningún beneficio.

+14

Para la cordura, podría usar archivos separados para el desarrollo y concatenarlos/minimizarlos como parte de un proceso de compilación antes de empujar su código. Consulte aquí: http://stackoverflow.com/questions/702907/what-are-some-good-css-and-js-minimizers-for-production-code – calvinf

+0

¿La sobrecarga de HTTP sigue siendo un problema con HTTP/2? https://www.smashingmagazine.com/2016/02/getting-ready-for-http2/#concatenating-css-and-javascript – user1857711

Cuestiones relacionadas