El contenido de un elemento de la cuadrícula cambia su tamaño

Kasra

Tengo cuatro elementos de cuadrícula que quiero que sean cuadrados perfectos. Hice esto usando (25vw) pero cuando coloco cosas en las cuadrículas debajo de estas cuadrículas cuadradas, se expanden y cambian por completo debido a la cuadrícula debajo de ellas.

* {

    margin: 0px;
    padding: 0px;
}

.wrapper {

    height: 100vh;

    display: grid;
    grid-template-columns: repeat(4, 25vw - 3.75px);
    grid-template-rows: minmax(0, 1.25fr) calc(25vw - 3.75px) 7fr 3fr 1.5fr;
    grid-gap: 5px;
}
.attendants {
    background: brown;
    grid-column: 1/2;
    grid-row: 3/4;
}
.header-attendants {
}
.list-attendants {
}
/*the rest is irrelevant*/

.navbar {

    background: white;
    grid-column: 1/5;
    grid-row: 1/2;
}
.webcam {

    background: black;
    grid-column: 1/2;
    grid-row: 2/3;
}
.class-background {

    background: purple;
    grid-column: 2/3;
    grid-row: 2/3;
}
.events {

    background: green;
    grid-column: 3/4;
    grid-row: 2/3;
}
.tools {

    background: pink;
    grid-column: 4/5;
    grid-row: 2/3;

}
.frame {

    background: yellow;
    grid-column: 2/4;
    grid-row: 3/5;
}
.chat {

    background: red;
    grid-column: 4/5;
    grid-row: 3/4;
}
.three-buttons {

    background: darkgreen;
    grid-column: 1/2;
    grid-row: 4/6;
}
.text-box {

    background: darkred;
    grid-column: 2/4;
    grid-row: 5/6;
}
.sharing-status {

    background: blue;
    grid-column: 4/5;
    grid-row: 4/6;
}
<!DOCTYPE html>
<html>
<head>
    <title>Focus</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div class="wrapper">
        <div class="navbar">
            testing...
        </div>
        <div class="webcam">
            testing...
        </div>
        <div class="class-background">
            testing...
        </div>
        <div class="events">
            testing...
        </div>
        <div class="tools">
            testing...
        </div>
    <!-- this is what I'm struggling with, from here -->
        <div class="attendants">
            <div class="header-attendants">
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                    quis nostrud exercitation ullamco laboris.
            </div>
            <div class="list-attendants">
                <div class="attendant">
                    <p class="name">John</p>
                    <p class="role">teacher</p>
                    <p class="joined-at">0:00</p>
                </div>
            </div>
        </div>
    <!-- to here -->
        <div class="frame">
            testing...
        </div>
        <div class="chat">
            testing...
        </div>
        <div class="three-buttons">
            testing...
        </div>
        <div class="text-box">
            testing...
        </div>
        <div class="sharing-status">
            testing...
        </div>
    </div>

    <script src="script.js" type="text/javascript"></script>
</body>
</html>

Idealmente, se vería así, independientemente del contenido de las cuadrículas:

* {

    margin: 0px;
    padding: 0px;
}


.wrapper {

    height: 100vh;

    display: grid;
    grid-template-columns: repeat(4, 25vw - 3.75px);
    grid-template-rows: minmax(0, 1.25fr) calc(25vw - 3.75px) 7fr 3fr 1.5fr;
    grid-gap: 5px;
}


.navbar {

    background: white;
    grid-column: 1/5;
    grid-row: 1/2;
}


.webcam {

    background: black;
    grid-column: 1/2;
    grid-row: 2/3;
}


.class-background {

    background: purple;
    grid-column: 2/3;
    grid-row: 2/3;
}


.events {

    background: green;
    grid-column: 3/4;
    grid-row: 2/3;
}


.tools {

    background: pink;
    grid-column: 4/5;
    grid-row: 2/3;

}


.attendants {

    background: brown;
    grid-column: 1/2;
    grid-row: 3/4;
    
    
}


.header-attendants {


    

}



.list-attendants {


    

}


.frame {

    background: yellow;
    grid-column: 2/4;
    grid-row: 3/5;
}


.chat {

    background: red;
    grid-column: 4/5;
    grid-row: 3/4;
}


.three-buttons {

    background: darkgreen;
    grid-column: 1/2;
    grid-row: 4/6;
}


.text-box {

    background: darkred;
    grid-column: 2/4;
    grid-row: 5/6;
}


.sharing-status {

    background: blue;
    grid-column: 4/5;
    grid-row: 4/6;
}
<!DOCTYPE html>
<html>
<head>
    <title>Focus</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div class="wrapper">
        <div class="navbar">
            testing...
        </div>
        <div class="webcam">
            testing...
        </div>
        <div class="class-background">
            testing...
        </div>
        <div class="events">
            testing...
        </div>
        <div class="tools">
            testing...
        </div>
        <div class="attendants">
            <div class="header-attendants">
                    .
            </div>
            <div class="list-attendants">
                <div class="attendant">
                    <p class="name">John</p>
                    <p class="role">teacher</p>
                    <p class="joined-at">0:00</p>
                </div>
            </div>
        </div>
        <div class="frame">
            testing...
        </div>
        <div class="chat">
            testing...
        </div>
        <div class="three-buttons">
            testing...
        </div>
        <div class="text-box">
            testing...
        </div>
        <div class="sharing-status">
            testing...
        </div>
    </div>

    <script src="script.js" type="text/javascript"></script>
</body>
</html>

Cualquier ayuda será muy apreciada.

Acompañar Afif

Necesitas agregar calc()dentro de la repetición:

repeat(4, calc(25vw - 3.75px))

* {
  margin: 0px;
  padding: 0px;
}

.wrapper {
  height: 100vh;
  display: grid;
  grid-template-columns: repeat(4, calc(25vw - 3.75px));
  grid-template-rows: minmax(0, 1.25fr) calc(25vw - 3.75px) 7fr 3fr 1.5fr;
  grid-gap: 5px;
}

.attendants {
  background: brown;
  grid-column: 1/2;
  grid-row: 3/4;
}

.header-attendants {}

.list-attendants {}


/*the rest is irrelevant*/

.navbar {
  background: white;
  grid-column: 1/5;
  grid-row: 1/2;
}

.webcam {
  background: black;
  grid-column: 1/2;
  grid-row: 2/3;
}

.class-background {
  background: purple;
  grid-column: 2/3;
  grid-row: 2/3;
}

.events {
  background: green;
  grid-column: 3/4;
  grid-row: 2/3;
}

.tools {
  background: pink;
  grid-column: 4/5;
  grid-row: 2/3;
}

.frame {
  background: yellow;
  grid-column: 2/4;
  grid-row: 3/5;
}

.chat {
  background: red;
  grid-column: 4/5;
  grid-row: 3/4;
}

.three-buttons {
  background: darkgreen;
  grid-column: 1/2;
  grid-row: 4/6;
}

.text-box {
  background: darkred;
  grid-column: 2/4;
  grid-row: 5/6;
}

.sharing-status {
  background: blue;
  grid-column: 4/5;
  grid-row: 4/6;
}
<!DOCTYPE html>
<html>

<head>
  <title>Focus</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
  <div class="wrapper">
    <div class="navbar">
      testing...
    </div>
    <div class="webcam">
      testing...
    </div>
    <div class="class-background">
      testing...
    </div>
    <div class="events">
      testing...
    </div>
    <div class="tools">
      testing...
    </div>
    <!-- this is what I'm struggling with, from here -->
    <div class="attendants">
      <div class="header-attendants">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
      </div>
      <div class="list-attendants">
        <div class="attendant">
          <p class="name">John</p>
          <p class="role">teacher</p>
          <p class="joined-at">0:00</p>
        </div>
      </div>
    </div>
    <!-- to here -->
    <div class="frame">
      testing...
    </div>
    <div class="chat">
      testing...
    </div>
    <div class="three-buttons">
      testing...
    </div>
    <div class="text-box">
      testing...
    </div>
    <div class="sharing-status">
      testing...
    </div>
  </div>

  <script src="script.js" type="text/javascript"></script>
</body>

</html>

Para algunas funciones, puede omitir el me calc()gusta min(), max()o clamp()pero no es el caso derepeat()

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

El encabezado de fila de la cuadrícula de datos no cambia de tamaño al contenido

Ajustar el tamaño de un elemento SVG a su contenido

CSS cambia automáticamente el tamaño del elemento de cuadrícula

CSS Grid cambia el tamaño de la pista cuando la cuadrícula anidada cambia de tamaño

¿Por qué cuando agrego un espacio entre los cubos en una cuadrícula, todo el tamaño de la cuadrícula cambia?

evitar que el contenido aumente el tamaño de la columna de la cuadrícula CSS

¿Cómo puedo evitar que un elemento en un diseño de cuadrícula CSS crezca para adaptarse a su contenido?

El elemento de la cuadrícula se contrae en un tamaño de pantalla más pequeño

El elemento de la cuadrícula se contrae en un tamaño de pantalla más pequeño

Cuando se cambia el tamaño de la ventana, el elemento span no obtiene su ancho

¿Puede controlar el tamaño de las filas de la cuadrícula cuando un elemento grande ocupa varias filas?

La cuadrícula con GridSplitter cambia de tamaño incorrectamente al cambiar el tamaño de la ventana principal

JScrollPane no cambia el tamaño cuando cambio el tamaño de su contenido

Resolver el contenido de la cuadrícula

¿Cómo especificar un tamaño diferente para cada elemento de la cuadrícula y mantener el envoltorio?

Fijar un elemento SVG en su posición cuando la ventana cambia de tamaño

Figcaption único cambia el tamaño de la imagen en el diseño de la cuadrícula

Reorganización de la cuadrícula de reacción cuando se cambia el tamaño de la pantalla

No puedo centrar el contenido en un elemento de la cuadrícula con justify-content: center; o justificar-elementos: centro. ¿Qué estoy haciendo mal?

Cómo animar el cambio del tamaño del elemento de la cuadrícula Material UI

Justificar el contenido hace que el elemento de la cuadrícula ocupe menos espacio

¿Cómo conservo el elemento seleccionado resaltado en la vista de cuadrícula cuando cambia numColumns?

El tamaño del contenido de ViewController no cambia el tamaño de la ventana emergente

La imagen dentro de la cuadrícula extiende el tamaño del elemento de la cuadrícula de manera desproporcionada a otros

Material-UI: la cuadrícula receptiva no cambia de tamaño en el ancho del móvil

PyQt5 cambia el tamaño de las pestañas a su contenido

¿Cómo obtener un espacio de cuadrícula entre el elemento de la cuadrícula y el contenedor?

¿Cómo obtener un espacio de cuadrícula entre el elemento de la cuadrícula y el contenedor?

¿Cómo 'ocultar' el contenido del elemento html cuando el navegador cambia el tamaño al tamaño de la pantalla del móvil?

TOP Lista

CalienteEtiquetas

Archivo