CSS - problemas con la propiedad position

 
Vista:
sin imagen de perfil

problemas con la propiedad position

Publicado por Maicol (6 intervenciones) el 05/09/2023 07:32:45
Hola, estoy practicando lo que hasta ahora he estudiado de CSS, he tenido todo tipo de dificultades como es normal en todo proceso de aprendizaje, sin embargo hay un punto que me ha resultado más dificil de lo normal al momento de llevarlo a la practica, se trata de la propiedad position, estoy haciendo un sitio web para una heladería ficticia, ya he diseñado todas las paginas del sitio salvo aquella en la que se encuentra el menú, el resultado que quiero obtener es de tres filas de imagenes, las dos primeras con tres columnas y la ultima con una sola columna centrada algo así:
menu

Pero el resultado que obtengo es distinto:

menu_2

Este es el código HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<div class="opciones" id="helado_1">
                <figure>
                    <img src="./img/arequipe.jpg" alt="Imagen de un helado de arequipe">
                    <figcaption>Helado de arequipe a $2.500</figcaption>
                </figure>
            </div>
            <div class="opciones" id="helado_2">
                <figure>
                    <img src="./img/vainilla.jpg" alt="Imagen de un helado de vainilla">
                    <figcaption>Helado de vainilla a $2.500</figcaption>
                </figure>
            </div>
            <div class="opciones" id="helado_3">
                <figure>
                    <img src="./img/brownie.jpg" alt="Imagen de un helado de brownie">
                    <figcaption>Helado de brownie a $3.000</figcaption>
                </figure>
            </div>
            <div class="opciones" id="helado_4">
                <figure>
                    <img src="./img/chocolate.jpg" alt="Imagen de un helado de chocolate">
                     <figcaption>Helado de chocolate a $2.500</figcaption>
                 </figure>
            </div>
            <div class="opciones" id="heldo_5">
                <figure>
                    <img src="./img/coco.jpg" alt="Imagen de un helado de coco">
                    <figcaption>Helado de coco a $3.000</figcaption>
                </figure>
            </div>
             <div class="opciones" id="heldo_6">
                <figure>
                    <img src="./img/fresa.jpg" alt="Imagen de un helado de fresa">
                    <figcaption>Helado de fresa a $2.500</figcaption>
                </figure>
             </div>
             <div class="opciones" id="helado_7">
                <figure>
                    <img src="./img/ron-con-pasas.jpg" alt="Imagen de un helado de ron con pasas">
                    <figcaption>Helado de ron con pasas a $3.000</figcaption>
               </figure>
             </div>

Este es el código CSS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.opciones{
    height: 200px;
    width: 200px;
}
.opciones img{
    height: 200px;
    width: 200px;
}
#helado_1{
    position: absolute;
    left: 0;
    top: 200px;
}
#helado_2{
    position: absolute;
    left: 300px;
    top: 200px;
}
#helado_3{
    position: absolute;
    left: 600px;
    top: 200px;
}
#helado_4{
    position: absolute;
    left: 0;
    top: 500px;
}
#helado_5{
    position: absolute;
    left: 300px;
    top: 500px;
}
#helado_6{
    position: absolute;
    left: 600px;
    top: 500px;
}
#helado_7{
    position: absolute;
    left: 900px;
    top: 1000px;
}
Quiza ignore algo que no suela explicarse sobre el valor absolute de la propiedad position quiza sea algo muchos más básico, de cualquier modo agradezco cualquier sugerencia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ivan

problemas con la propiedad position

Publicado por Ivan (45 intervenciones) el 05/09/2023 19:14:41
Hola,

veo varios errores así que en vez de comentarlos uno a uno te muestro un ejemplo de código correcto para hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8">
  <title>Grid centrado</title>
  <style>
    .container {
      position: relative;
    }
    .wrapper {
      left: 50%;
      position: absolute;
      transform: translateX(-50%);
      display: grid;
      grid-gap: 10px;
      grid-template-rows: repeat(3, 100px);
      grid-template-columns: repeat(3, 100px);
      background-color: bisque;
    }
    .wrapper div {
      text-align: center;
      background-color: lightblue;
    }
    .wrapper div:last-child {
      grid-column: 2;
    }
  </style>
</head>
<body>
  <h2>Ejemplo de grid centrado</h2>
  <p>La última fila también muestra un elemento centrado</p>
  <div class="container">
    <div class="wrapper">
      <div>One</div>
      <div>Two</div>
      <div>Three</div>
      <div>Four</div>
      <div>Five</div>
      <div>Six</div>
      <div>Seven</div>
    </div>
  </div>
</body>
</html>

Vamos por partes, primero el HTML:

- Usamos un contenedor general para centrar todo el grid
- Un contenedor del grid donde aplicamos los estilos generales de nuestra rejilla
- Un contenedor para cada recuadro de nuestra rejilla

Ahora el CSS, usamos clases en vez de id para poder implementarlo más veces en la página su fuera necesario.

- La clase .container es un truquillo para centrar un grid, que de forma nativa es inline y no se puede centrar con margin ni align. Establecemos su position en relative para que el grid lo tome como referencia inmediata.

- La clase .wrapper define la estructura de nuestro grid (filas, columnas, espaciados, color de fondo etc.), para centrarlo lo posicionamos absoluto y desplazado 50% (respecto a .container). Ahora el truco es transformar su posición X -50% y queda centrado.

- Con .wrapper div establecemos los atributos para todos los hijos div

- Con .wrapper div:last-child establecemos los atributos para el último div dentro del .wrapper, en este caso lo colocamos en la columna 2.

Espero que te sea de utilidad.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

problemas con la propiedad position

Publicado por Maicol (6 intervenciones) el 05/09/2023 21:20:20
Muchas por su ayuda, creo que tendré que esperar porque muchas de las propiedades que usted usó aun no las he estudiado.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

problemas con la propiedad position

Publicado por Ivan (45 intervenciones) el 06/09/2023 09:39:43
Hola de nuevo,

entiendo que estás haciendo algún tipo de curso sobre CSS con ejercicios y demás.
Eso está muy bién, pero si quieres ser un "alumno avanzado" jeje e indagar más sobre el tema te dejo un link con información donde puedes aprender mucho sobre CSS y temas como las pseudo-clases o pseudo-elementos como los que he utilizado.

Una oservación, cuando veas reglas CSS con esto:

-moz- Se refiere a plugins de Mozilla
-webkit- Se refiere a plugins de Safari, Chrome, etc.

En ambos casos no son propiedades estándar de CSS y no se recomienda su uso para el público en general.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

problemas con la propiedad position

Publicado por Maicol (6 intervenciones) el 07/09/2023 03:27:19
Nuevamente le agradezco mucho su ayuda, estaba empezando a frustrarse por no obtener ner el resultado que quería. Aprovecharé al máximo los recursos y conocimientos que me ha compartido.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

problemas con la propiedad position

Publicado por Maicol (6 intervenciones) el 08/09/2023 06:58:14
Hola, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar