Conceptos de CSS

Conceptos básicos de CSS

ElementoDefinición
paddingEs el espacio que hay entre el elemento y el borde (border).

Propiedades CSS

FunciónPropiedad
Píxeles (Unidad de longitud)px
Porcentaje del tamaño de letra del contenedor padre directoem
Porcentaje del tamaño de letra de bodyrem
Ocupa todo el espacio horizontal disponible, crea una línea nueva y tiene un ancho y altoElemento tipo bloque
Ocupa sólo el espacio necesario para su contenido y no tiene dimensiones (a excepción de las imágenes)Elemento inline
Convertir elemento a tipo bloquedisplay: block
Convertir elemento a tipo inlinedisplay: inline
Convertir elemento a tipo inline y bloquedisplay: inline-block
Ocultar elementodisplay: none
Definir una separación externamargin:
margin-top:
margin-right:
margin-bottom:
margin-left:
Definir una separación internapadding:
padding-top:
padding-right:
padding-bottom:
padding-left:
Escribir un comentario/* COMENTARIO */
Seleccionar ID #
Seleccionar clase .
Selector universal *
Selector hijo directo >
Selector de hermano siguiente +
Selector de hermanos siguientes ~
Selector de atributos [ ]
Selector de atributos con comodines que comienzan con [ ^ ]
Ejemplo de selector de atributos con comodines que comienzan con a[href^="http://"] {valores}
Selector de atributos con comodines que terminan con [ $ ]
Ejemplo de selector de atributos con comodines que terminan con a[href$=".mp4"] {valores}
Selector de atributos con comodines que contienen [ * ]
Ejemplo de selector de atributos con comodines que contienen a[href*="texto"] {valores}
Definir el colorcolor: COLOR;
Definir el color de fondobackground: COLOR;
Raíz o elemento que representa la etiqueta html:root { }
Ejemplo de uso de una variable :root { --color: purple; } h1 { color: var(--color); }
Puntaje de especificidad Etiquetas y pseudoelementos: 1
Clases, atributos y pseudoclases: 10
ID: 100
Estilos en línea: 1000
Definir como prioridad!important
Heredarinherit
No heredar sino usar valor inicialinitial
Añadir bordeborder:
Definir ancho del bordeborder-width:
Definir estilo del bordeborder-style:
Definir color del bordeborder-color:
Agregar borde arribaborder-top:
Agregar borde derechoborder-right:
Agregar borde abajoborder-botton:
Agregar borde izquierdoborder-left:
Redondear bordesborder-radius:
La propiedad CSS "outline" se utiliza para agregar un borde visual alrededor de un elemento HTML cuando está enfocado o activo. A diferencia de la propiedad "border", el "outline" no afecta al tamaño o diseño del elemento y se muestra por encima de otros estilos. Es útil para resaltar elementos que están siendo seleccionados o enfocados, y es especialmente importante para mejorar la accesibilidad de sitios web, ya que ayuda a los usuarios que navegan a través del teclado o utilizan lectores de pantalla a identificar los elementos enfocados. Asignale los atributos como si fuera un "border:".outline:
Definir cómo se debe calcular las medidas de un elementobox-sizing:
Propiedad del box-sizing para hacer que el valor del padding y el border pasen a formar parte del cálculo de ancho y alto de la caja en vez de sumar su valorborder-box
Cambiar el box-sizing*, *:before, *:after { }
Agregar sombra o copia del elementobox-shadow: h-offset v-offset blur spread color | inset
Propiedades del box-shadowh-offset: desplazamiento en horizontal
v-offset: desplazamiento en vertical
blur: desenfoque
spread: expandir o contraer
inset: sombra interna
Agregar transición transition: all tiempo
Propiedad para definir la altura de línea dentro de un bloque de texto. Controla la cantidad de espacio vertical entre líneas de texto en un elemento. También se traduce en interlineado. line-height:
Colocar imagen de fondo background: black url('../imagenes/Fondo1.jpg')
Cubre completamente el contenedor sin importar si parte de la imagen queda fuera. background-size: cover
Ajusta completamente la imagen dentro del contenedor, asegurándose de que toda la imagen sea visible. background-size: contain
Mantener la imagen fija en su posición mientras el contenido del elemento se desplaza, creando un efecto de paralaje. Esto significa que la imagen de fondo permanecerá en su lugar original con respecto a la ventana del navegador, independientemente de cómo se desplace el resto del contenido. background-attachment: fixed
se utiliza para indicar que la imagen de fondo no se debe repetir y que solo debe mostrarse una vez en el fondo del elemento. Si la imagen de fondo es más pequeña que el área del elemento, se colocará una sola vez en el centro del fondo. Si la imagen de fondo es más grande que el área del elemento, se recortará para que solo se muestre una vez. background-repeat: no-repeat
Indica que la imagen de fondo debe colocarse en el centro tanto en el eje horizontal como en el eje vertical del elemento. Esto asegura que la imagen de fondo esté centrada dentro del contenedor sin importar su tamaño o el tamaño del contenedor. background-position: center
Se utiliza para controlar cómo se ajusta y escala un elemento "img" o "video" dentro de su contenedor. Esto es especialmente útil cuando las dimensiones del contenedor difieren de las dimensiones naturales del contenido, lo que puede resultar en recortes o distorsiones no deseadas. object-fit
El contenido se estira para llenar completamente el contenedor, lo que puede causar distorsión de la relación de aspecto original. object-fit: fill
El contenido se escala para que se ajuste dentro del contenedor sin distorsionar la relación de aspecto original. Puede haber espacios en blanco alrededor del contenido si las proporciones son diferentes. object-fit: contain
El contenido se escala para cubrir completamente el contenedor, recortando cualquier exceso que quede fuera del área del contenedor. object-fit: cover
El contenido no se escala y mantiene su tamaño original, lo que puede provocar que el contenido se desborde o recorte si no cabe dentro del contenedor. object-fit: none
El contenido se escala de manera similar a none o contain, seleccionando la opción que resulte en una escala más pequeña. object-fit: scale-down
Se utiliza junto con la propiedad object-fit para controlar la posición en la que se coloca un elemento "img" o "video" dentro de su contenedor, cuando el contenido es escalado o ajustado mediante object-fit. La propiedad object-position acepta dos valores: el primero especifica la posición horizontal (izquierda, derecha o centro) y el segundo la posición vertical (arriba, abajo o centro). Puedes utilizar valores numéricos, porcentajes o palabras clave para definir estas posiciones. object-position
Ejemplo de object-position. object-position: center top
Divide el contenido de un elemento en múltiples columnas. Permite especificar el número de columnas en las que se distribuirá el contenido de manera automática, creando un diseño en forma de columna similar a un periódico o una revista. Esta propiedad es particularmente útil para mejorar la legibilidad y la presentación de bloques de texto largo, como artículos, párrafos extensos o listas, al distribuir el contenido de manera más eficiente en el espacio disponible. column-count es útil para crear diseños de columnas sencillos, en algunos casos más complejos o en diseños responsivos, puede ser necesario combinar column-count con otras propiedades relacionadas, como column-width, column-gap y break-inside, para lograr el diseño deseado y asegurarse de que el contenido se muestre correctamente en diferentes tamaños de pantalla. column-count
Ejemplo de column-count column-count: 3
Se utiliza para establecer el espacio entre las columnas en un diseño de columnas creado con la propiedad column-count o column-width. Permite controlar la distancia horizontal entre las columnas de contenido en un elemento contenedor que ha sido dividido en múltiples columnas. Cuando se crea un diseño de columnas utilizando column-count o column-width, el espacio entre las columnas puede ser ajustado mediante column-gap para mejorar la legibilidad y la apariencia visual del diseño. column-gap
Ejemplo de column-gap column-gap: 20px
Se utiliza para definir una línea decorativa entre las columnas en un diseño de múltiples columnas creado con las propiedades column-count o column-width. Proporciona un estilo visual adicional para separar y distinguir las columnas de contenido en un elemento contenedor. La propiedad column-rule se compone de tres subpropiedades: column-rule-width: Define el ancho de la línea entre las columnas. column-rule-style: Especifica el estilo de la línea (por ejemplo, sólido, punteado, etc.). column-rule-color: Establece el color de la línea. column-gap
Ejemplo de column-rule column-rule: 2px solid #ccc
se utiliza para definir la forma que el flujo de texto debería seguir alrededor de un elemento no rectangular, como una imagen o un elemento "div". Permite controlar cómo el contenido textual se ajusta y se envuelve alrededor de un objeto con una forma específica. Esta propiedad es especialmente útil para crear diseños de páginas web más interesantes y atractivos, donde el texto puede fluir alrededor de elementos con formas personalizadas en lugar de simplemente rodear un rectángulo. El valor de shape-outside puede ser en forma de una forma geométrica básica, como un círculo, un óvalo o un polígono, o puede ser establecido utilizando imágenes para definir la forma. También se puede combinar con las propiedades float, clear y margin para controlar aún más la posición y el flujo del contenido. shape-outside
Ejemplo de shape-outside shape-outside: circle(50% at 50% 50%)
se utiliza para definir la forma que el flujo de texto debería seguir alrededor de un elemento no rectangular, como una imagen o un elemento "div". Permite controlar cómo el contenido textual se ajusta y se envuelve alrededor de un objeto con una forma específica. Esta propiedad es especialmente útil para crear diseños de páginas web más interesantes y atractivos, donde el texto puede fluir alrededor de elementos con formas personalizadas en lugar de simplemente rodear un rectángulo. El valor de shape-outside puede ser en forma de una forma geométrica básica, como un círculo, un óvalo o un polígono, o puede ser establecido utilizando imágenes para definir la forma. También se puede combinar con las propiedades float, clear y margin para controlar aún más la posición y el flujo del contenido. shape-outside
Crear borde y definir 3 subpropiedades border: border-width border-style border-color

Pseudoclases

PseudoclaseComportamiento
Pseudoclase para cambiar estado cuando se pasa el mouse :hover
Pseudoclase para cambiar estado cuando se da clic :active
Pseudoclase para cambiar estado cuando ya se ha visitado :visited
Pseudoclase para seleccionar elemento destino :target
Pseudoclase para negar o excluir con condición :not()
Pseudoclase para aplicar a los elementos vacíos :empty
Pseudoclase para aplicar al primer elemento :first-child
Pseudoclase para aplicar al último elemento :last-child
Pseudoclase para aplicar al primer elemento del tipo :first-of-type
Pseudoclase para aplicar al último elemento del tipo :last-of-type
Pseudoclase para aplicar a elementos contando desde el inicio :nth-child
Pseudoclase para aplicar a elementos contando desde el final :nth-last-child

Elementos HTML

ElementoComportamiento
a, span, img, b, i, small, cite, code, em, strong, br, script, button, input, label, select y textarea.Se comportan como elementos de tipo INLINE
div, article, section, header, footer, aside, table, p, video, ul, ol, h1, h2, h3, h4, h5 y h6.Se comportan como elementos de tipo BLOCK

Posicionamiento de elementos

PropiedadFunción
positionPropiedad para definir el tipo de posición de la caja.
position: staticEs el posicionamiento por defecto con el que los navegadores acomodan los elementos.
position: relativePermite posicionar una caja y después moverla desde su lugar original.
position: absolutePermite posicionar una caja con respecto a su contenedor y el resto de los elementos ignoran su posición. Para que un elemento con position: absolute se posicione con respecto a su contenedor padre, es necesario que el contenedor padre tenga position: relative, position: absolute o position: fixed.
position: fixedPermite posicionar una caja con respecto a la pantalla del usuario como si estuviera fija a la pantalla.
position: floatPermite desplazar las cajas todo lo posible hacia la derecha o izquierda.
Las siguientes propiedades permiten definir desde dónde mover la caja o elemento y el valor.
topMover desde arriba.
rightMover desde la derecha.
bottomMover desde abajo.
leftMover desde la izquierda.
z-indexse utiliza para controlar el orden de apilamiento (superposición) de elementos posicionados en capas dentro de un documento HTML. Esta propiedad permite definir cómo se disponen visualmente los elementos cuando se superponen unos sobre otros en la página. Cada elemento HTML tiene un valor de z-index que determina su posición en la "pila de capas". Los elementos con un valor de z-index más alto se superponen a los elementos con un valor de z-index más bajo. En otras palabras, un elemento con un valor de z-index mayor se mostrará encima de elementos con valores de z-index más bajos.

Limpiar floats (método 1)

La siguiente propiedad se usa para cuando se han aplicado propiedades de float a cajas dentro de un contenedor. Al trabajar con float el contenedor padre no tendrá en cuenta la altura de los elementos flotantes hijos, lo cual resultará en un diseño desordenado. Para solucionar esto, se puede usar la clase .clear y aplicar la propiedad clear:both en el CSS. La propiedad clear con el valor "both" indica que el elemento no debe permitir que otros elementos floten a su izquierda o derecha. Es decir, crea un espacio debajo del último elemento flotante dentro del contenedor, asegurándose de que el contenedor se ajuste correctamente a la altura de los elementos flotantes.

      
      	<div class="container"> 
        	<div class="elemento-float"> </div>
            <div class="elemento-float"> </div>
            <div class="clear"> </div>
        </div>
      
    
      
      	.elemento-float {
        	float: left;
            width: 50%;
        }
        
        .clear {
        	clear: both;
        }
      
    

En este ejemplo, '.elemento-float' es una clase que se aplica a los elementos que se desean flotar, y '.clear' es una clase que se coloca después de los elementos flotantes para limpiarlos y asegurarse de que el contenedor '.container' tenga en cuenta la altura de los elementos flotantes.

Control del desbordamiento de contenido

ElementoComportamiento
overflowControla el comportamiento de desbordamiento en todas las direcciones (horizontal y vertical) del contenedor. Puede tomar los valores visible (valor predeterminado, permite que el contenido desborde), hidden (oculta el contenido que desborda), scroll (muestra barras de desplazamiento siempre) y auto (muestra barras de desplazamiento solo si es necesario).
overflow-xControla el comportamiento de desbordamiento solo en el eje horizontal. Puede tomar los mismos valores que overflow.
overflow-yControla el comportamiento de desbordamiento solo en el eje vertical. Puede tomar los mismos valores que overflow.
Utilidad de overflowEstas propiedades son muy útiles para mantener el diseño y la apariencia de una página web, especialmente cuando el contenido puede ser más grande que el espacio disponible en su contenedor. Al utilizar estas propiedades, podemos decidir si el contenido desbordado debe recortarse y ocultarse, mostrarse con barras de desplazamiento o permitir que el contenido se extienda fuera del contenedor sin ningún tipo de limitación visual.
overflow: hidden recorta cualquier contenido que se salga del área visible del contenedor y no muestra ninguna barra de desplazamiento para permitir al usuario acceder a la parte oculta del contenido. El contenido oculto simplemente se recorta y no se muestra en absoluto..

Limpiar floats (método 2)

La propiedad overflow: hidden dentro del contenedor padre también permite solucionar el problema de los elementos flotantes sin necesidad de agregar un div hermano con la clase clear.

      
      	<div class="container"> 
        	<div class="elemento-float"> </div>
            <div class="elemento-float"> </div>
        </div>
      
    
      
      	.elemento-float {
        	float: left;
            width: 50%;
        }
        
        .container {
        	overflow: hidden;
        }
      
    

Al usar esta propiedad el contenedor padre ahora se ajustará automáticamente a la altura de los elementos flotantes y recorta cualquier contenido que se desborde del contenedor. Esto significa que si los elementos flotantes exceden el tamaño del contenedor padre, se recortarán y no serán visibles fuera del contenedor.

Visualización de elementos

PropiedadFunción
visibility: hiddenOculta el elemento pero los otros elementos respetan su espacio.
display: noneOculta el elemento pero los otros elementos no respetan su espacio.
overflow: hiddenOculta el resto de texto que se salga del contenedor padre.
overflow: autoAgrega un scroll o barra deslizante si el texto se sale del contenedor padre.

Alineación de elementos

PropiedadFunción
vertical-alignse utiliza principalmente para alinear elementos en línea o elementos de tabla verticalmente en relación con el texto circundante. Es aplicable a elementos en línea, como imágenes o texto, y se utiliza para ajustar su posición vertical en relación con el texto que los rodea.
vertical-align: baseline Este es el valor predeterminado. Alinea el elemento con la línea de base del texto que lo rodea. La línea de base es la línea donde descansan los caracteres de texto.
vertical-align: topAlinea el elemento con la parte superior del contenido más alto en la línea.
vertical-align: middleAlinea el elemento de manera que su centro quede alineado con la línea base del texto.
vertical-align: bottomAlinea el elemento con la parte inferior del contenido más bajo en la línea.
vertical-align: subAlinea el elemento como un subíndice del texto circundante.
vertical-align: super Alinea el elemento como un superíndice del texto circundante.
vertical-align: text-topAlinea el elemento con la parte superior del contenido del texto (ascendentes) en la línea.
vertical-align: text-bottomAlinea el elemento con la parte inferior del contenido del texto (descendentes) en la línea.

Alineación de texto

PropiedadFunción
text-alignse utiliza para controlar la alineación horizontal del contenido de un elemento de bloque o un elemento en línea que contiene texto. Afecta al contenido de texto y otros elementos en línea que se encuentren dentro del elemento al que se aplica. Si tienes un párrafo de texto dentro de un contenedor, puedes aplicar text-align al contenedor para alinear el texto dentro del párrafo. si aplicas esta propiedad a un elemento de bloque que contiene elementos en línea con texto, se alineará el contenido de texto dentro de esos elementos en línea, pero no afectará la alineación de otros elementos de bloque contenidos en el contenedor.
text-align: leftAlinea el contenido del elemento a la izquierda.
text-align: rightAlinea el contenido del elemento a la derecha.
text-align: centerAlinea el contenido del elemento al centro.
text-align: justifyAjusta el contenido del elemento de modo que se extienda desde el margen izquierdo hasta el margen derecho, creando espacios adicionales entre palabras para que la línea se extienda por completo. Esta alineación se utiliza comúnmente en párrafos de texto.

Diseño responsivo

Gracias a los media queries podemos aplicar estilos dependiendo de la pantalla donde se esté cargando el sitio web.

PropiedadFunción
@media screen and (max-width: px) { }Esto quiere decir: Cuando se detecte una pantalla y tenga un tamaño máximo especificado ejecute los estilos que están dentro de las llaves.
@media screen and (min-width: px) { }Esto quiere decir: Cuando se detecte una pantalla y tenga un tamaño mínimo especificado ejecute los estilos que están dentro de las llaves.

Comentarios

Haz comentarios o preguntas acerca de este artículo respetando las normas de la comunidad ¡Les damos la bienvenida!