Conceptos HTML y JavaScript - Bloque 2 - CSS
Conceptos HTML y JavaScript - Bloque 2 - CSS
y JavaScript
CSS
Bloque 2
CSS
CSS nos permite que podamos presentar el mismo contenido de formas muy variadas, es la clave para conseguir
portabilidad tan apreciada en este tiempo.
Un lenguaje de hoja de estilos se define como aquel que es utilizado para estructurar el diseño de un lenguaje de
marcado.
Una hoja de estilos se compone de reglas, cada regla está compuesta por un selector y un bloque de declaración.
Bloque de declaración: Contiene una o más declaraciones referentes al estilo del elemento seleccionado,
separadas por “;”. Cada declaración está compuesta por un nombre y un valor. Los bloques de declaración deben
estar contenidos entre “{ }”.
Selectores en CSS
Los selectores nos dicen a qué elemento HTML debemos aplicar el estilo declarado en su bloque. Hay muchas
formas de seleccionar estos elementos, vamos a ver algunas de las más importantes:
Selector de ID: Selecciona el elemento mediante su atributo id, que es un identificador único. Para seleccionarlo se
utiliza la sintaxis “#nombreID”
Selector de clase: Selecciona el elemento mediante su atributo class. Se utiliza la sintaxis “.class“.
Se puede combinar con el selector de elemento declarando “elemento. class”
Selector universal: Aplica a todos los elementos de la página, se define con “*”.
Selector en grupo: Se puede aplicar el mismo estilo a varios elementos distintos, agrupando sus selectores.
Externos: Se llama a una hoja de estilos mediante a etiqueta <link> para que sea importado en el archivo HTML.
Internos: Se declara código CSS que será aplicado al documento HTML dentro de la etiqueta <style>.
Como atributo: Se declara como atributo “style” del elemento HTML, dándole como valor el código CSS que le
queremos aplicar.
Colores en CSS
Los colores pueden ser definidos de varias formas, las más comunes son:
• Palabra predefinida: Hay muchos colores que tienen una palabra asociada, como puede ser Orange, LightGray,
Tomato, Green,…
• RGB: Con el formato rgb(red, green, blue). Podemos añadir transparencia añadiendo un cuarto valor, por
ejemplo, si queremos elegir el naranja con una transparencia del 50% usaremos rgb(255,165, 0, 0.5)
• HEX: Cada color tiene un código en la codificación hexadecimal, de la forma #rrggbb, por ejemplo el naranja
que hemos visto es #ffa500
Estos valores pueden ser aplicados a multitud de propiedades, como puede ser background-color, color, border,…
Mediante background-repeat podemos definir de qué forma se repite una imagen si no se ajusta al elemento
donde está contenida como fondo.
Mediante background-attachment definimos si la imagen debe poder ser desplazada al mover nuestro viewport, o
por el contrario debe ser fija.
También podemos añadir opacidad al elemento mediante la propiedad opacity, que puede tomar un valor de 0 a 1.
• vh y vw: Cada unidad de vh hace referencia a 1% de la altura del área visible de una web, y cada unidad de vw
El estilo puede tomar diferentes valores, como solid, dotted, double, dashed,…
También podemos definir si las esquinas de los bordes son redondeadas, utilizando la propiedad border-radius,
que toma un valor en unidades de longitud.
Las propiedades referentes al margen crean espacio fuera de los bordes alrededor del elemento.
Se puede acceder a las distintas partes de ambas propiedades mediante el sufijo top, bottom, right y left.
Para declarar diferentes valores para cada lado utilizando solo padding o margin,
Utilizamos la sintaxis “nombre: top right bottom left;”
Existen muchas otras propiedades, como vertical-align, text-indent, text-shadow, line-height, font-weight…
• block: La caja fuerza un salto de línea, se extiende para llenar todo el espacio disponible y las propiedades de la
caja la mantendrán alejada de los demás elementos.
• inline: No fuerza un salto de línea, no se le aplican las propiedades de ancho y alto, no mantiene alejadas otras
cajas de forma vertical.
• flex: Método que pueda ayudar a distribuir el espacio entre los elementos y mejorar las capacidades de
alineación. Los elementos se estructuran en filas o columnas, pudiendo contraerse y ajustando sus dimensiones y
su posición para llenar el espacio disponible
Modelo flexbox
El modelo flexbox, es un método que ayuda a distribuir el espacio entre los elementos de forma dinámica al
cambiar sus propiedades de tamaño. Tiene las siguientes propiedades:
• flex-direction: Puede tomar los valores row, row-reverse- column y column-reverse. Se utiliza para definir hacia
que dirección están colocados los elementos en el contenedor.
• flex-wrap: Para definir si nuestros elementos se colocan en una sola línea o puede ocupar alguna más si es
necesario. Puede tomar los valores wrap o nowrap.
• flex-grow: Con esta propiedad se define como crecerá el tamaño de un elemento respecto a los demás de forma
proporcionada. Si un elemento tiene flex-grow: 1 y otro flex-grow: 2, el segundo crecerá el doble que el primero.
• flex-shrink: Similar a flex-grow, pero al contraerse.
• flex-basis: Especifica la longitud inicial de un elemento dentro de un contenedor flexible.
• flex: Nos permite juntar las tres propiedades anteriores en un único paso, flex: flex-grow flex-shrink flex-basis.
• justify-content: Alinea los elementos cuando no utilizan el máximo espacio disponible en un contenedor
flexible de forma horizontal. Valores start, end, center, space-around, space-between, …
• align-items: Define de qué forma se alinean verticalmente los elementos dentro de un contenedor flexible.
Valores flex-end, center, flex-start, calc (exp),..
!important: Cuando se añade al valor de una propiedad esta palabra, se sobreescriben todos los estilos heredados
referentes a ella.
Pseudoclases
Las pseudoclases son palabras clave que se añaden a los selectores para definir un estilo en relación a un
determinado evento. Basta con añadir :pseudoclase después de selector para implementarlas. Algunas de las más
utilizadas son:
• :active: Representa un elemento (como un botón) que el usuario ha activado.
• :hover: Representa la interacción de señalar un elemento, sin necesidad de clickar.
• :link: Representa un elemento con una ruta externa que no se ha visitado.
• :visited: Representa un elemento con una ruta externa que se ha visitado.
• :focus: Representa un elemento que ha recibido el foco, como puede ser clickar en el campo de entrada de un
formulario.
• :enabled: Representa cualquier elemento habilitado, es decir, si puede ser activado o puede recibir un foco.
• :empty: Representa cualquier elemento sin hijos.
• :last-child: Representa el ultimo entre un grupo de elementos hermanos.
• :root: Representa el elemento raíz de un árbol que representa el documento.
Hoy en día es un concepto muy importante, y que debe ser tomado en cuenta en el diseño de cualquier aplicación
web.
La práctica debe ser entregada mediante Github, invitando al usuario RicardoCebrianGarcia a un repositorio creado
por el alumno, preferentemente actualizando el repositorio del ejercicio del bloque 1.