Existe-t-il un moyen de forcer le texte de la flexbox à être centré verticalement, quel que soit l'autre code CSS dont nous disposons ?
P粉757556355
P粉757556355 2024-04-06 20:41:51
0
1
805

J'ai le code CSS suivant, qui fait partie d'un code CSS plus large utilisé dans un site Web que je développe :

.cards-u {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.card-u {
  margin: 20px;
  padding: 20px;
  width: 160px;
  height: 160px;
  line-height: 120px;
  justify-content: center;
  align-items: center;
  text-align: center;
  align-self: center;
  flex-direction: column;
  border-radius: 10px;
  box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.25);
  transition: all 0.2s;
  text-decoration: none;
}

.card-1-u {
  background: radial-gradient(#1fe4f5, #3fbafe);
}

Dans le code HTML j'ai :

<div class="cards-u">
 <a href="https://example.com" class="card-u card-1-u" style="text-decoration: none;">
   <h3>Text Sample 1</h3> 
 </a>
 <a href="https://example.com" class="card-u card-1-u" style="text-decoration: none;">
  <h3>Text Sample 2</h3> 
 </a>
</div>

Mais le texte Text Sample 1Text Sample 2 n'est pas centré verticalement, mais en haut de la flexbox. Il semble que quelque chose interfère dans mon gros code CSS, mais je ne sais pas quoi. Ma question est en supposant que nous ne savons pas ce qu'est le reste du CSS, pouvons-nous forcer cette partie à faire ce que nous voulons, c'est-à-dire centrer verticalement le texte dans la flexbox ?

P粉757556355
P粉757556355

répondre à tous(1)
P粉238355860

Cela se produit parce que .cards-u n'a pas de hauteur définie. Il prend la hauteur du contenu comme sa propre hauteur et maintient le contenu dans cette zone.

Vous devez donner à .cards-u la hauteur complète de la page en utilisant 100vh, ou procéder comme suit :

.cards-u{
  position: relative;
}

.card-u{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);

}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal