¿Cuáles son sus métodos preferidos para escribir CSS?

No escribas CSS

Escriba en un preprocesador como Sass, Stylus o LESS que compila a CSS. Probablemente va a reutilizar estilos en toda su aplicación, pero necesitará mezclarlo con otros. Los preprocesadores le brindan la capacidad de utilizar fragmentos reutilizables de CSS y extenderlos en otros contextos. También tienen variables, lo que significa que puede configurar los colores base, las fuentes y las medidas en un solo lugar y usarlas en su código.

Escribe mejor HTML

Es difícil escribir un buen CSS si tu HTML es basura. Use etiquetas semánticas HTML5 para mantener su contenido ordenado y con un nombre razonable. Los navegadores también proporcionan CSS predeterminado para ciertas etiquetas HTML5 que simplemente puede reutilizar, o su archivo normalize.css hará lo mismo, pero de una mejor manera. (Ver siguiente punto)

Use un archivo normalize.css

Antes de escribir una sola línea de su propio CSS, los navegadores proporcionan el suyo propio que puede dejar o anular. El problema es que no es muy bueno y difiere entre los navegadores. http://necolas.github.io/normali… es la respuesta a ese problema. Anula estos valores predeterminados del navegador y proporciona otros nuevos que deberían verse bastante consistentes en todos los navegadores. También está disponible para varios preprocesadores.

Primero móvil

Su CSS resultará mucho mejor si funciona primero en dispositivos móviles y utiliza consultas min-width @media para agregar excepciones a su apariencia en pantallas más grandes. Piénselo, diseñar hasta tamaños de pantalla más grandes generalmente implica agregar, no eliminar. Las cosas tienden a ser más grandes, mejor espaciadas y, lo que es más importante, se apoyan en los estilos que ya tiene para su sitio móvil. Me parece que escribo mucho menos código cuando escribo móvil primero.

Usa flexbox si puedes

Este nuevo conjunto de propiedades CSS resuelve muchos de los molestos problemas con el diseño (pie de página adhesivo, cuadrículas, centrado vertical, incluso espaciado) que anteriormente eran difíciles o sin sentido en CSS anteriores. Verifique el Módulo de diseño de caja flexible para ver si cumple con los requisitos de su navegador.

Usa rems si puedes.

… y si no puedes, usa ems. Los píxeles no son una buena forma de definir el tamaño, especialmente cuando las densidades de píxeles comienzan a diferir de una pantalla a otra. Por lo menos, no le brinda información útil sobre cómo se relaciona el tamaño con el resto del documento. El sucesor de esto fue “em” (por ejemplo, tamaño de fuente: 1.1 em;) Esto definió una proporción del tamaño del elemento padre. Los ems de raíz son diferentes solo porque son proporcionales al tamaño de la raíz. Por lo tanto, defina el tamaño de fuente de su etiqueta html como 16px, luego use rem (por ejemplo, font-size: 1.1rem;) para definir la proporción de su tamaño a este tamaño base. Su texto será grande y legible por defecto y las excepciones le indicarán claramente el contexto de cómo es diferente.

Utilice nombres de clase que se refieran al contenido, no al estilo en sí.

.col-3, .left-pane, .red-box … estos son nombres que describen cómo aparecen las cosas, pero para eso es el CSS en sí. Originalmente no teníamos que hacer esto porque algo como .left-pane era una clase reutilizable que podría ser diferentes tipos de contenido. Con los preprocesadores (ver primer punto), podemos escribir .news, .share, .updates, etc., y simplemente extendernos desde el bloque .left-pane que definimos.

Si puede, use solo un margen inferior en los bloques de texto

No puedo decirte cuántas veces he necesitado ajustar el espacio entre líneas y bloques de texto solo para descubrir que necesito jugar con el margen inferior del texto encima, el margen superior del bloque en sí y el relleno / margen de otros elementos en la página. El diseño del texto es un proceso meticuloso cuando se hace correctamente, pero apegarse a dar bloques de texto con margen 0 a excepción de la parte inferior es un método sorprendentemente útil para hacer esto mucho más fácil.

Mantenga un archivo separado “kludges.css” para soluciones rápidas y listas para la entrega

Imagine que su fecha límite se acerca rápidamente. No importa cuán disciplinado sea al escribir CSS, encuentro que puedo terminar el 10% restante del proyecto antes de una fecha límite si solo agrego algo de CSS que sea rápido, efectivo, pero terrible para mantener el código limpio y extensible. Piense en mover las cosas a su lugar acolchándolas hasta la muerte (estremecimiento) en lugar de refactorizar la estructura. Sin embargo, hacer esto último me llevará mucho más tiempo. Ponga ese 10% en un archivo CSS separado llamado “kludges.css”. Una vez que tenga más tiempo para regresar y hacerlo bien, simplemente puede eliminar este archivo y seguir transportando en camiones.

Un agradecimiento especial al colega Neo Jono Mallanyk por algunos de estos consejos.

Realmente me gusta formatear todas mis hojas de estilo con una tabla de contenido en la parte superior.

Por ejemplo, comenzaré la parte superior de mi archivo CSS para que se vea así

  / * ------------------------------------------------ ---------------
 
  [Tabla de contenidos]
 
  1. HTML y cuerpo
  2. Propiedades generales de CSS
  3. Encabezado / #encabezado
  4. Navegación / #navMenu 
  5. Envolturas / envolturas
  6. Contenido - Blog / #contentBlog
  7. Contenido - Acerca de / #about
  5. Pie de página / #footer

 -------------------------------------------------- ------------- * /

Luego, dentro del CSS, separaré las secciones con un número + $

/* [1$] Html & Body */
Entonces, cuando controlo + f para encontrar algo usando $ y el número me ayuda a llegar a donde voy más rápido.

Luego, encuentro que organizar mis archivos CSS en archivos separados para ayudar mucho. Entonces, comenzaré con un style.css, y dentro de style.css usaré @import para vincular un media.css, theme.css, animaciones, css, reset.css, etc. Junto con eso en el style.css principal, importaré fuentes en la parte superior para mantener todo organizado.

La otra cosa que también hago es ordenar alfabéticamente todas mis propiedades CSS para que sea más fácil encontrar cosas y navegar a través de cientos de líneas de CSS.
Junto con la separación de transiciones y animaciones lejos de otras propiedades CSS.

  #ejemplo {
 animación: fadein 1s linear;
 -moz-animation: fadein 1s linear;
 -ms-animation: fadein 1s linear;
 -webkit-animation: fadein 1s linear;

 fondo: #FFF;
 borde: 1px rojo sólido;
 box-shadow: recuadro 0 1px 0 rojo,
             recuadro 0 -1px 0 azul;
 Limpia los dos;
 color: # 0b0b0b;
 font-family: 'Open Sans', sans-serif;
 tamaño de fuente: 0.5em;

 transición: 1s lineal;
 -moz-transición: 1s lineal;
 -ms-transición: 1s lineal;
 -webkit-transition: 1s lineal;
 }

Otra cosa que realmente se mete en mi piel es dejar un http: // en una extensión de URL. Cuando puedas, simplemente déjalo como //

Este es un no no según la guía de programación web de Google

  @import url (http://fonts.googleapis.com/css?family=Droid+Serif:400,400italic);

Mejor:

  @import url (// fonts.googleapis.com/css?family=Droid+Serif:400,400italic);