Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDADES DE MEDIDAS
PORCENTAJE:
Longitud referente a los tamaños de los elementos padre.
EM:
Unidad relativa al tamaño de fuente especificada más cercano.
REM:
Unidad relativa al tamaño de fuente especificada al ancestro más lejano (html o body).
VH/VW:
Unidad relativa porcentual con respecto al Viewport(ancho de pantalla). En donde VH es el alto y el VW es el ancho.
Ancla:
<a href=""></a>
En href colocamos la dirección URL a donde nos va a dirigir nuestra ancla
<a href="https://www.youtube.com/watch?v=BIS7cWGgJg0" target="_blank">Video Youtube</a>
Target=”_blank” lo usamos para que la dirección URL se abra en una pagina aparte.
CSS PROPIEDADES
Texto:
font-style: italic; (estilo de la fuente, en este caso sería cursiva )
text-transform: uppercase; (transforma el texto en mayúscula, minúscula etc.)
text-decoration: underline; (decora el texto con subrayado, tachado etc.)
font-weight: normal; (anchor de letra o volverla negrilla)
line-height: 1.5; (espacio entre lineas o renglones del texto)
line-height: 40px; (Se usa para centrar el elemento icono junto con text aling; ya que por ser un icono se toma como si fuera una fuente)
letter-spacing: -.2px; (espacio entre letras)
Listas:
ol, ul{
list-style: none;
}
list-style: none; ( en este caso quita los números o puntos de la lista )
Background:
Imágenes:
bordes:
border: tamaño, tipo, color; ejemplo: border: 12px solid red;
border-top: 10px solid red; (top=arriba bottom=abajo rigth o left)
También se puede ser más específico, EJEMPLO:
border-color: red;
border-style:solid; solo modifica el estilo de borde
border-width:15px;
y podemos ser aún más específicos, EJEMPLO:
border-top-color: green; (solo cambiamos el color del borde superior y se puede usar a cada propiedad)
border-radius da curva a las esquinas y se puede dar a todo el borde como a una esquina en especifico:
border-top-left-radius: 20px;
overflow: hidden; ( oculta todo lo que se salga del contenedor. Generalmente permite que el border-radius no se vea afectado por elementos
dentro del contenedor )
overflow: auto; (permite que se pueda visualizar todo el contenido. Por ejemplo si hay varias filas en una grid celda de pequeño tamaño,
permite poder hacer scroll en la celda
y poder ver todas las filas que esta contenga)
márgenes:
margin: 10px 20px; (el primer valor corresponde al top y bottom y el segundo al rigth y left)
margin: 10px 20px 30px 5px; (por defecto los valores empiezan a modificar el top, rigth, bottom y left)
box-sizing: border-box; (permite que el elemento no se modifique mas de lo que hemos declarado en alto y ancho. Indica al elemento que no se
salga de la caja)
static: Es la posición inicial o por defecto de los elementos, las propiedades left, top, right o bottom no surten efecto con este tipo de
posicionamiento.
los siguientes valores les afectan las propiedades left, top, right o bottom:
absolute: se posiciona en relación al primer elemento padre con posicionamiento diferente de static o absolute. El elemento padre debe tener un
position:relative.
fixed: se posiciona en relación al viewport, es perfecto para ser un elemento flotante que sigue la pantalla del navegador. Se usa mucho para fijar
el menú en la parte superior.
sticky: se posiciona en su contenedor aparentando ser un elemento con posición static, pero interactúa con el scroll del cliente cuando se fija un
límite con las propiedades de left, top, right o bottom.
Z-index: Otorga jerarquía la cual indica cual elemento se va a sobreponer del otro.
Ejemplos: https://codepen.io/LeonidasEsteban/pen/VGWzWK
.countdown span:after{ (utilizamos el seudoelemento after para indicar que después de cada span agregue algo)
content: ":"; (el content es la propiedad obligatoria en la cual indicamos que queremos agregar algo, en este caso los dos
puntos)
display: inline-block;
margin: 5px;
}
Ahora para quitar algún elemento usamos lo siguiente; En este caso quitaremos el último elemento hijo del span:
MEDIA QUERIES
Formar de llamar los media queries
1. Llamando un nuevo archive CSS desde Archivo html:
<link rel="stylesheet" href="css/media.css" media="screen and (max-width:768px)"/>
Mobile first
Desde medidas iniciales en la que van las pantallas.
Desktop first
Hasta medidas máximas que las pantallas pueden alcanzar, por como dice su nombre suelen ser medidas ´para ordenadores, o pantallas
grandes.
FUENTE DE ICONOS
En el siguiente Link podemos encontrar algunos iconos muy usados como el menu de hamburguesa:
https://icomoon.io/
De esa manera ya podemos usar en el HTML la clase que nos indica el código. Ejemplo, solo lo resaltado con el color rojo:
.icon-menu:before {
content: "\e900";
}
https://nodejs.org/es/
Luego ingresamos a la consola en modo administrador CMD e instalamos el servidor estático con el siguiente comando:
Windows:
npm install –g static-server
Mac o Linux:
Sudo npm install –g static-server
Una vez instalado, podemos correr el servidor en CMD con el comando (static-server) dentro de la carpeta del proyecto.
Cuando visualicemos el Puerto; en el ejemplo de arriba fue 9080, verificamos la IP que tiene nuestro equipo y con nuestro teléfono conectado a la
misma red, accedemos en el navegador de la siguiente manera:
Ejemplo: 192.168.1.18:9080
GRID LAYOUT
Truco
Para hacer todos los div que aparecen en la siguiente imagen, podemos usar una abreviación que nos genere y enumere
automáticamente todo a partir de un código:
<section class="container">
<div class="item">contenido #1</div>
<div class="item">contenido #2</div>
<div class="item">contenido #3</div>
<div class="item">contenido #4</div>
<div class="item">contenido #5</div>
<div class="item">contenido #6</div>
<div class="item">contenido #7</div>
<div class="item">contenido #8</div>
<div class="item">contenido #9</div>
<div class="item">contenido #10</div>
<div class="item">contenido #11</div>
<div class="item">contenido #12</div>
</section>
grid-template-columns: 200px 200px 200px; Acá indicamos que queremos 3 columnas con 200px(cualquier medida) cada una.
O se puede declarar de una manera resumida en donde primero se asignan las filas y después las columnas separados con un “/”:
SUB_ITEM
.item:nth-of-type(4){
background: blue;
}
En este caso le decimos que al item # 4 de los 12 creados anteriormente le cambiemos al backgound. Y luego creamos los subitems en el
elemento al cual elegimos con la seudoclase:
<section class="container">
<div class="item">contenido #1</div>
<div class="item">contenido #2</div>
<div class="item">contenido #3</div>
<div class="item">
<div class="item">subitem #1</div>
<div class="item">subitem #2</div>
<div class="item">subitem #3</div>
<div class="item">subitem #4</div>
<div class="item">subitem #5</div>
</div>
<div class="item">contenido #5</div>
<div class="item">contenido #6</div>
<div class="item">contenido #7</div>
<div class="item">contenido #8</div>
<div class="item">contenido #9</div>
<div class="item">contenido #10</div>
<div class="item">contenido #11</div>
<div class="item">contenido #12</div>
</section>
display: subgrid; (Heredaría toda la configuración del grid padre…. Es una actualización en proceso el cual puede no estar disponible aun)
grid-template: 300px 100px 100px/repeat(4, 1fr); (Tenemos una function repeat la cual dice que nos haga 4 columnas todas a 1fr, la
cual serian iguales)
grid-template: 300px 100px 100px / repeat(4, minmax(200px, 1fr)); (el minmax define el minimo de tamañao que debe tener el grid seguido
del maximo. En este caso
usando el repeat decimos que el minmax sea aplicado a las 4
columnas)
Primero debemos definir o identar como queremos que queden las áreas de nuestro grid para después ubicarlas por medio de
clases:
grid-template:100px 1fr 150px/200px 1fr;
grid-template-areas: "header header"
"left contenido" (si quisiéramos dejar un área en blanco solo ponemos un punto “.”)
"footer footer";
En grid-template definimos 3 filas y 2 columnas; es por eso que en áreas identamos las 3 filas y 2 columnas, según como queramos. Ahora
damos clases a nuestros elementos:
<section class="container">
<div class="item header">header</div>
<div class="item left">left</div>
<div class="item contenido">contenido</div>
<div class="item footer">footer</div>
</section>
Y por ultimo definimos a que área corresponde cada elemento, llamándolo por su clase:
.header{
grid-area: header;
}
.left{
grid-area: left;
}
.contenido{
grid-area: contenido;
}
.footer{
grid-area: footer;
}
Debemos usar la seudocalse para cada grid que queremos modificar el tamaño de columna:
.item:nth-of-type(1) {
grid-column-start:1; (indico al grid 1 desde que línea quiero que inicie como columna, sabiendo que las líneas se empiezan a contar
desde la izquierda)
grid-column-end:3; (indico al grid desde que línea quiero que termine como columna)
}
.item:nth-of-type(1) {
grid-column: 2/4; (mezcla el start y el end iniciando por el start)
}
.item:nth-of-type(1) {
grid-column: 2/ span 2; (el span indica cuantos espacios quiere tomar para iniciar o terminar la columna. En este caso seria para
terminar)
}
.item:nth-of-type(1) {
grid-column: 1/-1; (indica que la columna iniciaría desde la primera línea y ocuparía hasta el final)
}
.item:nth-of-type(1) {
grid-column: 1/span 3;
grid-row: 1/span 2; (Se usan las mismas propiedades para filas que con columnas)
}
Debemos nombrar las lineas al momento de crearlas, para cuando vayamos a definir el tamaño de las columnas o filas lo hagamos con sus
nombres:
.container{
display: grid;
grid-template-columns:[inicio]1fr [linea2] 1fr [linea3]1fr [destacado1-end]1fr [linea5]1fr [destacado2-end]1fr [linea7]1fr [final];
grid-template-rows:[inicio]200px [linea2]200px [final];
}
Debemos recordar que dentro de los corchetes no se puede dejar espacio. Una vez teniendo nombradas las líneas desde inicio hasta el final,
procedemos a darle tamaños a las filas o columnas; ejemplo:
.item:nth-of-type(1) {
grid-column:inicio/destacado1-end;
grid-grow:inicio/final
}
grid-auto-flow: row; (Acá indicamos que los grids implícitos se manejen como filas)
grid-auto-flow: column; (Acá indicamos que los grids implícitos se manejen como columnas)
grid-auto-columns: 50px 100px 50px 100px; (Acá indicamos que los grids implícitos tengan el tamaño deseado en columnas)
grid-auto-rows: 50px 100px 50px 100px; (Acá indicamos que los grids implícitos tengan el tamaño deseado en filas)
Alineación de items:
Para ir alineando los contenidos necesitamos usar las propiedades muy parecidas a las que usábamos con flex-box.
justify-items: center; (los valores que podemos usar son: start, end,center o stretch(este estira el cuadro))
align-items: center; (los valores que podemos usar son los mismos que justify-items
Luego si queremos que algún ítem se mueva y quede alineado de una manera diferente, debemos usar las siguientes propiedades con la
seudoclase:
.item:nth-of-type(5) {
align-self: start; (con el Self indicamos que se mueva solo ese item)
justify-self: start;
}
justify-content:; / aling-content:; (para justify como para aling se puede usar los siguientes valores: star,t end, stretch, space-between, space-
around, space-evenly.)
Grids responsive:
.container{
grid-template-columns: repeat(auto-fill, 250px); (al usar el auto-fill indicamos que las grillas se posicionen automáticamente al ancho
de la pantalla desplazando una
} debajo de la otra al reducir el screen)
TRANSICIONES:
transition-property: width, height; (indica la propiedad que va a cambiar, en este caso seria el ancho y alto)
transition-duration: 1s; (indica la duración de la transición)
transition-delay: 1s; (indica el tiempo de espera para que empiece la transición)
transition-timing-function: ease; (indica que tan suave será la transición)
transition: width 1s 1s ease; (Con esta propiedad podemos definer el property, la duracion, el delay y el timing-function y podemos
dejar también solo los valores
a cambiar.
Ejemplo:
TRANSFORMACIONES:
Algunas de las cosas que podemos lograr en un elemento con transform son:
transform: rotate(5deg) skew(10deg) translate(100px) scale(1.5); (scale se de en porcentaje, donde 1 es el 100% del tamaño original. En
este caso decimos al elemento que
aumente al 150%)
Rotaciones:
transform: rotate(-45deg); (al ser negativo, rota el elemento hacia la otra dirección)
transform: rotateX(360deg); (decimos al elemento que solo rote en su eje X)
transform: rotateY(360deg); (decimos al elemento que solo rote en su eje Y)
transform: rotateZ(360deg); (decimos al elemento que solo rote en su eje Z. O este sería el usado por defecto si no le ponemos un eje.)
transform: rotateX(45deg) rotateY(45deg) rotateZ(45deg); (decimos al elemento que rote o gire en todos sus ejes)
transform: rotate3d(x, y, z, deg); (Si queremos modificar algun eje, colocamos “1” y no queremos modificarlo colocamos “0”)
transform: rotate3d(1, 1, 1, 90deg); (Aca decimos que queremos rotar 90 grados todos los ejes)
Translate:
Para TRASLADAR o modificar la posición de un elemento podemos utilizar diferentes valores los siguientes valores, los cuales, llevan dentro de
paréntesis la medida positiva o negativa que se aplicara:
.selector {
transform: traslate(100px, 200px); [mueve el elemento a lo largo de su eje X & Y.]
}
SINTAXIS:
traslate(x, y) - mueve el elemento a lo largo de su eje X & Y.
transform: traslate(100px, 200px);
traslateX() - mueve el elemento únicamente a lo largo de su eje X.
transform: traslateX(100px);
traslateY() - mueve el elemento únicamente a lo largo de su eje Y.
transform: traslateY(200px);
** traslateZ()**- mueve el elemento en su profundidad (3D), el cual se acerca por defecto. Requiere que se defina la propiedad ‘perspective’ en el
elemento padre de referencia.
Nota: La propiedad perspective puede cambiar su punto eje de referencia, a través del atributo.
traslate3d() - mueve el elemento de manera totalmente 3D uniéndo los 3 valores anteriores. Define cada una de sus medidas separadas por
coma (x, y, z).
transform: traslate3d(100px, 200px, 400px);
Escale:
Transformaciones de escala:
Para ESCALAR un elemento utilizamos el valor scale(x, y), y dentro de sus paréntesis definimos la medida o medidas en porcentaje para sus ejes
por separados que sera escalado el elemento. Dichos valores se definen mediante un numero en el que 0 es 0%, 1 es 100% o tamaño normal y
así en adelante.
.selector {
transform: scale(2);
}
Sesgado:
Para SESGAR O INCLINAR un elemento utilizamos el valor skew(x, y), y dentro de sus paréntesis definimos la medida en grados positivos o
negativos que se aplicaran para los ejes X & Y.
.selector {
transform: skew(45deg, 45deg);
}
PUNTO DE TRASNFORMACION:
La transform-originpropiedad le permite cambiar la posición de los elementos transformados.
Las transformaciones 2D pueden cambiar los ejes x & y de un elemento. Las transformaciones 3D también pueden cambiar el eje z de un
elemento.
Ejemplos:
transform-origin: x y;
transform-origin: 50% 50%; Esta es la config inicial
transform-origin: top;
transform-origin: bottom;
transform-origin: left; (Hay que tener en cuenta el eje de transformación al cambiar el origen)
transform-origin: 0% 50%;
transform-origin: right;
transform-origin: 100% 50%;
transform-origin: top left; (Al usar dos puntos de origen debemos usar el eje Z)
transform-origin: top right;
transform-origin: bottom left;
https://diazpolanco13.github.io/mis-guias/guia-animation.html
Animation:
Sintaxis:
Los valores que podemos utilizar para trabajar con un @keyframes (animación) son:
animation-name (obligatorio) Hace referencia al nombre del @keyframes que deseamos utilizar.
animation-name: mi-animacion;
Nota: Es posible ejercer multiples animaciones añadiendo otro nombre a la propiedad animation-name. animation-name: mi-animacion, mi-otraAnimacion;
animation-duration: (obligatorio) Define el tiempo que durara el @keyframes y podemos utilizar un valor en segundos (s) o milisegundos (ms).
animation-duration: 2s;
animation-delay Define el tiempo de retardo al comienzo de la animación y podemos utilizar un valor en segundos (s) o milisegundos (ms). El valor por defecto es 0.
animation-delay: 1s;
animation-iteration-count: Define la cantidad de veces que se repetirá el @keyframes, podemos utilizar infinite para que sea infinito. El valor por defecto es 1.
animation-iteration-count: 5;
animation-direction: Define la dirección de la animación ya sea normal, es decir, del 0 al 100%, al revés (reverse) o alternativa (alternate). El valor por defecto es normal.
animation-direction: alternate;
animation-fill-mode: Define las propiedades que mantendrá el objeto una vez que haya terminado la animación, ya sea la inicial (backwards), la final (forwards) o ambas(both). El
valor por defecto es backwards.
animation-fill-mode: forwards;
animation-play-state:Define el estado de la animación, es decir, si se esta reproduciendo (running) o si esta en pausa (paused).
animation-play-state: running;
animation-timing-function: Define el tipo de aceleración que tendrá la animación. El valor por defecto es ease.
ease: Define la aceleración rápida al inicio y muy leve al final (valor por defecto)
ease-in: Define la aceleración leve al inicio y rápida al final
ease-out: Define la aceleración rápida al inicio y leve al final
ease-in-out: define la aceleración leve al inicio y leve al final
linear: Define un efecto sin aceleración, es decir, constante durante todo el trazo
steps(0): Define la aceleración en frames, que son los pasos que dará el selector para completarla.
cubic-bezier (0, 0, 0, 0): Define una aceleración personalizada mediante una configuración avanzada, la cual, consta de 4 valores de -1 a 1.
https://cubic-bezier.com/#.17,.67,.73,.91