CSS Intermedio
Sigamos jugando con CSS.
⭐ Videos Premium ⭐
Esta sección es parte del curso en Udemy. Si quieres acceder a ella, puedes comprar el curso en Udemy: Bootstrap 5 by bluuweb.
Bordes
https://www.w3schools.com/css/css_border.asp
.border-solid {
border-style: solid;
}
.border-dashed {
border-style: dashed;
}
<p class="border-solid">Lorem ipsum dolor sit amet.</p>
<a
class="border-dashed"
ref="#"
>Enlace</a
>
Display
https://www.w3schools.com/css/css_display_visibility.asp La propiedad display
es sumamente importante para controlar el diseño de nuestra página web.
Elementos de bloque
elemento {
display: block;
}
Un elemento de nivel de bloque siempre comienza en una nueva línea y ocupa todo el ancho disponible (se extiende hacia la izquierda y la derecha tanto como sea posible).
Ejemplos de elementos a nivel de bloque:
<div>
<h1> - <h6>
<p>
<form>
<encabezado>
<footer>
<sección>
Elementos en línea
elemento {
display: inline;
}
Un elemento en línea no comienza en una nueva línea y solo ocupa el ancho que sea necesario.
Ejemplos de elementos en línea:
<span>
<a>
<img>
HTML estilos por defecto
¿De línea o de bloque?
Padding
Las paddingpropiedades CSS se utilizan para generar espacio alrededor del contenido de un elemento, dentro de cualquier borde definido. Con CSS, tienes control total sobre el relleno. Hay propiedades para configurar el relleno para cada lado de un elemento (arriba, derecha, abajo e izquierda). https://www.w3schools.com/css/css_padding.asp
.clase {
padding-top: 50px;
padding-right: 30px;
padding-bottom: 50px;
padding-left: 80px;
}
.clase {
padding: 25px 50px 75px 100px;
}
.clase {
padding: 25px 50px;
}
div {
width: 300px;
padding: 25px;
}
Aquí, el elemento <div>
tiene un ancho de 300 px. Sin embargo, el ancho real del elemento <div>
será de 350 px (300 px + 25 px de relleno izquierdo + 25 px de relleno derecho)
Margin
Las marginpropiedades CSS se utilizan para crear espacio alrededor de los elementos, fuera de los bordes definidos. https://www.w3schools.com/css/css_margin.asp
margin-top
margin-right
margin-bottom
margin-left
Altura y ancho
Las propiedades height
y width
se utilizan para establecer el alto y el ancho de un elemento. https://www.w3schools.com/css/css_dimension.asp
.caja {
height: 100px;
width: 500px;
background-color: powderblue;
}
Display: inline-block
En comparación con display: inline
, la principal diferencia es que display: inline-block
permite establecer un ancho y alto en el elemento. Además, con display: inline-block
, se respetan los márgenes / rellenos superiores e inferiores, pero con display: inline
no. En comparación con display: block
, la principal diferencia es que display: inline-block
no agrega un salto de línea después del elemento, por lo que el elemento puede sentarse junto a otros elementos.
https://www.w3schools.com/css/css_inline-block.asp
Modelo de caja
https://www.w3schools.com/css/css_boxmodel.asp
box-sizing
Para mantener el ancho a 300 px, sin importar la cantidad de relleno, puede usar la propiedad box-sizing: border-box
. Esto hace que el elemento mantenga su ancho; Si aumenta el relleno, el espacio de contenido disponible disminuirá.
https://www.w3schools.com/css/css3_box-sizing.asp
Use la propiedad de tamaño de caja para mantener el ancho a 300 px, sin importar la cantidad de relleno:
div {
width: 300px;
padding: 25px;
box-sizing: border-box;
}
Unidades relativas vs Abosultas
En CSS se pueden utilizar diferentes unidades de medida y no existe "la más recomendable". Es necesario conocerlas y saber cómo funcionan en el contexto para evaluar cuál es la más conveniente en cada caso. más info
Medidas absolutas
Su valor se encuentra definido en términos concretos y de manera medible. Esto quiere decir que no depende de otro valor de referencia, ni del contexto.
- mm: milímetros.
- cm: centímetros.
- in: pulgada ("inches", en inglés). Una pulgada equivale a 2.54 centímetros.
- pt: puntos. Un punto equivale a 1 /72 de pulgada, es decir, unos 0.35 milímetros.
- pc: picas. Una pica equivale a 12 puntos, o aproximadamente a 4.23 milímetros.
- px: pixel. Es la unidad mínima de resolución de la pantalla. En realidad suele considerársela una unidad.
Medidas relativas
Las unidades relativas no son valores exactos sino que se calculan a partir de otro valor de referencia. A pesar de parecer más difíciles de calcular son las más utilizadas en el diseño de sitios web responsive por su adaptabilidad a los diferentes dispositivos.
- em: Tamaño relativo al tamaño de texto de su contenedor.
- rem: Funciona igual que el em, con la diferencia que es relativo al valor de la fuente del elemento html
REM
html {
font-size: 16px;
}
h1 {
font-size: 1rem;
background-color: aqua;
padding: 5rem;
}
EM
html {
font-size: 16px;
}
body {
font-size: 32px;
}
h1 {
/* Ahora serán 32px! */
font-size: 1em;
background-color: aqua;
padding: 5rem;
}
html {
font-size: 16px;
}
h1 {
font-size: 2rem;
background-color: aqua;
padding: 1em;
Normalize CSS
https://necolas.github.io/normalize.css/
Normalize.css hace que los navegadores procesen todos los elementos de manera más consistente y en línea con los estándares modernos. Precisamente se dirige solo a los estilos que necesitan normalizarse.
Práctica
HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta
http-equiv="X-UA-Compatible"
content="IE=edge"
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>Práctica CSS</title>
<link
rel="stylesheet"
href="css/normalize.css"
/>
<link
rel="stylesheet"
href="css/style.css"
/>
</head>
<body>
<header>
<a href="/">Logo Empresa</a>
</header>
<nav>
<a href="#">primary</a>
<a href="#">secondary</a>
<a href="#">danger</a>
<a href="#">info</a>
</nav>
<section>
<article>
<img
src=""
alt=""
/>
<div>
<h5>Lorem, ipsum dolor.</h5>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet
exercitationem quod adipisci a eaque tempore recusandae voluptatibus
atque sed ratione dolores, officia deserunt et dolorum sunt velit
quis excepturi eius.
</p>
<a
href="https://www.google.cl/"
target="_blank"
>Google</a
>
</div>
</article>
</section>
</body>
</html>
Recursos
Clases
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta
http-equiv="X-UA-Compatible"
content="IE=edge"
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>Práctica CSS</title>
<link
rel="stylesheet"
href="css/normalize.css"
/>
<link
rel="preconnect"
href="https://fonts.googleapis.com"
/>
<link
rel="preconnect"
href="https://fonts.gstatic.com"
crossorigin
/>
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;700&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="css/style.css"
/>
</head>
<body>
<header class="container">
<a
href="/"
class="logo"
>Logo Empresa</a
>
</header>
<nav class="container mt-2">
<a
href="#"
class="btn btn-primary"
>primary</a
>
<a
href="#"
class="btn btn-secondary"
>secondary</a
>
<a
href="#"
class="btn btn-danger"
>danger</a
>
<a
href="#"
class="btn btn-info"
>info</a
>
</nav>
<section class="container mt-2">
<article class="card">
<img
src="assets/img/800x500.jpg"
alt=""
class="card-img"
/>
<div class="card-body">
<h5>Lorem, ipsum dolor.</h5>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet
exercitationem quod adipisci a eaque tempore recusandae voluptatibus
atque sed ratione dolores, officia deserunt et dolorum sunt velit
quis excepturi eius.
</p>
<a
href="https://www.google.cl/"
target="_blanck"
class="btn btn-success"
>Google</a
>
</div>
</article>
</section>
</body>
</html>
CSS
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
font-family: "Open Sans", sans-serif;
}
.mt-2 {
margin-top: 2rem;
}
.container {
margin-left: auto;
margin-right: auto;
width: 95%;
max-width: 600px;
/* background-color: aqua; */
}
.btn {
display: inline-block;
text-decoration: none;
font-size: 1rem;
padding: 0.5em;
margin: 0 0.1em;
border-radius: 0.5em;
}
.btn-primary {
color: white;
background-color: #264653;
}
.btn-secondary {
color: white;
background-color: #2a9d8f;
}
.btn-danger {
color: white;
background-color: #e76f51;
}
.btn-info {
color: black;
background-color: #e9c46a;
}
.btn-success {
color: black;
background-color: #f4a261;
}
.logo {
display: block;
text-decoration: none;
font-size: 3rem;
text-align: center;
color: white;
padding: 0.5em;
background-color: #264653;
}
.card {
width: 300px;
background-color: #2a9d8f;
color: white;
overflow: hidden;
border-radius: 0.5em;
}
.card-img {
width: 100%;
}
.card-body {
padding: 1em;
}
.card-body h5 {
font-size: 1.5rem;
margin: 1em 0;
font-weight: 700;
}
.card-body p {
font-weight: 300;
}