Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Con esto pedimos un link relacionado a “hoja de estilo”, de tipeo “texto escrito en css”
que se encuentra en la referencia nombredelarchivo.css (extensión css) guardado en
misma carpeta.
Estructura de CSS
Selector { Propiedad: valor; }
Selector: indican al navegador qué elementos html se seleccionan para aplicarles los
estilos
Propiedad: son atributos para los que se establecen los valores que uno crea
conveniente. Refiere a color, tamaño, dimensiones, posición, etc. cómo se lo quiere
cambiar.
Valor: ej. rojo,
Declaración: es la combinación entre la propiedad y el valor que será asignado al
elemento.
Después de cada declaración (o afirmación) va el punto y coma (;)
Tipos de selectores:
- Universal: *(asterisco). Todo elemento html adquiren las propiedades que se
ingresen aquí.
-
- De tipo: los que seleccionamos por elementos o etiquetas.
- Por atributo: creamos un atributo dentro de una etiqueta y ese lo ponemos en css
dentro de corchetes []
- Pseudo-clase: son los eventos de la selección. Ej: queremos que cuando pasemos el
cursos sobre una palabra, elemento, cambie de color. Esto sería el evento.
o Hover:
Especificidad:
Resuelve problema de conflictos en estilos. Podemos cambiar una propiedad sin afectar
al resto.
Al ser hoja de estilo en cascada, toma el último que se ingresa.
En el ej, no es que se pusieron 3 colores, sino que se fue
modificando el color del elemento, tomando el último como el
definitivo, el que se mostrará en el navegador.
Metodología BEM
Sirve para evitar conflictos de estilos. Nos basamos en el nombre de las clases para
saber qué elementos estamos seleccionando.
La metodología es: Poner el nombre del contenedor mas dos guiones bajos y luego el
nombre del elemento.
El <div> es un contenedor.
Si tenemos varios <input type="text" class="contact-form__input"> y queremos
seleccionar solo el primero: agregamos :first-child a la clase
También se puede poner –-active. Los dos guiones medios indican que es un elemento
distinto a otros.
Cuando hay varios contenedores de form, se van diferenciando con los guiones
Para comentar algo, es decir, no borrarlo pero tampoco que aparezca se agrega /* al
selector que se quiere y se cierra con */
Otra forma es <! -- y cerrando con -->
Medidas
Hay medidas fijas y medidas relativas que dependen de la caja contenedora.
Con las medidas relativas, se puede adaptar el contenido a versiones móviles sin que se
distorcione el elemento. Esto es muy importante para el Responsive design.
1 Em=16px (en la mayoría de los navegadores) – Em es una medida relativa.
1 em es igual al valor que le demos a la caja contenedora. Si a la caja contenedora le
dimos el valor de 25px, el valor de 1em de un elemento inserto en esa caja contenedora
será de 25px.
https://fonts.google.com/
Si queremos que toda la pagina tenga determinado estilo de letra, ingresamos dentro de
<head> de html:
Normalize:
Elimina todo formato del navegador. Para esto, se ingresa en
https://necolas.github.io/normalize.css/
Se descarga y se guarda como archivo .css (normalize.css) dentro de la carpeta donde
estamos haciendo y lo agregamos dentro del <head>
Margin: distancia entre el borde de las cajas y de los bordes del navegador. Si tenemos
un margin 0 las cajas estarán pegadas. También es un shorthand. Si ponemos un margin
10px de cada lado, debemos tener en cuenta que, si hay dos cajas, en el medio de ambas
habrá 20px, 10 de cada una.
margin: auto centra el elemento al medio del navegador tocando el borde superior
(si es que no lo definimos). Cuando trabajamos con elementos que son bloques y no
están posicionados, de esta manera los centramos
Border: está por fuera del padding. Es una shorthand (Border-width; border-color;
border-style; etc)
Primero ponemos tamaño, style, color
Border-style es el estilo del borde, solid (solido), dashed (línea fragmentada), double
(línea doble), Groove (línea doble con color mas oscuro de una línea en top y left), inset
(línea con color mas oscuro en top-left), outset (línea con color mas oscuro en right-
bottom), entre otros
Outline: Es un shorhand. Outline-color, style, width. Es como un borde pero sin afectar
a las demás cajas, no ocupa un espacio real en el DOM (DOCUMENT OBJECT
MODEL o modelo de objetos del documento, todos los elementos que están dentro de
nuestra pagina) La propiedad border sí ocupa espacio por lo que si ponemos un tamaño
de caja de 200px y luego un border de 10px, el total del contenido sería 190px mas los
10px del borde. Con el outline, se sigue manteniendo el espacio de 200px. Se ve pero no
se computa.
El borde en un input es un outline
Position
Posicionamos los elementos. Esto significa que afecta el flujo de html, el orden en que
ponemos todos los elementos (uno debajo de otro como se escribe en html). Static: es el
valor por defecto, no está posicionado.
Cuando posicionamos un elemento, hacemos que este adquiera cuatro propiedades
nuevas: top, left, right, bottom. Top y left son las más importantes, si estas están, no
importan los valores de right y bottom (en vano ponerlas si están top y left). Si no
especificamos un top, left, etc… el elemento se posiciona de acuerdo al viewport.
Cuando trabajamos con html, cada caja tiene un espacio reservado.
- Static: El elemento es posicionado de acuerdo al flujo normal del documento.
Las propiedades top, right, bottom, left, and z-index no tienen efecto. Este es el
valor por defecto.
- Relative: hacemos que el espacio original ocupado en el DOM se siga
conservando, aunque movamos la caja para otro lugar, ej, con top: 20px, estos
20px se cuentan desde donde finaliza la caja anterior.// El elemento es
posicionado de acuerdo al flujo normal del documento, y luego es desplazado
con relación a sí mismo, con base en los valores de top, right, bottom, and left.
El desplazamiento no afecta la posición de ningún otro elemento; por lo que, el
espacio que se le da al elemento en el esquema de la página es el mismo como si
la posición fuera static. Elementos posicionados relativamente son desplazados
una cantidad dada de su posición normal en el documento, pero sin que su
desplazamiento afecte a otros elementos.
- Absolute: la caja se ajusta al contenido si no están definidos los valores. Deja de
reservarse el espacio en el DOM. El tamaño del bloque se ajusta al tamaño del
contenido// El elemento es removido del flujo normal del documento, sin crearse
espacio alguno para el elemento en el esquema de la página. Es posicionado
relativo a su ancestro posicionado más cercano, si lo hay; de lo contrario, se
ubica relativo al bloque contenedor (en-US) inicial. Su posición final está
determinada por los valores de top, right, bottom, y left. Este valor crea un
nuevo contexto de apilamiento cuando el valor de z-index no es auto. Elementos
absolutamente posicionados pueden tener margen, y no colapsan con ningún
otro margen.// Los elementos posicionados relativamente se mantienen en el
flujo normal del documento. Por el contrario, un elemento posicionado
absolutamente es removido del flujo de esta manera, los demás elementos se
posicionan como si el mismo no existiera. El elemento posicionado
absolutamente se posiciona relativamente a su ancestro posicionado más
cercano (es decir, el ancestro más cercano que no es static). Si no hay ningún
ancestro posicionado se ubica relativo al bloque contenedor (en-US) inicial. //
- Fixed: El posicionamiento fijo es similar al posicionamiento absoluto, con la
excepción de que el bloque contenedor del elemento es el viewport. Se mantiene
fijo en el viewport por más que se desplace el contenido. Esto puede usarse para
crear un elemento flotante que se mantiene en la misma posición
independientemente del desplazamiento.
- Sticky: El posicionamiento sticky puede considerarse un híbrido de los
posicionamientos relativo y fijo. Un elemento con posicionamiento sticky es
tratado como un elemento posicionado relativamente hasta que cruza un umbral
especificado, en cuyo punto se trata como fijo hasta que alcanza el límite de su
padre. Por ejemplo: #one { position: sticky; top: 10px; } ..posicionaría el
elemento con id uno relativamente hasta que el viewport sea desplazado de
manera tal que el elemento esté a menos de 10px del límite superior. Más allá de
ese umbral, el elemento sería fijado a 10px del límite superior. Un uso común
para el posicionamiento sticky es para los encabezados en una lista alfabética. El
encabezado "B" aparecerá justo por debajo de los ítems que comienzan con "A"
hasta que se hayan desplazado más allá de la pantalla. En vez de deslizarse fuera
de la pantalla como el resto del contenido, el encabezado "B" se mantendrá
fijado al límite superior del viewport hasta que todos los ítems "B" se hayan
desplazado fuera de la pantalla, en cuyo punto será cubierto por el encabezado
"C", y así sucesivamente. Se debe especificar un umbral con al menos uno de
top, right, bottom, or left para que el posicionamiento sticky se comporte de
forma esperada. Caso contrario, será indistinguible del posicionamiento
relativo.// Nótese que un elemento sticky se "adhiere" a su ancestro más cercano
que tiene un "mecanismo de desplazamiento" (creado cuando el overflow es
hidden, scroll, auto, o bien overlay), aún si ese ancestro no es el ancestro con
desplazamiento más cercano. Esto inhibe efectivamente el comportamiento
"sticky".
z-index:
Solo en elementos posicionados. Es la forma que ponemos un elemento encima de otro.
Ordena los elementos en el eje Z, más cercano a nosotros. Se recomienda poner z-index
con valor de entre 50 y 50, en caso de necesitar modificar alguno o poner en el medio
otro elemento, hay espacio para agregarlo (ej: poner z-index: 40) // indica el orden de un
elemento posicionado y sus descendientes. Cuando varios elementos se superponen, los
elementos con mayor valor z-index cubren aquellos con menor valor.
Para una caja posicionada (es decir, una con cualquier position aparte de static), la
propiedad z-index especifica:
El nivel de apilamiento en el actual contexto de apilado.
Si la caja establece un contexto de apilamiento local.
Conflicto de hijos y padres: hijo sería el elemento que está dentro de un contenedor.
Para poner por detrás el elemento hijo del elemento padre o contenedor, el hijo debe
tener un z-index: -1 y el contenedor no tiene que estar definido el z-index.
Display:
Modifica el comportamiento de las cajas.
- Block: elementos que ocupan todo el viewport o contenedor, de forma horizontal. Por
lo que cualquier elemento que pongamos luego, se pondrá abajo. Es la propiedad por
defecto
- Inline: elementos en línea, ocupan el espacio que ocupa el contenido. Por lo general,
se usa para textos. No se les puede modificar el tamaño.
- Inline-block: le podemos dar un ancho y un alto. Permite poner un elemento al lado
de otro. El elemento se comporta como bloque pero el tamaño de acuerdo al
contenido.
Ya no se usan más: Table: Son tablas; Inline-table: tablas en línea; List-item: listado de
ítems; Table-cell: el elemento se comporta como una celda de una tabla; Table-row: el
elemento se comporta como una fila de una tabla; Table-column: el elemento se
comporta como una columna de una tabla.
Overflow:
Es un shorthand, abrevia el eje x y el eje y. Refiere a lo que “sobra”, que queda por
fuera de las dimensiones que le pusimos al contenedor.
- Auto: propiedad que detecta que cuando el contenido sobrepasa la caja, da la
posibilidad de scrollear dentro de la caja.
Pseudo-elements
Los pseudoelementos que requieran la etiqueta content, no forman parte del DOM, pero
si permiten realizar cambios visuales. Se aplican a los elementos
: : first-line: funciona en elementos en bloque, no funciona en inline. Se utiliza en
texto para modificar la primer línea. Por más que cambie la resolución del viewport,
siempre la primer línea (no importa si se achica el párrafo) tendrá las características que
coloquemos acá. Forman parte del DOM.
: : first-letter: funciona en elementos en bloque, no funciona en inline. Se utiliza en
texto para modificar la primer letra del primer párrafo. Forman parte del DOM.
: : placeholder: refiere a la indicación que se le da al input para que el usuario
complete. Cuando el usuario completa, desaparece el “inserte…” y se reemplaza por lo
que se completa ya sin el ‘color: red’.
Html:
CSS
Pseudoclases
“Escucha” (produce un efecto) al elemento.
:hover: cuando el mouse está encima del elemento que seleccionamos, hacemos que
cambie de color, o se agrande…. Cambiamos las propiedades del elemento cuando
pasamos en mouse sobre él. Se usa mucho cuando ponemos un button.
El elemento caja1 pasará a tener otro background-
color, otro tamaño y el efecto de transición se hará
en 1.2seg.
Con Transition también podemos hacer que ese
cambio de efecto se pueda dar en diferentes
tiempos:
Object-Fit:
Se usa mucho para modificar las propiedades de la imagen (resolución, tamaño, etc). Se
usa para evitar que se distorcione una imagen que ingresamos dentro de un contenedor
(div).
- Fill: ajusta la imagen al contenido perdiendo la resolución si el contenido es
mayor a la imagen. La imagen llena todo el contenido por más que se
distorcione.
- Contain: la imagen se ajusta a su propia resolución dentro del contenedor aunque
este tenga otro tamaño.
Object-position:
- Left, right, top, button: ajusta la imagen a la izq, derecha, etc del contenedor.
También aca se puede cambiar px, em, %...
-
Cursor: https://www.w3schools.com/cssref/tryit.php?filename=trycss_cursor
Cambia el puntero del mouse cuando éste se sitúa en un determinado elemento.
Colores:
Distintas formas de denominar los colores.
- Color name: por nombre mismo del color. Poco usado.
- Hexadecimal: 16 unidades (del 1 al 10, luego de la A a la F) #RRGGBB, donde
RR, GG y BB son números hexadecimales desde 00 hasta FF..
Teoría:https://www.mclibre.org/consultar/htmlcss/css/css-color.html
Códigos de colores: https://html-color.codes/
Responsive Design – Mobile First
Adaptamos un diseño de web a varias resoluciones. Adaptar un diseño de celular a
Tablet y luego a escritorio. Crearlo para celular y luego adaptar al resto. Google
posiciona mejor en el SEO las paginas así diseñadas.
Detectar resolución y cambiar las etiquetas.
Para evitar que se distorsione el contenido cuando se reduce la resolución de pantalla:
Esto significa que, cuando la pantalla sea menor que 800px, el div se modifique a
display:block y pase a tener un width de 100%.
Necesitamos poner la etiqueta meta viewport en el head de html para que se pueda
identificar la resolución de cada dispositivo donde se abrirá la web.
Una vez tenemos esa etiqueta, podemos trabajar con responsive design.
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
Menu responsivo
Si queremos poner iconos en el menú, debemos poner en el <head>
<script src="https://kit.fontawesome.com/25ba2f27d1.js" crossorigin="anony
mous"></script> para que podamos agregar iconos en la web.
Flex-box
Necesita flex-container (contiene elementos item) y flex-item (elementos dentro de
container)
El contenedor se comporta como un display:block, por lo tanto, vamos a modificar los
elementos dentro de ese “bloque”.
Dirección por defecto cuando trabajamos con flex-box.
Los elementos vienen por defecto en el main axis de izquierda a derecha. Los item están
dentro de un contenedor con display:flex. Si dentro de un div que tiene un display flex,
hay otro div, un p, etc, estos elementos serán flex-items. Son los hijos directos.
Al darle al contenedor, display flex, las cajas se adaptan al contenido manteniendo la
altura de las cajas.
Si queremos cambiar la dirección de las cajas contenidas dentro del container, debemos
cambiar el main axis y por defecto cambia el cross axis. Por lo tanto, debemos cambiar
la dirección del container para que afecten a los ítems.
Se empieza a repartir el espacio sobrante cuando todas las cajas alcancen el espacio
asignado.
Grid:.
Refiere a grilla. Es un estilo de layout. Es un valor de la propiedad display. La grilla es
estática en sentido que no se modifica la resolución cuando modificamos
Conceptos básicos
- Grid container: la grilla completa, el contenedor
- Grid item: los ítems o elementos que están dentro del container. Son hijos
directos del contenedor.
- Grid cell: elementos dentro de los items
- Grid tracks: son las columnas y row (filas) dentro del container
- Grid área: porción del container que seleccionamos, puede tener varios ítems,
columna y/o row. Tienen que ser consecutivas en vertical y horizontal, no en
diagonal.
- Grid line (column line y row line)
Si hacemos display: grid, solo creamos una sola columna, no creamos una grilla aunque
tengamos 9 items, ya que los ítems son bloques, no inline.
- Grid-gap: le da un margin entre cada item (o celdas) pero no entre los bordes del
contenedor. Es un shorthand de: Grid-row-gap y Grid-column-gap.
Unidades:
- Fr: es como flew-grow, se le da a las columnas por lo general a la ultima ya que
es para llenar el espacio restante.
Si en el contenido, hay palabras, el mínimo de tamaño será el de la palabra contenida.
cuando tenemos varios ítems pero no hemos especificado cada uno con un selector, con
esto seleccionamos el primero de la lista que está dentro del div. Es decir, selecciona el
1.
Grid dinámico:
Minmax () cual es el mínimo y el máximo que va a medir algo, se separa con coma.
7:01:25