Le div parent ne peut pas être centré car la marge gauche du div enfant est négative.
P粉677573079
P粉677573079 2024-01-29 15:04:54
0
1
485

J'ai créé le div suivant, mais comme j'utilise une marge gauche négative pour décaler l'icône, je ne peux pas centrer l'intégralité du div. Nous pouvons nous en sortir sur le bureau car vous ne pouvez pas facilement dire que l'ensemble du div est déplacé un peu vers la gauche, mais sur mobile, le côté gauche de l'icône circulaire est coupé. Comment puis-je centrer l’ensemble du div ?

.icon-text-box {
  border: 1px solid red;
}

.icon-box {
  background: #fff;
  border-radius: 33px;
  margin: 6rem auto;
  padding: 4rem 4rem 4rem 7rem;
  box-shadow: 0 3px 6px -2px rgb(0 0 0 / 20%), 0 6px 12px rgb(0 0 0 / 10%);
  position: relative;
  display: flex;
  align-self: center;
  max-width: 900px;
}

.icon-box p {
  font-size: 22px;
  margin-bottom: 0;
}

.icon-box-icon {
  position: absolute;
  left: -90px;
  overflow: hidden;
  display: flex;
  align-self: center;
  height: 177px;
}

.icon-box-icon img {
  border-radius: 40px;
}
<div class="container-fluid mw-972 icon-text-box">
  <div class="icon-box">
    <div class="icon-box-icon">
      <img src="https://www.freepnglogos.com/uploads/spotify-logo-png/spotify-simple-green-logo-icon-24.png" />
    </div>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
  </div>
</div>

P粉677573079
P粉677573079

répondre à tous(1)
P粉107991030

Au lieu de auto marges, vous pouvez utiliser une idée différente pour centrer tout en ajoutant quelques marges sur les petits écrans

margin: 6rem max(90px,(100% - 900px)/2);

Code complet :

.icon-text-box {
  border: 1px solid red;
}

.icon-box {
  background: #fff;
  border-radius: 33px;
  margin: 6rem max(90px,(100% - 900px)/2);
  padding: 4rem 4rem 4rem 7rem;
  box-shadow: 0 3px 6px -2px rgb(0 0 0 / 20%), 0 6px 12px rgb(0 0 0 / 10%);
  position: relative;
  display: flex;
}

.icon-box p {
  font-size: 22px;
  margin-bottom: 0;
}

.icon-box-icon {
  position: absolute;
  left: -90px;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
  display: flex;
  height: 177px;
}

.icon-box-icon img {
  border-radius: 40px;
}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Si vous souhaitez une marge sur un côté, ressemblez également à ceci :

.icon-text-box {
  border: 1px solid red;
}

.icon-box {
  background: #fff;
  border-radius: 33px;
  margin: 6rem max(0px,(100% - 900px)/2) 6rem max(90px,(100% - 900px)/2);
  padding: 4rem 4rem 4rem 7rem;
  box-shadow: 0 3px 6px -2px rgb(0 0 0 / 20%), 0 6px 12px rgb(0 0 0 / 10%);
  position: relative;
  display: flex;
}

.icon-box p {
  font-size: 22px;
  margin-bottom: 0;
}

.icon-box-icon {
  position: absolute;
  left: -90px;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
  display: flex;
  height: 177px;
}

.icon-box-icon img {
  border-radius: 40px;
}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

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