body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
}
p {
font-family: verdana;
font-size: 20px;
}
selector-de-elemento {
prop1: valor;
prop2: valor;
...
}
Los selectores son usados para “encontrar” o seleccionar elementos HTML basándose en su:
De esta forma asignarle a los mismos un estilo declarado a través de CSS.
Por nombre
p {
text-align: center;
color: red;
}
Se basa en el nombre del elemento. En este caso, en el nombre de la etiqueta.
Por ID
#p1 {
text-align: center;
color: red;
}
Utiliza el atributo id de un elemento HTML.
Este atributo debe ser único dentro de una misma página. Este selector es utilizado para seleccionar el único elemento existente con ese id.
Por clase
.center {
text-align: center;
color: red;
}
Por la propiedad class de un elemento.
Un elemento puede contener múltiples clases y las clases pueden ser usadas en múltiples elementos.
Múltiples clases
.center {
text-align: center;
}
.red {
color: red;
}
<!-- Centrado y en color rojo -->
<p class="center red">Texto</p>
<!-- Solamente centrado -->
<h1 class="center">Título</h1>
<!-- Solamente rojo -->
<h1 class="red">Título</h1>
Agrupar selectores
h1, h2, p {
text-align: center;
color: red;
}
Separados por coma
Combinación de selectores
div.clase {
/* estilo */
}
/* O también por ID */
div#id-unico {
/* estilo */
}
Jerarquía
.caja .parrafo {
background-color: green;
}
.caja > .parrafo {
background-color: green;
}
Especifica elemento padre e hijo
CSS Externo
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
CSS Interno
<head>
<style>
body {
background-color: linen;
}
h1 {
color: maroon;
margin-left: 40px;
}
</style>
</head>
Inline CSS
<h1 style="color:blue;margin-left:30px;">This is a heading</h1>
/* en un archivo css */
h1 {
text-align: center;
color: red;
}
/* en otro archivo */
h1 {
text-align: left;
}
El estilo aplicado dependerá del orden en que se importen estas hojas de estilos. Si se importan en el orden en que han sido declaradas, el título <h1> estará alineado a la izquierda y será de color rojo: el último text-align en aparecer es el que alinea el texto a la izquierda (sobreescribe) y el color rojo nunca fue sobreeescrito.
elemento {
/* Color */
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
color: rgba(255, 0, 0, 1);
/* Color de fondo */
background-color: green;
background-color: #00ff00;
background-color: rgb(0, 255, 0);
background-color: rgba(0, 255, 0, 0.5);
/* Background tiene más propiedades para definir el fondo */
background-image: url("bgdesert.jpg");
background-repeat: repeat-x; /* repeat-y, no-repeat */
background-position: right top;
background-attachment: fixed;
/* Muchas propiedades individuales puede resumirse en una sola */
background: #ffffff url("img_tree.png") no-repeat right top;
}
elemento {
/*
Alineación del texto.
No solamente sirve para alinear texto,
alinea cualquier elemento interno que el
elemento al que se le asigna esta propiedad tenga.
*/
text-align: left;
text-align: center;
text-align: right;
}
elemento {
/* Bordes */
border-style: dotted; /* dashed, solid, none, étc */
border-width: 5px; /* medium */
border-width: 2px 10px 4px 20px; /* para cada borde */
/* Se puede asignar cada borde indivudalmente */
border-top-style: dotted;
border-right-style: solid;
border-bottom-style: dotted;
border-left-style: solid;
border-color: pink;
/* En una sola propiedad (width, style, color) */
border: 1px solid black;
border: 2px dashed #556699;
}
elemento {
/*
Márgenes
Puede tomar valores como:
- auto: el navegador lo calcula
- length: px, em, cm, étc
- %: porcentual
- inherit: hereda el valor del elemento padre
*/
margin-top: 2px;
margin-right: 3rem;
margin-bottom: 5%;
margin-left: auto;
margin: 25px 50px 75px 100px; /* top, right, bottom, left */
margin: 25px 50px; /* 25px top y bottom, 50px left y right */
margin: 25px /* mismo valor para los 4 márgenes */
}
elemento {
/* Padding (similar a margin) */
padding-top: 50px; /* cm, %, em, rem, étc */
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
padding: 25px 50px 75px 100px;
}
elemento {
/* Ancho y alto del elemento */
width: 50% /* 50% (mitad del elemento contenedor), px, em, rem, auto, étc */
height: 25px /* %, em, rem, auto, étc */
/*
Ancho y alto máximo y mínimo que un elemento puede tomar.
Se puede especificar un ancho en % y
limitar su máximo valor a través de max-width.
*/
max-width: 150px;
max-height: 25%;
min-width: 150px;
min-height: 25%;
}
elemento {
/* Estilo de textos */
text-decoration: none; /* underline */
text-transform: uppercase; /* lowercase, capitalize */
text-indent: 15px;
letter-spacing: 3px;
line-height: 1.8;
word-spacing: 5px;
text-shadow: 3px 2px red; /* posición horizontal, posición vertical, color */
}
elemento {
/*
Fuentes de texto
Se pueden especificar múltiples fuentes separadas por comas
para el caso en que no se encuentren las primeras.
*/
font-family: "Times New Roman", Times, serif;
font-style: normal; /* italic, oblique */
font-size: 16px;
/*
La W3C recomienda usar los valores en em,
de esta forma la fuente se puede redimensionar
de acuerdo a las dimensiones del navegador y
la pantalla.
*/
font-size: 2.5em; /* 40px/16=2.5em */
font-size: 1.875em; /* 30px/16=1.875em */
font-size: 0.875em; /* 14px/16=0.875em */
font-weight: normal; /* bold, 500, 900 */
font-variant: normal /* small-caps */
}
/* sin visitar */
a {
color: blue;
text-decoration: none;
/* cualquier otra propiedad */
}
/* visitado */
a:visited {
color: green;
}
/* mouse por encima */
a:hover {
color: hotpink;
text-decoration: underline /* subrayado */
}
/* seleccionado */
a:active {
color: blue;
}
selector:estado {
/* estilo */
}
De forma general
Los elementos HTML son posicionados static por defecto.
Este posicionamiento no es afectado por las propiedades top, bottom, left, right.
Un elemento posicionado de esta forma siempre sigue el flujo normal de la página.
static
relative
fixed
absolute
sticky
/*
Lo siguiente posicionaría al elemento
a 25px de la parte superior
y al 50% de la parte izquierda.
*/
el {
position: absolute;
top: 25px;
left: 50%;
}
/*
Lo siguiente posiciona al elemento
en la parte inferior,
ya que estará "pegado" a esta.
*/
el {
position: absolute;
bottom: 0;
}
Si un elemento tiene más contenido del que puede mostrar, overflow permite definir el comportamiento de la barra de scroll.
Define si mostrar o no un scroll, horizontal o vertical, cuando el contenido excede el tamaño del contenedor.
/* No mostrará el scroll, el contenido será cortado */
el {
overflow: hidden;
}
/*
Mustra un scroll vertical u horizontal
según sea necesario
*/
el {
overflow: scroll; /* vertical Y horizontal, siempre */
overflow: auto; /* si es necesario, según el contenido */
overflow-x: scroll; /* sólo horizontal */
overflow-y: scroll; /* sólo vertical */
}
Define un elemento flotante y la posición en la que este "flotará".
Sus posibles valores son:
Es una biblioteca de estilos genéricos que puede ser usada para implementar diseños web.
Aportan una serie de utilidades que pueden ser aprovechadas frecuentemente en los distintos diseños web.
Supongamos que tenemos un sistema en donde una fila contiene 12 columnas y queremos insertar un elemento que ocupe 1/4 o un 25% de la fila. Entonces nuestro elemento ocupará 3 columnas de las 12 (12 columnas / 4).
<div class="row">
<div class="col-3">25% de las 12 columnas</div>
<div class="col-6">50% de las 12 columnas</div>
</div>
Flexbox es una característica medianamente moderna (CSS3), fue propuesto por la W3C en 2017.
Diseñar, alinear y distribuir el espacio entre items dentro de un contenedor, incluso cuando su tamaño es desconocido o dinámico.
Flexbox dota al contenedor con la habilidad de alterar el tamaño y posición de sus items hijos (internos)
Y feliz dolor de cabeza...
float: left;
· Boglioli, Alan
· Casas, Malena
· Garay, Gabriel
· Scarpa, Jerónimo