CSS es un lenguaje de estilos que se utiliza para darle estilo a un documento HTML. Define el aspecto visual de un documento HTML.
color
color del textobackground-color
color de fondofont-family
tipo de fuentefont-size
tamaño de la fuentefont-weight
grosor de la fuentemargin
margenpadding
rellenoborder
bordewidth
anchoheight
altodisplay
tipo de display (block
, inline
, inline-block
, none
)position
posicion (static
, relative
, absolute
, fixed
)
top
posicion superiorright
posicion derechabottom
posicion inferiorleft
posicion izquierdafloat
flotar (left
, right
, none
)clear
limpiar flotantes (left
, right
, both
, none
)text-align
alineacion del texto (left
, right
, center
, justify
)text-decoration
decoracion del texto (none
, underline
, overline
, line-through
)text-transform
transformacion del texto (uppercase
, lowercase
, capitalize
)text-indent
sangria del textotext-shadow
sombra del textobox-shadow
sombra del elementoopacity
opacidadvisibility
visibilidad (visible
, hidden
, collapse
)overflow
desbordamiento (visible
, hidden
, scroll
, auto
)z-index
indice de profundidadLos selectores se utilizan para seleccionar los elementos HTML a los que se les aplicará el estilo.
Elemento
: Selecciona todos los elementos de un tipo especifico.p {
color: red;
}
ID
: Selecciona un elemento con un ID especifico.<p id="demo">Este es un parrafo</p>
#demo {
color: red;
}
Clase
: Selecciona todos los elementos con una clase especifica.<p class="demo">Este es un parrafo</p>
.demo {
color: red;
}
Universal
: Selecciona todos los elementos de un documento.* {
color: red;
}
Un selector universal se utiliza para resetear los estilos de un documento.
* {
margin: 0;
padding: 0;
}
Grupo
: Selecciona todos los elementos que coincidan con uno o mas selectores.p, h1, h2 {
color: red;
}
Codigos de colores: nombres, hexadecimales, abreviacion hexadecimal, rgb, rgba, hsl, hsla
red
#ff0000 #f00 rgb(255, 0, 0) rgba(255, 0, 0, 1) hsl(0, 100%, 50%) hsla(0, 100%, 50%, 1)green
#00ff00 #0f0 rgb(0, 255, 0) rgba(0, 255, 0, 1) hsl(120, 100%, 50%) hsla(120, 100%, 50%, 1)blue
#0000ff #00f rgb(0, 0, 255) rgba(0, 0, 255, 1) hsl(240, 100%, 50%) hsla(240, 100%, 50%, 1)yellow
#ffff00 #ff0 rgb(255, 255, 0) rgba(255, 255, 0, 1) hsl(60, 100%, 50%) hsla(60, 100%, 50%, 1)black
#000000 #000 rgb(0, 0, 0) rgba(0, 0, 0, 1) hsl(0, 0%, 0%) hsla(0, 0%, 0%, 1)white
#ffffff #fff rgb(255, 255, 255) rgba(255, 255, 255, 1) hsl(0, 0%, 100%) hsla(0, 0%, 100%, 1)gray
#808080 #808 rgb(128, 128, 128) rgba(128, 128, 128, 1) hsl(0, 0%, 50%) hsla(0, 0%, 50%, 1)orange
#ffa500 #ffa500 rgb(255, 165, 0) rgba(255, 165, 0, 1) hsl(39, 100%, 50%) hsla(39, 100%, 50%, 1)purple
#800080 #800080 rgb(128, 0, 128) rgba(128, 0, 128, 1) hsl(300, 100%, 25%) hsla(300, 100%, 25%, 1)brown
#a52a2a #a52a2a rgb(165, 42, 42) rgba(165, 42, 42, 1) hsl(0, 59%, 40%) hsla(0, 59%, 40%, 1)pink
#ffc0cb #ffc0cb rgb(255, 192, 203) rgba(255, 192, 203, 1) hsl(350, 100%, 88%) hsla(350, 100%, 88%, 1)cyan
#00ffff #0ff rgb(0, 255, 255) rgba(0, 255, 255, 1) hsl(180, 100%, 50%) hsla(180, 100%, 50%, 1)magenta
#ff00ff #f0f rgb(255, 0, 255) rgba(255, 0, 255, 1) hsl(300, 100%, 50%) hsla(300, 100%, 50%, 1)silver
#c0c0c0 #c0c0c0 rgb(192, 192, 192) rgba(192, 192, 192, 1) hsl(0, 0%, 75%) hsla(0, 0%, 75%, 1)gold
#ffd700 #ffd700 rgb(255, 215, 0) rgba(255, 215, 0, 1) hsl(51, 100%, 50%) hsla(51, 100%, 50%, 1)maroon
#800000 #800000 rgb(128, 0, 0) rgba(128, 0, 0, 1) hsl(0, 100%, 25%) hsla(0, 100%, 25%, 1)olive
#808000 #808000 rgb(128, 128, 0) rgba(128, 128, 0, 1) hsl(60, 100%, 25%) hsla(60, 100%, 25%, 1)lime
#00ff00 #0f0 rgb(0, 255, 0) rgba(0, 255, 0, 1) hsl(120, 100%, 50%) hsla(120, 100%, 50%, 1)teal
#008080 #008080 rgb(0, 128, 128) rgba(0, 128, 128, 1) hsl(180, 100%, 25%) hsla(180, 100%, 25%, 1)navy
#000080 #000080 rgb(0, 0, 128) rgba(0, 0, 128, 1) hsl(240, 100%, 25%) hsla(240, 100%, 25%, 1)indigo
#4b0082 #4b0082 rgb(75, 0, 130) rgba(75, 0, 130, 1) hsl(275, 100%, 25%) hsla(275, 100%, 25%, 1)violet
#ee82ee #ee82ee rgb(238, 130, 238) rgba(238, 130, 238, 1) hsl(300, 76%, 72%) hsla(300, 76%, 72%, 1)turquoise
#40e0d0 #40e0d0 rgb(64, 224, 208) rgba(64, 224, 208, 1) hsl(174, 72%, 56%) hsla(174, 72%, 56%, 1)salmon
#fa8072 #fa8072 rgb(250, 128, 114) rgba(250, 128, 114, 1) hsl(6, 93%, 71%) hsla(6, 93%, 71%, 1)plum
#dda0dd #dda0dd rgb(221, 160, 221) rgba(221, 160, 221, 1) hsl(300, 47%, 76%) hsla(300, 47%, 76%, 1)Usualmente los colores se representan en hexadecimal en numeros en base 16 desde el 00000 al FFFFFF, donde cada par de numeros representa un color, el primero es el rojo, el segundo es el verde y el tercero es el azul. Tambien se pueden especificar los colores en RGB, donde cada valor es un numero entre 0 y 255, donde 0 es el minimo y 255 es el maximo. En RGBA la transparencia se puede especificar con un valor entre 0 y 1, donde 0 es transparente y 1 es opaco.
body {
background-color: #ff0000;
background-color: rgba(255, 0, 0, 1);
}
body {
background-color: rgb(255, 0, 0);
}
body {
background-color: rgba(255, 0, 0, 0.3);
}
Las unidades relativas son unidades que se basan en otras unidades, por ejemplo, en el caso de las unidades de medida de texto, el tamaño de la fuente se basa en el tamaño de la fuente del elemento padre.
em
- Unidad relativa de medida de texto, el tamaño de la fuente se basa en el tamaño de la fuente del elemento padre.rem
- Unidad relativa de medida de texto, el tamaño de la fuente se basa en el tamaño de la fuente del elemento raiz.vw
- Unidad relativa de medida de ancho, el tamaño se basa en el ancho de la ventana.vh
- Unidad relativa de medida de alto, el tamaño se basa en el alto de la ventana.vmin
- Unidad relativa de medida de ancho y alto, el tamaño se basa en el ancho o alto de la ventana, el que sea menor.vmax
- Unidad relativa de medida de ancho y alto, el tamaño se basa en el ancho o alto de la ventana, el que sea mayor.%
- Unidad relativa de medida de ancho y alto, el tamaño se basa en un porcentaje del ancho o alto del elemento padre.Las unidades absolutas son unidades que no se basan en otras unidades, por ejemplo, en el caso de las unidades de medida de texto, el tamaño de la fuente no se basa en el tamaño de la fuente del elemento padre.
px
- Unidad absoluta de medida de texto, el tamaño de la fuente no se basa en el tamaño de la fuente del elemento padre.Las fuentes son los tipos de letra que se pueden usar en un documento, por ejemplo, Arial, Times New Roman, Verdana, etc.
Las familias de fuentes son un conjunto de fuentes que se pueden usar en un documento, por ejemplo, Arial, Times New Roman, Verdana, etc.
Las familias de fuentes se pueden especificar con la propiedad font-family
.
body {
font-family: Arial, Helvetica, sans-serif;
}
Los tipos de fuentes son los estilos de las fuentes, por ejemplo, normal, cursiva, negrita, etc.
body {
font-style: italic;
}
El tamaño de las fuentes se puede especificar en pixeles o en unidades relativas.
body {
font-size: 1em;
}
h1 {
font-size: 2em;
}
Los estilos de fuentes se pueden especificar con las propiedades font-style
y font-weight
.
body {
font-style: italic;
font-weight: bold;
}
Las fuentes combinadas se pueden especificar con la propiedad font
.
body {
font: italic bold 1em Arial, Helvetica, sans-serif;
}
color
: Define el color del texto.p {
color: red;
}
La alineación de texto se puede especificar con la propiedad text-align
.
body {
text-align: center;
}
El espaciado de texto se puede especificar con la propiedad letter-spacing
.
body {
letter-spacing: 2px;
}
La altura de texto se puede especificar con la propiedad line-height
.
body {
line-height: 1.5;
}
La transformación de texto se puede especificar con la propiedad text-transform
.
uppercase
- Convierte el texto a mayusculas.lowercase
- Convierte el texto a minusculas.capitalize
- Convierte el texto a mayusculas y minusculas.body {
text-transform: uppercase;
}
La decoración de texto se puede especificar con la propiedad text-decoration
.
none
- No hay decoración.underline
- Subrayado.overline
- Linea superior.line-through
- Linea tachada.body {
text-decoration: underline;
}
El tamaño de los elementos se puede especificar con las propiedades width
y height
.
body {
width: 100%;
height: 100%;
}
body {
width: 100px;
height: 100px;
}
<meta viewport="width=device-width, initial-scale=1.0">
body {
width: 100vw;
height: 100vh;
}
body {
width: 100vmin;
height: 100vmin;
}
body {
width: 100vmax;
height: 100vmax;
}
El espaciado esta definido por el margen, el relleno y el borde de un elemento.
margin
Los margenes son los espacios entre los bordes de un elemento y los bordes de otros elementos.body {
margin: 1em;
}
body {
margin: 1em 2em;
}
body {
margin: 1em 2em 3em 4em;
}
body {
margin: 1em 2em 3em;
}
padding
El relleno es el espacio entre el borde de un elemento y el contenido de un elemento.body {
padding: 1em;
}
body {
padding: 1em 2em;
}
body {
padding: 1em 2em 3em 4em;
}
body {
padding: 1em 2em 3em;
}
border
El borde es el espacio entre el borde de un elemento y el contenido de un elemento.border
: Define el ancho, el estilo y el color de los bordes.border-width
: Define el ancho de los bordes.border-style
: Define el estilo de los bordes.
none
- No hay borde.hidden
- Borde oculto.dotted
- Borde punteado.dashed
- Borde discontinuo.solid
- Borde sólido.double
- Borde doble.groove
- Borde con relieve.ridge
- Borde con relieve inverso.border-color
: Define el color de los bordes.border-radius
: Define el radio de los bordes.div {
border: 1px solid red;
border-radius: 1em;
}
body {
border: 1px solid #000;
}
body {
border: 1px solid #000;
border-radius: 1em;
}
body {
border: 1px solid #000;
border-radius: 1em;
box-shadow: 1px 1px 1px 1px #000;
}
El posicionamiento define la posición de un elemento en la página, por ejemplo, si un elemento esta arriba, abajo, a la izquierda o a la derecha de otro elemento.
El posicionamiento estático es el posicionamiento por defecto de los elementos, los elementos se posicionan en el flujo normal del documento.
El posicionamiento relativo es el posicionamiento de los elementos que se basa en el posicionamiento estático, los elementos se posicionan en el flujo normal del documento.
body {
position: relative;
top: 1em;
left: 1em;
}
El posicionamiento absoluto es el posicionamiento de los elementos que se basa en el posicionamiento relativo, los elementos se posicionan en el flujo normal del documento.
body {
position: absolute;
top: 1em;
left: 1em;
}
Las imagenes se pueden especificar con la propiedad background-image
.
El color de fondo se puede especificar con la propiedad background-color
.
El tamaño de fondo se puede especificar con la propiedad background-size
.
La posición de fondo se puede especificar con la propiedad background-position
.
La repetición de fondo se puede especificar con la propiedad background-repeat
.
body {
background-image: url("https://picsum.photos/200/300");
}
body {
background-image: url("https://picsum.photos/200/300");
background-repeat: no-repeat;
background-size: cover;
}
body {
background-image: url("https://picsum.photos/200/300");
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
background-color
: Define el color de fondo.p {
background-color: green;
}
background-image
: Define una imagen de fondo.div {
background-image: url("img_tree.png");
}
background-repeat
: Define si la imagen de fondo se repite o no.<div class="container-x></div>
.container-x {
height:200px;
width:200px;
background-color:pink;
background-image:url("https://picsum.photos/100/100")
}
background-attachment
: Define si la imagen de fondo es fija o se mueve con el contenido.body {
background-image: url("img_tree.png");
background-attachment: fixed;
}
Prueba agregar uno a uno los estilos css para ver como cambia el resultado.
<div class="container-x"></div>
.container-x {
height:200px;
width:200px;
background-color:pink;
background-image:url("https://picsum.photos/100/100");
backgound-repeat:no-repeat;
background-size:cover;
}
El display define si un elemento es un bloque o un elemento en línea.
Los elementos de bloque son elementos que se muestran en una nueva línea, por ejemplo, <div>
, <p>
, <h1>
, <form>
, etc.
Los elementos en línea son elementos que se muestran en la misma línea, por ejemplo, <span>
, <a>
, <img>
, etc.
Los elementos ocultos no se muestran en la página.
body {
display: none;
}
z-index
: Define el orden de los elementos. El elemento con el mayor valor de z-index
se muestra por encima de los demás elementos.body {
z-index: 1;
}
El desbordamiento define si un elemento se desborda o no.
overflow
: Define si un elemento se desborda o no.
visible
- El contenido se desborda.hidden
- El contenido no se desborda.scroll
- El contenido se desborda y se muestra una barra de desplazamiento.auto
- El contenido se desborda y se muestra una barra de desplazamiento si es necesario.body {
overflow: hidden;
}
Las transformaciones una transformacion al elemento
transform
: Define una transformacion al elemento.
translate
- Desplaza el elemento.scale
- Cambia el tamaño del elemento.rotate
- Rota el elemento.skew
- Inclina el elemento.
```css
body {
transform: rotate(45deg);
}
Las pseudoclases hover definen el estado de un elemento cuando el mouse esta sobre el elemento y son muy populares para crear efectos de transición en hipervinculos y botones.
hover
a:hover {
color: red;
}
<a href="#" class="btn btn-primary">Primary</a>
.btn {
padding: 1em;
border-radius: 1em;
transition: 0.5s ease-in-out;
}
.btn-primary {
background-color: #000;
color: #fff;
}
.btn-primary:hover {
background-color: #fff;
color: #000;
}
Un ejemplo de animacion simple utilizando @keyframes
y animation
.
```css
body {
animation: mymove 5s infinite;
}
@keyframes mymove {
from {
left: 0px;
}
to {
left: 200px;
}
}
float
: Define la posición de un elemento flotante.clear
: Define si un elemento flotante debe estar a la izquierda, a la derecha o a ambos lados.visibility
: Define si un elemento debe ser visible o no.Algunos frameworks CSS que pueden ser de utilidad.