goals do
goal "Aprender sintaxis básica de CSS"
goal "Escribir algunos estilos básicos de CSS"
end
overview do
message <<-MARKDOWN
## ¿Qué es CSS?
CSS significa __C__ascading __S__tyle__s__heets (hojas de estilo en cascada). Es un lenguaje para crear **reglas** que puedan **selecionar** varios elementos en la página y cambiar sus **propiedades visuales**.
* __C__ascading - La 'cascada' es uno de los elementos de CSS mas difícil de dominar, pero básicamente significa que puedes definir varias reglas de estilos de diferentes valores, y el CSS los aplicará a todos, resolviendo cualquier conflicto permitiendo que reglas más estrictas sobreescriban (o sobre _cascada_) a las débiles.
* __S__tyle__s__heets - Los archivos CSS son llamados 'stylesheets' porque te permiten poner tus reglas de estilos en un documento por separado (una 'hoja') de tipo .css, y después puedas incluir una o más en una página HTML. Está es una _muy_ importante característica para sitios con muchas páginas, ya que permite escribir tus reglas una vez y luego incluirlas en todo tu sitio con un solo link en cada página.
## Las Reglas CSS están hechas por un Selector y Atributos
* Esta sección incluye vocabulario que probablemente quieras memorizar después del taller.*
El **selector** le dice al navegador qué elementos agregar el estilo. En esta página sólo usaremos etiquetas existentes, `<h1>` y `<p>` como nuestros selectores.
Los **atributos** le dicen al navegador cómo estilizar. La primera parte, `padding:` es una **propiedad**, y la parte después de los dos puntos `20px` es el **valor**. La línea se termina con un punto y coma.
Todo junto, el selector y las propiedades son llamados **reglas**.
<img src='img/css.png'>
(Olvidarás el punto y coma en algún momento, y tu CSS se romperá, pero se soluciona fácilmente.)
## ¿Por qué están HTML y CSS por separado?
HTML le dice al navegador lo que _significa_ tu contenido, mientras CSS es presentacional—CSS es todo sobre estilos.
MARKDOWN
end
steps do
step do
message "Inicialmente, vamos agregar nuestro CSS dentro de la etiqueta `<head>`, debajo de la línea con el título de la página."
message "Una etiqueta de estilo estándar debe verse así:"
source_code :html, <<HTML
<head>
<title>Mi página HTML de ejemplo</title>
<style type="text/css" media="screen">
</style>
</head>
HTML
message "Ahora guarda el archivo y actualiza tu navegador. Todo debe verse igual."
end
step do
message "Agrega algunos estilos que se aplicarán a tus etiquetas `h1` y `p`."
source_code :html, <<HTML
<style type="text/css" media="screen">
h1 {
font-size: 20px;
border-bottom: 1px solid #cccccc;
}
p {
padding: 10px;
background-color: papayaWhip;
}
</style>
HTML
message <<-MARKDOWN
Al guardar y actualizar tu navegador, deberás ver los estilos que agregaste:
<img src='img/hello_style.png'>
Los atributos `type` y `media` dentro de la etiqueta `<style>` le dan al navegador más contexto sobre cómo utilizar la información incluida. En este caso, le decimos que el tipo es HTML/CSS, y eso será mostrado en la pantalla (a diferencia de `media=\"print\"`, que es especialmente usada para estilizar.)
MARKDOWN
end
end
explanation do
message <<-MARKDOWN
## CSS es poderoso
Aquí hay dos capturas de pantalla de la misma página HTML, pero en la parte derecha, quitamos todo el CSS. Casi todo el color y el formato desaparece, y los fragmentos de código y botones que estaban con estilo CSS ahora se ven como texto.
### Bundler: Con y Sin CSS (¡el horror!)
<img src='img/css_bundler.png'>
Para más ejemplos del poder de CSS, revisa [CSS Zen Garden](http://www.csszengarden.com/). Toma el mismo HTML, pero lo muestra con hojas de estilos de varios diseñadores. Aquí hay diferentes interpretaciones del mismo HTML de dos diseñadores:
<img src='img/css_zen.png'>
MARKDOWN
end
next_step "atributos_HTML"