Centratura di 4 div dentro 4 div con inline-block

di il
4 risposte

Centratura di 4 div dentro 4 div con inline-block

Salve a tutti.

Sto cercando di studia un po' di soluzioni per centrare gli elementi, ma non riesco minimamente nella cosa.

Questo è la situazione HTML:

<div class="vc_row2">
       <div class="vc_column">
         <div class="pulsante"></div>
       </div>
       <div class="vc_column">
         <div class="allSides"></div>
       </div>
       <div class="vc_column">
         <div class="circle"></div>
       </div>
       <div class="vc_column">
         <div class="circlePulse"></div>
       </div>
     </div>

Questi, invece, i CSS (semplificati, perché tralascio animazioni e quant'altro sto provando):

.vc_row2 {
  width: 100vw;
  height: 30vh;
  vertical-align: middle;
}
.vc_column{
  width: 24%;
  height: 30vh;
  padding: 5vh 0;
  display: inline-block;
  position: relative;
  vertical-align: middle;
  line-height: 30vh;

}
.pulsante{
   margin: 0 auto;
   display: block;
   width:150px;
   height:150px;
   border: solid 1px #555;
   background-color: #eed;
}
.allSides{
  margin: auto;
  width:150px;
  height:150px;
  border: solid 1px #555;
  background-color: #eed;
  border-radius:50%;
}
.circle {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 30px;
  height: 30px;
}
.circlePulse {
  width: 32px;
  height: 32px;
  background: #34FF4A;
  border-radius: 50%;
  position: relative;
}

L'unico elemento che si centra nei DIV con classe vc_column è ovviamente quello con classe circle (posizione assoluta, e spostamento, va da sé).

Ma, gli altri? Ho provato in tanti modi, evitando l'opzione flex che certo è più facile. Qualcuno sa spiegarmi il perché?

4 Risposte

  • Re: Centratura di 4 div dentro 4 div con inline-block

    15/09/2023 - BennyBatt ha scritto:


    Sto cercando di studia un po' di soluzioni per centrare gli elementi, ma non riesco minimamente nella cosa.

    Ma quali elementi devi centrare? Non potranno stare tutti quanti al centro, quindi non è chiaro cosa vuoi ottenere.

    Crea un Fiddle con l'esempio e spiega meglio qual è l'obiettivo da raggiungere.

  • Re: Centratura di 4 div dentro 4 div con inline-block

    Giusto, hai ragione, in effetti non era spiegato benissimo.

    Anzitutto, il Jsfiddle: https://jsfiddle.net/BennyBatt/7bL691r0/7/.

    Ora, lo so che forse è semplice, ma io dopo un bel po' che mi occupo di HTML faccio ancora casino con le centrature degli elementi.

    Quello che vorrei ottenere è una centratura verticale e orizzontale dei DIV con classe “vc_column” nel contenitore DIV con classe “vc_row2”, e poi gli altri elementi centrati nei rispettivi DIV con classe “vc_column” (tranne il DIV con classe “cicle” che è già centrato con position:absolute).

    É possibile farlo mantenendo il display: inline-block nelle classi “vc_column”?

  • Re: Centratura di 4 div dentro 4 div con inline-block

    18/09/2023 - BennyBatt ha scritto:


    É possibile farlo mantenendo il display: inline-block nelle classi “vc_column”?

    Teoricamente sì, mettendo display: table-cell nello stile dell'elemento vc_row2.

  • Re: Centratura di 4 div dentro 4 div con inline-block

    Grazie. Ora ho qualcosa in più da approfondire.

    Ho apportato qualche modifica, e in effetti la tua soluzione funziona.

    In pratica, sia nel DIV con classe “vc_row2”, sia in quello con classe “vc_column” ho sostituito i display: inline-block con display: table-cell e le centrature iniziano a definirsi.

    Poi, ho dovuto cambiare nella classe “vc_column”  width: 25% con width: 25vw e ho recuperato le corrette dimensioni. 

    Infine, per centrare l'ultimo cerchio, nella classe “circlePulse” ho aggiunto margin: auto

    Non ho controllato se il layout resta responsive, ma nel caso troverò il modo di aggiustarlo. 

    Il link precedente punta ora ad un JSfiddle corretto, se a qualcuno dovesse servire.

    Una nota inerente al forum: come riesco a indicare che il POST è risolto?

Devi accedere o registrarti per scrivere nel forum
4 risposte