- ¿Cuál es la diferencia entre selectores de ID o CSS?
- ¿Cuál es la diferencia entre "resetear" y "normalizar" el CSS (reset.css y normalize.css)? ¿Cuándo elegirias uno u otro?
- Describe la propiedad "float" y como funciona
- ¿Cómo funciona el z-index y el context stacking (contexto de apilamiento) de elementos?
- ¿Conoces alguna de las "técnicas de limpieza" de estilos (clearing techniques)?
- ¿Cómo funcionan los sprites de CSS, y cómo los podrías implementar?
- ¿Cuál sería tu approach para solucionar problemas con un browser específico?
- ¿Cómo desarrollas sitios con features específicas por navegador?
- ¿Cómo visualizas o ocultas visualmente el contenido (o habilitas la visualización solo para screen readers)?
- ¿Has usado un sistema de grid? ¿Cuáles prefieres y por qué?
- ¿Has usado media-queries? ¿Para qué?
- ¿Has usado o creado estilos con SVG? ¿En qué situaciones?
- ¿Cómo optimizas tu sitio para imprimir?
- ¿Cuáles son algunos de los "detalles" para escribir CSS eficiente?
- ¿Cuáles son las ventajas/desventajas de usar preprocesadores de CSS?
- De los preprocesadores que has usado, ¿cuál prefieres y por qué?
- ¿Cómo implementarías un sitio Web que usa tipografías no estándar?
- ¿Sabes cómo un browser determina que elementos emparejar con que reglas de CSS?
- ¿Qué son los pseudo-elementos, para qué sirven, dónde y cómo se utilizan?
- Explica el modelo de cajas. (box model)
- ¿Qué hace:
* { box-sizing: border-box; }
? ¿Cuáles son sus ventajas? - ¿Qué valores existen para "display"?
- ¿Cuál es la diferencia entre
inline
andinline-block
? - ¿Cuál es la diferencia entre
relative
,fixed
,absolute
ystatic
al definir la posición de un elemento? - La 'C' en CSS quiere decir 'Cascading'. ¿Cómo el browser define la prioridad al asignar estilos? ¿Cómo se puede sacar ventaja de esto?
- ¿Qué frameworks de CSS has usado localmente y/o en producción? ¿Cómo los mejorarías?
- ¿Has usado Flexbox o Grid? ¿Qué puedes decirme de ellos?
- ¿En qué se diferencia el diseño
responsivo
del diseñoadaptable
? - ¿Hay alguna razón por la que usarías
translate()
por sobreposition: absolute
, (o viceversa)? - ¿Qué puedes contarme de postCSS?
- ¿Qué puedes contarme de cssNext?
- ¿Cómo el CSS afecta al
critical-render-path
? (El proceso de "carga, analisis y renderizado" de un sitio Web)
-
- La primera diferencia es en sintaxis, tanto al definirlos en el HTML como en el CSS. ```html``` ```css #hola { } .hola { } .mundo { } ```
- Un elemento puede tener solo 1 ID, pero múltiples clases.
- Dentro de un DOM, los ID's son únicos, pero las clases pueden repetirse entre elementos
- Los ID's funcionan como identificador único para navegar dentro de una página.
- Al entrar a
http://www.ejemplo.com#hola_mundo
el navegador reconocerá el hash valuehola_mundo
e intentará encontrar el elemento con IDhola_mundo
y scrollear la página hasta el.
- Al entrar a
- Al estilar, los ID's tienen precedencia sobre las clases.
-
¿Cuál es la diferencia entre "resetear" y "normalizar" el CSS (reset.css y normalize.css)? ¿Cuándo elegirias uno u otro?
- Al *resetear* el css (`reset.css`) se busca remover todos los estilos por defecto que los navegadores realizan a un DOM, mientras que al *normalizarlo* (`normalize.css`) busca generar un estilo consistente a lo largo de todos los navegadores. -
-
La propiedad "float" sirve para posicionar horizontalmente un elemento y acepta 3 argumentos, que pueden ser: izquierda (left), derecha (right) o ninguno (none). De esta forma, se puede situar un contenedor o elemento al lado que deseas.
-
La alternativa para el caso de un menú con listas, podría ser inline-block.
-
-
-
Los sprites en CSS hacen referencia a una imagen que puede servir para muchas situaciones. Para implementarlas se puede llamar tanto a la propiedad background-image con background-position por separado, como llamar directamente a la propiedad background y asignar todos los valores en la misma línea.
En esta documentación, se explica el uso de la propiedad background, de la cual obtenemos por separado el background-image y background-position.
http://www.w3schools.com/css/css_image_sprites.asp
-
-
** Pregunta Abierta ** Algunas solucuiones pueden ser: - Uso de frameworks de CSS para facilitar la homogeneidad. - Preprocesadores de CSS - Post-procesado del CSS al realizar el build del sitio. - Gulp / Grunt / Webpack - PostCSS
-
¿Cómo visualizas o ocultas visualmente el contenido (o habilitas la visualización solo para screen readers)?
-
Sí, he ocupado son Semantic y Bootstrap 3 y 4. Personalmente, prefiero Bootstrap por el fácil manejo de grillas y como uno encuentra todo mejor documentado, aparte, es super simple y util de ocupar.
-
Las Media Queries facilitan el desarrollo de un diseño adaptable. Con ellas es posible definir que reglas de CSS respondan a tamaños concretos del viewport.
Usando Media Queries, es posible realizar un diseño adaptable que a diferencia del responsivo, ocupa unidades de tamaño fijo en conjunto a Media Queries. Puedes aprender más de Media Queries acá
-
-
-
-
-
-
-
¿Sabes cómo un browser determina que elementos emparejar con que reglas de CSS? (Especificidad de selectores)
Imaginemos un array de 4 espacios en 0
[0,0,0,0]
donde las reglas de CSS para un elemento se analizan así:- Por cada selector de tag o pseudo selector
*, li, :nth-child(), :nth-of-type()
, se le suma 1 a la cuarta (4ta) posición - Por cada clase o pseudo clase se le suma 1 a la tercera (3era) posición.
- Por cada ID se le suma 1 a la segunda (2da) posición.
- Por un atributo "style" en el css, se le suma a la primera (1era) posición,
* {} /* especificidad = 0,0,0,0 */ li {} /* especificidad = 0,0,0,1 */ li:first-line {} /* especificidad = 0,0,0,2 */ ul li {} /* especificidad = 0,0,0,2 */ ul ol+li {} /* especificidad = 0,0,0,3 */ h1 + *[rel=up]{} /* especificidad = 0,0,1,1 */ ul ol li.red {} /* especificidad = 0,0,1,3 */ li.red.level {} /* especificidad = 0,0,2,1 */ #x34y {} /* especificidad = 0,1,0,0 */ #x34y #press {} /* especificidad = 0,2,0,0 */ style="" /* especificidad = 1,0,0,0 */
- Por cada selector de tag o pseudo selector
Luego de adjuntar todos los estilos necesarios a un elemento, se adjuntan los estilos de menor prioridad a mayor, y se sobre-escriben, por ejemplo:
<html>
<head>
<style>
p {
color: red;
}
#mi_id {
color: grey;
}
</style>
</head>
<body>
<p id="mi_id" style="color: blue"> </p>
</body>
</html>
En este caso la especificidad sería:
p {} /* especificidad = 0,0,0,1 */
#mi_id {} /* especificidad = 0,1,0,0 */
style="" /* especificidad = 1,0,0,0 */
Finalmente, el color del contenido de <p id="mi_id" style="color: blue"> </p>
es azul.
-
OJO:
!important
, toma precedencia por sobre otras reglas del mismo nivel solamente. -
Adicionalmente, al haber 2 reglas con la misma especificidad, el navegador selecciona la últma regla definida (la "más reciente").
-
-
La propiedad padding hace referencia al espacio que está dentro del contenedor, o caja, a diferencia de la propiedad margin que está relacionada al espacio que está fuera del contenedor.
En cuanto a la propiedad border, hace referencia al contorno del contenedor, como la traducción literal lo menciona, es un borde como tal.
Todas pueden ser definidas en cuatros posiciones (top, bottom, left, right) y de diferentes medidas de acuerdo a lo necesitado. Adicionalmente, puede usarse una definición corta e indicar los 4 valores en el mismo orden. Ejemplo:
border: 10px 15px 20px 30px
sería igual a
border-top: 10px border-right: 15px border-bottom: 20px border-left: 30px
Básicamente, la diferencia está en el espacio que se otorga, mientras que Padding separa desde adentro hacia afuera del contenedor, border da el contorno y finalmente margin separa hacia afuera del contenedor.
-
-
-
La diferencia entre la propiedad "inline" e "inline-block" es que la segunda puede afectar a otras directamente, ya que no tiene un largo y ancho definido que no pueda afectar a las demás.
Ejemplo práctico: http://jsfiddle.net/Mta2b/
-
¿Cuál es la diferencia entre
relative
,fixed
,absolute
ystatic
al definir la posición de un elemento? -
La 'C' en CSS quiere decir 'Cascading'. ¿Cómo el browser define la prioridad al asignar estilos? ¿Cómo se puede sacar ventaja de ésto?
-
Relacionado a la pregunta 21.
-
Una de las ventajas de que las definiciones sean en "cascada" es la posibilidad de encapsular comportamientos y estilos. Gracias a esto es posible usar CSS para definir características superiores y específicas: Por ejemplo:
.link { font-size: 1.3em; } .link:hover { font-size: 1.5em; } .mainArea .link { background-color: red; } .sideBar .link { background-color: blue; } .sideBar .social .link { background-color: teal; }
Gracias a esta definición es posible tener en nuestra página 3 tipos de links con un estilo y funcionalidad en común
font-size
y con estilos diferentes dependiendo del área en el que se encuentren.
-
-
- ** Pregunta Abierta **
-
- [FlexBox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) y [Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) son 2 módulos de CSS creados para diseñar interfaces en la Web.
-
Flexbox permite que los elementos se comporten de manera mucho más predecible en diferentes tamaños de pantalla, lo que facilita el diseño de interfaces responsivas.
-
Grid Layout viene siendo la estandarización de los sistemas de grillas existentes actualmente (Bootstrap, GridCSS, etc). Actualmente es un working draft, por lo que no está soportado en producción y su API puede cambiar.
-
-
-
-
-
-
¿Cómo el CSS afecta al
critical-render-path
? (El proceso de "carga, analisis y renderizado" de un sitio Web)