CSS Dalto
CSS Dalto
CSS Dalto
De tipo Descendiente
h1 { h2 p {
color: grey; color:violet;
} }
Clases Pseudo-clases
.h2-class { button:hover {
color: blue; color:yellow;
} }
ID - Identificador Múltiple
#element {
color: red; h1, h2, h3 {
} color: grey;
}
Solo usar 1 ID para 1
elemento.
Ejemplo:
PROPIEDAD ESPECIAL
<div class="form">
<input type="text" class="form__input--active"> Elemento diferente
<input type="text" class="form__input">
<input type="text" class="form__input">
Elementos iguales
<input type="text" class="form__input">
<input type="text" class="form__input">
</div>
POR ORDEN
<div class="text">
<p class="text__p">
<h2 class="text__p-h2">
<h3 class="text__p-h2-h3">
</h3>
</h2>
<p>
</div>
Fijas:
• Px
• Pt
• Cm
• Mm
• Porcentaje
10px, 20px
(eje y, eje x)
margin 10px, 20px, 30px, 40px Shorthand property (acortable)
(top, right, bottom, left)
10px, 20px
(eje y, eje x)
height 32px
width 48px
Box-sizing Border-box - content-box • Border-box: El tamaño total de la caja incluiria el
tamaño del borde.
• Content-box: Lo contrario, el borde se le añade al
tamaño total, entre otras cosas.
Text-align center
border 4px solid blue Shorthand property
(tamaño, estilo, color)
Border-radius 10% - 50% etc Esquinas redondeadas
Border-style Solid - dashed - double - inset - outset - groove,
ridge - etc
Box-shadow 1px 2px 15px 0 black
(eje x, eje y, desenfoque, borde, color)
text-shadow 1px 2px 15px black
(eje x, eje y, desenfoque, color)
transform rotate(90deg)
opacity 0.5 = 50%
transition all 1s
Relative
El objeto adquiere 4 propiedades nuevas:
Top, right, bottom y left.
Cada una sirve para que el elemento se mueva determinada distancia hacia cierta dirección.
A partir del elemento anterior.
Las propiedades TOP y LEFT son las que tienen más importancia. Si están presentes, right y bottom
se ignora.
Por ejemplo:
Elemento {
Top: 20px
Bottom: -30px
}
Es decir, le puedes especificar donde quieres que esté con más precisión
Absolute
Inicialmente cada caja tiene un espacio reservado. (para que sea visible)
Si ponemos una caja con position absolute, la caja que esté por delante de ella tomará su lugar y se
sobrepondrá, aunque la caja siga estando allí.
Fixed
Igual que absolute, pero la caja queda fija con el scroll.
Sticky
Su función es definir a partir de qué punto la caja va a quedar fija.
Por ejemplo:
Caja {
Position: sticky;
Top: -50px;
}
• El elemento que tenga mayor valor, será el que esté posicionado más adelante y así sucesivamente.
• Por el flujo de html, inicialmente el objeto que es declarado al último es el que está posicionado más
adelante, pero esto es modificable con Z-Index
Se recomienda colocar los z-index de 100 en 100 para dejar espacios en caso de que se quieran agregar
más en otros elementos.
Su función es brindar distintas alternativas para gestionar la situación cuando un texto sobresale de una caja.
Propiedades:
• Inherit (por defecto) - Deja que el texto sobresalga
• Auto - Si es necesario, aparece la herramienta para scrollear. Ya sea eje X o eje Y.
• Scroll - Muestra forzadamente la herramienta scroll.
• Hidden - Oculta forzadamente la herramienta scroll.
Ejemplo:
.caja1 {
overflow: auto
}
.caja2 {
overflow-x: scroll
overflow-y: hidden
}
Ejemplo:
* {
float: right
}
Su uso principal radica básicamente en hacer que el texto envuelva a una imagen.
Por ejemplo:
.texto::first-line {
Color: blue;
}
(La primera línea se pinta de determinado color, independientemente del tamaño de la ventana)
Before: After:
Se introduce un texto no seleccionable ANTES del texto original Se introduce un texto no seleccionable DESPUÉS del texto original
.texto::before { .texto::after {
content: "Hola "; content: "cómo estás";
color: blue; color: blue;
} }
• Se aplica a un elemento.
• Escucha un evento.
:hover Cuando pasas el mouse por encima del elemento Funciona en cualquier elemento
:link Cuando un link NO ha sido visitado (etiqueta a)
:visited Cuando un link SI ha sido visitado (etiqueta a) En espeficidad está entre las clases y los ids
:active Cuando se mantiene el clic en un elemento
:focus Cuando se le da clic a un INPUT (mantienes seleccionado el elemento),
cuando le das otro clic se revierten los cambios
:lang Muestra algo según el idioma determinado por el navegador
:first-child Selecciona el primer elemento de un grupo de elementos iguales.
:nth-child(n) Selecciona un elemento en específico de un grupo de elementos Ej: containers:nth-child(2) para
iguales. seleccionar al segundo.
HTML:
Lang
<p lang="en">
:lang(en) { Hello, how are you?
background: red; </p>
}
<p lang="es">
:lang(es) { Hola, ¿qué tal?
background: yellow; </p>
}
• Inicialmente, si le proporcionamos solo el width a una imagen cuadrada, esta se agrandará proporcionalmente,
porque la caja se agranda.
Ejemplo:
* {
object-fit: contain;
}
Propiedades:
Object-position
Tira la imagen para determinado lado o distancia. (top, right, bottom, left)
Ejemplos:
* { * {
object-position: left; object-position: 2em;
} }
Ejemplo:
* {
cursor: pointer;
}
• Usar colores en formatos específicos tiene una ventaja por sobre utilizar los
colores predefinidos con nombres.
• Ya que, los distintos navegadores pueden interpretar dichos colores con una
tonalidad diferente a la que queremos.
RGB
RGB = Red Green Blue
RGBA
Igual que RGB, pero se le añade el valor de la opacidad (0 al 1)
A = alpha
HEX
Sistema de 16 unidades
Ejemplo:
#FF00FF
https://htmlcolorcodes.com
Linear-gradient
Parámetros:
Keywords grados:
• to top
• to bottom
• to left
• to right
Ejemplos:
* {
background: linear-gradient(to left, red, blue)
}
* {
background: linear-gradient(45deg, #fff 50%, #000 75%)
}
Radial-gradient
Parámetros:
* {
background: radial-gradient(circle to left, red, blue)
}
Paso 1
Se crearon 2 navs, uno para resolución de escritorio y el otro responsive.
Paso 2
Pegar en el head del HTML el siguiente código:
Paso 3
Añadir los íconos mediante las clases, por ejemplo:
Paso 4
En CSS:
Se definen las
propiedades del nav
Paso 5
Se declara el evento en el cual, si el ancho de la
resolución es menor a 500px:
• Los hijos de un flex container son flex items, pero no sus nietos
• Si hay un desbalance en la cantidad de texto en cada ítem: No cambian las alturas ni los
widths, se ajusta el contenido
Flex-direction
Nos permite cambiar la dirección del main-axis
Valores:
Flex-wrap
• Mantiene el width o height de las cajas en una resolución menor.
• Pone las cajas una por debajo de otra.
Valores:
Flex-flow
Shorthand de flex-direction y flex-wrap
Ejemplo:
.flex-container {
flex-flow: column wrap;
}
Justify-content
Valores:
Align-items
Se aplica cuando solo hay 1 línea de flex-items
Valores:
Align-content
Se aplica cuando se trabaja con varias líneas de flex-items.
Al igual que el flex container, los flex items también cuentan con distintas propiedades reservadas.
Align-self
Determina la alineación en el cross-axis de determinada caja de manera independiente.
Margin
El funcionamiento del margin en las cajas flexibles es particularmente diferente al de las cajas normales.
Por ejemplo, si le proporcionamos un margin-left: auto, la caja se va completamente hacia la derecha, y viceversa.
Flex-grow
Reparte el espacio sobrante entre determinada caja o cajas. Es decir, los flex-items elegidos se van a estirar
proporcionalmente hasta ocupar todo el ancho de la pantalla en partes iguales, y si se reduce la resolución, se
quedan hasta el min-width.
Es recomendable aplicar un flex-wrap: wrap, para que las cajas se coloquen una debajo se otra cuando se llegue a
determinada resolución. (min-widths sumados de cada caja + margins)
.flex-item {
flex-grow: 1;
}
Flex-basis
Similar al width. En términos de especificidad, el flex-basis está por encima del width.
Al tener más relevancia en los rangos jerárquicos del entorno de flex, se recomienda usarlo por sobre width, ya que
cumplen la misma función.
Flex-shrink
Determina qué cantidad de espacio va a ceder cierto flex-item cuando tenemos una resolución inferior a la deseada,
en términos relativos (proporciones).
Por ejemplo:
• Hay 2 cajas con flex-shrink: 2, y hay 1 caja con flex-shrink: 1
• Pero queremos que todas las cajas midan 300px en algún punto
0 = No cede espacio.
Flex (shorthand)
Agrupa las tres propiedades anteriores: flex-grow, flex-shrink y flex-basis.
Por ejemplo:
.flex-item {
flex: 1, 2, 300px;
}
Order
Similar al z-index. Es decir, el flex-item que tenga mayor valor será el que esté posicionado más hacia la dirección en
la que apunta el main axis. (Por defecto hacia la derecha, pero también podría ser hacia la izquierda, arriba o abajo,
en caso de que esté estipulado así).
Al igual que en el z-index, se recomienda aumentar los valores por cada ítem de 50 en 50 o de 100 en 100 para dejar
espacios en el aire, en el caso de que se quieran agregar más en otros elementos.
Grid = grilla
Una caja grid funciona a través de celdas, rows y columns (tracks), areas, etc.
• Los hijos directos del Grid-container son Grid-items, sus nietos no.
Ejemplo:
.grid-container {
display: grid;
}
Grid container
Es la totalidad del contenedor.
Grid item
Los hijos directos de un grid-container. No son necesariamente celdas (grid-cell).
Grid cell
Cada una de las celdas, es decir, las divisiones que se forman dentro del container.
Grid track
Existen dos tipos: column y row.
Grid area
Determinadas áreas dentro del contenedor que seleccionamos para darles
propiedades en específico.
Grid line
Existen dos tipos: column-line y row-line
Column-lines = Columns + 1
Row-lines = Rows + 1
Grid-template-rows
Grid-template-columns
Determina la cantidad de filas. Como parámetros se colocan las medidas
para cada fila. (ya sean medidas exactas o relativas) Comparte las mismas características que Grid-template-rows.
.grid-container {
grid-template-rows: 150px 150px 150px;
}
1fr = 1/total
.grid-container {
grid-template-rows: 1fr 2fr 1fr;
}
Grid-gap Grid-column-gap
Propiedad shorthand. Determina la distancia entre una celda y la otras Determina la distancia entre las columnas.
respectivamente.
.grid-container {
grid-gap: 10px;
}
Grid-column Grid-row
Define la cantidad de celdas que va a ocupar un grid-item. Aplica lo mismo que para la propiedad grid-column.
Ejemplo:
.grid-container:first-child {
grid-column: 1 / 3;
}
Esto genera por "inercia", que las demás celdas se empujen sucesivamente,
y si fuese el caso se crearían nuevas filas para incluir a los elementos
desplazados.
Ejemplo 2:
.grid-container:first-child {
grid-column: 1 / span 2;
}
Repeat()
Ejemplo:
3 columnas de 120 px
Se entiende como Grid Implícito a aquellas celdas "sobrantes", que no han sido
declaradas expresamente en el código.
Además, los elementos que formen parte del Grid Implícito cuentan con algunas
propiedades particulares.
Propiedades:
Grid-auto-rows
Su función es gestionar y definir el tamaño de las celdas que eventualmente vayan a
formar parte del Grid Implícito.
En este caso, le decimos al container que en caso de existir de celdas sobrantes, estas
pasarán a formar nuevas FILAS y no columnas.
Ejemplo:
.grid-container {
grid-auto-rows: 150px;
}
Grid-auto-columns
Mismo funcionamiento que Grid-auto-rows, pero en caso de existir celdas sobrantes,
estas pasarán a formar nuevas COLUMNAS y no filas.
Grid-auto-flow
Gestiona los espacios vacíos en la grilla en alguna situación en particular que genere
esto.
Valores:
Son propiedades que le añaden ciertas funcionalidades con respecto a la distribución de las
celdas en la grilla.
• Por defecto, el ancho mínimo de una celda radica en el ancho de la palabra más larga. (En
cualquier unidad de medida, ya sea exacta o relativa)
Propiedades:
Min-content
El ancho de la celda se adapta a la cantidad mínima de contenido (sin cortar las palabras), es
decir, hasta el final de la palabra más larga.
Ejemplo:
.grid-container {
grid-template-rows: repeat(3, min-content);
}
Max-content
El ancho de la celda se adapta a la cantidad máxima de contenido. (Todo el texto de corrido en
1 línea)
Minmax()
Determina la medida mínima y máxima de ciertas filas o columnas.
Ejemplos:
.grid-container {
grid-template-rows: repeat(3, minmax(100px, 1fr));
}
.grid-container {
grid-template-rows: repeat(3, minmax(min-content, max-content));
}
Auto-fill
Calcula la cantidad máxima de columnas o filas posibles con determinadas propiedades.
Ejemplo:
.grid-container {
grid-template-rows: repeat(auto-fill, minmax(100px, 1fr));
}
Es decir, la cantidad máxima de columnas posibles con mínimo 100px y 1fr máximo. (Puede
Auto-fit
Ajusta las columnas para ocupar todo el espacio disponible, sin dejar espacios vacíos.
Propiedades:
_____________________________________ITEMS_____________________________________
Justify-items
Align-items
Similar al justify-content de Flexbox.
Alínea los ÍTEMS verticalmente
Alínea los ÍTEMS horizontalmente
center Alínea las cajas en el centro del contenedor.
center Centra las cajas y el texto
start Alínea las cajas para ARRIBA en el contenedor
start Alínea las cajas para la IZQUIERDA del contenedor y centra el
end Alínea las cajas para ABAJO en el contenedor
texto
end Alínea las cajas para la DERECHA del contenedor y centra el
texto
Ejemplo:
.grid-container {
justify-items: center;
}
___________________________________CONTENT___________________________________
Justify-content Align-content
Alínea las COLUMNAS o FILAS horizontalmente
Alínea las COLUMNAS o FILAS verticalmente
Align-self
Alínea individualmente un Grid-item en el EJE Y (verticalmente):
Propiedades:
start Alínea las cajas lo máximo posible para ARRIBA (hasta que se
tope con el margin de otra caja)
end Alínea las cajas lo máximo posible para ABAJO (hasta que se
tope con el margin de otra caja)
Ejemplo:
.grid-item:nth-child(8) {
align-self: start;
}
Justify-self
Alínea individualmente un Grid-item en el EJE X (horizontalmente):
Propiedades:
start Alínea las cajas lo máximo posible para la IZQUIERDA (hasta que
se tope con el margin de otra caja)
end Alínea las cajas lo máximo posible para la DERECHA (hasta que
se tope con el margin de otra caja)
Place-self
Shorthand de Align-self y Justify-self
Parámetros:
1. Align-self
2. Justify-self
Ejemplo:
.grid-item:nth-child(8) {
place-self: start end;
}
Stretch
(default)
Order
Reemplaza la posición de determinado Grid-item por otro en específico.
Ejemplo:
.grid-item:nth-child(2) {
order: 3;
}
Grid-template-areas
Se asigna la distribución de las áreas en relación a lo que se estipule en el texto.
Es decir:
El área "aside" tendrá 1/3 del ancho y el área "main" tendrá 2/3.
Ejemplo:
.grid-container {
grid-template-areas:
.grid-main {
grid-area: main;
}
.grid-aside {
grid-area: aside;
}
.grid-footer {
grid-area: footer;
}
Las Grid Lines son aquellas líneas divisoras que se ubican entre las columnas y filas.
• Column-lines = Columns + 1
• Row-lines = Rows + 1
.grid-container {
grid-template-rows:
[f-line]
150px
[s-line]
150px
[t-line]
150px
[h-line]
;
grid-template-columns: repeat(3, 150px);
}
.grid-item:nth-child(2) {
grid-row: s-line / h-line;
}
(El segundo Grid-item va a ocupar los espacios desde la segunda hasta la cuarta línea
divisora)
Grid-template
Shorthand de Grid-template-columns y Grid-template-rows.
Ejemplo:
.grid-container {
grid-template: repeat(3, 150px) / repeat(4, 200px);
}
• Se trabaja con:
• @Media = Condicional que consulta y valida las características del dispositivo que accede
a la página:
• Operadores: AND, OR
Desktop First
Empezar la web orientada a resoluciones grandes, por ejemplo monitores normales
(16:9) o monitores ultra-wide (21:9), y posteriormente adaptarla a resoluciones
menores.
Content First
Estructurar la web en base al contenido, independientemente de si va a estar orientada
para resoluciones grandes o pequeñas.
1. Regla
2. Tipo
3. Condicional
4. (Parámetro : valor)
Ejemplos:
* { <body>
font-family: sans-serif; <div class="content">
} <header class="header">Header</header>
.content { <article class="main">Main</article>
display: flex; <aside class="aside">Aside</aside>
flex-direction: column; <footer class="footer">Footer</footer>
height: 100vh; </div>
} </body>
.header, .main, .aside, .footer {
padding: 20px;
}
.header {
background-color: lightblue;
flex-basis: 60px;
}
.main {
background-color: slateblue;
flex-basis: 300px;
flex-grow: 2;
flex-shrink: 0;
}
.aside {
background-color: darkslateblue;
flex-basis: 200px;
flex-grow: 1;
flex-shrink: 0;
}
.footer {
background-color: violet;
flex-grow: 1;
}
* { <body>
font-family: sans-serif; <div class="content">
} <header class="header">Header</header>
.content { <article class="main">Main</article>
display: flex; <aside class="aside">Aside</aside>
flex-direction: column; <footer class="footer">Footer</footer>
height: 100vh; </div>
} </body>
.header, .main, .aside, .footer {
padding: 20px;
}
.header {
background-color: lightblue;
flex-basis: 60px;
}
.main {
background-color: slateblue;
flex-basis: 300px;
flex-grow: 2;
flex-shrink: 0;
}
.aside {
background-color: darkslateblue;
flex-basis: 200px;
flex-grow: 1;
flex-shrink: 0;
}
.footer {
background-color: violet;
flex-grow: 1;
}
Propiedad que permite realizar cambios graduales en los estilos de los elementos, en
determinado lapso de tiempo y con ciertas características.
Transition-property
Determina la propiedad en la cual se aplicará la transición.
Sintaxis:
Ejemplo:
.caja {
background: red;
transition-property: background;
}
.caja:hover {
background: slateblue;
}
Transition-duration
Define la duración de la transición.
Ejemplo:
.caja {
background: red;
transition-duration: 1.0s;
}
Transition-delay
Determina la cantidad de tiempo que va a transcurrir antes de que se ejecute la
transición.
.caja {
background: red;
transition-delay: 2.5s;
}
Transition-timing-function
Curva del tiempo en la que va a ejecutarse la transición. (Cambios en la aceleración y
desaceleración)
Ease = Retraso
Valores:
Las animaciones permiten realizar efectos visuales en base a una secuencia de estilos.
• Para declarar los keyframes de la secuencia, se trabaja con from / to (2 keyframes) o con
porcentajes (múltiples keyframes).
Ejemplos:
From / to Porcentajes
.caja { .caja {
animation-name: desplazarse; animation-name: desplazarse;
animation-duration: 1s; animation-duration: 1s;
} }
Animation-timing-function
Curva del tiempo en la que va a ejecutarse la animación. (Cambios en la aceleración y desaceleración)
Animation-iteration-count
Determina la cantidad de veces que se va a repetir la animación.
Ejemplos:
1) 2)
.caja { .caja {
animation-iteration-count: 3; animation-iteration-count: infinite;
} }
Animation-direction
Cambia el orden de la secuencia de la animación.
Valores:
Ejemplos:
.caja {
animation-direction: normal;
}
Animation-fill-mode
Define cuál va a ser el modo final de la animación.
none -
• Recurso: https://cubic-bezier.com
Ejemplo:
.caja {
animation-timing-function: cubic-bezier(0.4, 0.2, 0.3, 1.2);
}
Ejemplo:
.caja {
transform:
translate(50px, -70%);
rotate(30deg);
}
________________________________TRANSLATE________________________________
Translate()
TranslateX() TranslateY()
Desplaza a los elementos hacia cierta dirección.
Desplaza a los elementos en el eje X (horizontal) Desplaza a los elementos en el eje Y (vertical)
Shorthand de TranslateX y TranslateY.
Ejemplo: Ejemplo:
• Se recomienda utilizarlo por sobre las funciones
top, left, right, bottom, etc, de position: relative, .caja { .caja {
ya que posee una gran ventaja en cuanto a transform: translateX(50px); transform: translateY(-70%);
rendimiento y optimización. } }
.caja {
transform: translate(50px, -70%);
}
__________________________________SCALE__________________________________
Scale() ScaleX() ScaleY()
Shorthand de ScaleX y ScaleY. Estira determinado elemento en el eje X (horizontal) Estira determinado elemento en el eje Y (vertical)
Estira determinado elemento (a través de vectores) • Se le otorga un valor proporcional • Se le otorga un valor proporcional
__________________________________SKEW__________________________________
Skew()
Deforma determinado elemento.
Ejemplos:
1) 2)
.caja { .caja {
transform: skew(40deg); transform: skew(-250deg);
} }
_________________________________ROTATE_________________________________
Rotate()
Rota determinado elemento.
Ejemplos:
.caja {
transform: rotate(30deg);
}
Clip-path()
Permite recortar un elemento a diversas formas geométricas.
• Recurso: https://bennettfeely.com/clippy/
Ejemplo:
.caja {
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
Background-color
Define el color de fondo.
.bg {
background-color: slateblue;
}
Background-img
Coloca una imagen de fondo.
.bg {
background-img: url(https://url-imagen);
}
Background-size
Determina el tamaño del fondo.
Valores:
.bg {
background-size: cover;
}
Background-repeat
Determina si la imagen de fondo se va a repetir o no.
• En el caso de que la imagen no se repita y quede un espacio vacío, este se rellenará con el color de
fondo definido.
Valores:
• repeat
• repeat-x
• repeat-y
• no-repeat
.bg {
background-repeat: no-repeat;
}
Background-clip
Determina a partir de qué punto se va a mostrar la imagen de fondo. (Aplicando un recorte)
Valores:
• content-box
• padding-box
• border-box
.bg {
background-clip: border-box;
}
Background-origin
Determina desde qué punto se crea la imagen de fondo, SIN RECORTARSE.
Valores:
• content-box
• padding-box
• border-box
.bg {
background-origin: border-box;
}
Background-position
Determina la posición de la imagen de fondo.
Valores:
• left
• right
• top
• bottom
• center
.bg {
background-position: left top;
}
Background-attachment
Valores:
.bg {
background-attachment: fixed;
• Las GLOBALES son aquellas que pueden invocarse desde cualquier elemento.
• Las LOCALES son aquellas que se declaran solo para ser invocadas por
determinado tipo de elemento, clase, id, etc.
Ejemplo:
.img {
filter:
brightness(2.3)
grayscale(40%)
contrast(1.5)
drop-shadow(10px 10px 5px #000)
;
}
Direction
Ordena el texto de determinada forma.
Letter-spacing
Separación entre letras.
.caja {
letter-spacing: 1px;
}
Scroll-behavior
Sensibilidad del scroll al redirigirte de una parte de la página a otra.
Valores:
• Smooth (progresivo)
• Auto (brusco)
User-selected
Definir si determinado texto va a poder ser seleccionado, o no.
Valores:
Text-shadow
Le otorga sombra a determinado texto.
Ejemplo:
.caja {
text-shadow: (2px 2px 1px #000);
}
Text-decoration
Valores:
• underline
• dotted
• wavy
• overline
• none
Ejemplo:
.caja {
text-decoration: underline;
}
Más selectores
Recurso: https://www.w3schools.com/cssref/css_selectors.php