在一个部分中水平和垂直居中 div 并使每个部分在滚动时填满整个页面

Center horizontally and vertically a div in a section and make each section fill the whole page when scrolling

我正在尝试对每个部分填满整个页面的页面进行编码。而且我还试图将每个部分中的 div 垂直和水平居中。 不知道可不可以,如果各位大侠能指教一下就好了。 我还想知道是否有可能,当我滚动时它会自动转到下一部分。不知道说的清楚了没有。

这是 CSS :

.presta .container {
  width: 100%;
  position: relative;
}

.presta .h1 {
  font-size: 80px;
  font-weight: bold;
}

.presta card {
  padding: 30px;
  margin: 0 auto;
}

.logoPresta:hover {
  transition: transform 0.3s ease-in;
  transform: translateY(-10px);
}

.prestaShow {
  text-align: center;
}

.wrapper {
  min-height: 100%;
}
<div class="navbar ">
  <div class="container flex">
    <div class="logo" data-aos="fade-right">
      <a href="index.html"><img src="images/linko_bg_transp.png" alt="" /></a>
    </div>
    <nav data-aos="fade-in">
      <ul>
        <li><a href="index.html">Accueil</a></li>
        <li><a href="pres.html">Présentation</a></li>
        <li><a href="Presta.html">Nos Prestations</a></li>
        <li><a href="form.html">Nous contacter</a></li>
      </ul>
    </nav>
  </div>
</div>

<section class="presta bg-light wrapper">
  <div class="container">
    <div class="text-center">
      <h1>Nos domaines d'expertises</h1>
    </div>
    <div class="grid grid-4">
      <div class="logoPresta card">
        <img src="images/1.jpg" alt="">
      </div>
      <div class="logoPresta card">
        <img src="images/2.jpg" alt="">
      </div>
      <div class="logoPresta card">
        <img src="images/3.jpg" alt="">
      </div>
      <div class="logoPresta card">
        <img src="images/4.jpg" alt="">
      </div>
    </div>
  </div>
</section>

<section class="prestaShow wrapper">
  <div class="container info">
    <div class="text-center">
      <h2>Informatique</h2>
    </div>
    <div class="textePresta card">
      Conception & développement d'applications web
    </div>
    <div class="textePresta card">
      Création & amélioration de bases de données
    </div>
    <div class="textePresta card">
      Déploiement d'infrastructures réseaux
    </div>

  </div>
</section>

页面图片如下:

您可以通过将 100% 更改为 100vh

将部分调整为整页高度

此外,请查看 CSS 部分以了解如何将包装器的内容居中(展开代码片段以查看差异)。

更新: .snap-wrapper 将帮助您滚动完整部分,查看 full-screen.

上的代码片段

.presta .container {
  width: 100%;
  position: relative;
}

.presta .h1 {
  font-size: 80px;
  font-weight: bold;
}

.presta card {
  padding: 30px;
  margin: 0 auto;
}

.logoPresta:hover {
  transition: transform 0.3s ease-in;
  transform: translateY(-10px);
}

.prestaShow {
  text-align: center;
}

.wrapper {
  /* centering wrapper content */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

/* use .snap-wrapper to scroll page by full sections */
.snap-wrapper {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  scroll-snap-type: y mandatory;
  overflow: auto;
  height: 100vh;
}

.snap-wrapper > .wrapper {
  scroll-snap-align: center;
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">


<div class="navbar ">
  <div class="container flex">
    <div class="logo" data-aos="fade-right">
      <a href="index.html"><img src="images/linko_bg_transp.png" alt="" /></a>
    </div>
    <nav data-aos="fade-in">
      <ul>
        <li><a href="index.html">Accueil</a></li>
        <li><a href="pres.html">Présentation</a></li>
        <li><a href="Presta.html">Nos Prestations</a></li>
        <li><a href="form.html">Nous contacter</a></li>
      </ul>
    </nav>
  </div>
</div>

<div class="snap-wrapper">
  <section class="presta bg-light wrapper">
    <div class="container">
      <div class="text-center">
        <h1>Nos domaines d'expertises</h1>
      </div>
      <div class="grid grid-4">
        <div class="logoPresta card">
          <img src="images/1.jpg" alt="">
        </div>
        <div class="logoPresta card">
          <img src="images/2.jpg" alt="">
        </div>
        <div class="logoPresta card">
          <img src="images/3.jpg" alt="">
        </div>
        <div class="logoPresta card">
          <img src="images/4.jpg" alt="">
        </div>
      </div>
    </div>
  </section>

  <section class="prestaShow wrapper">
    <div class="container info">
      <div class="text-center">
        <h2>Informatique</h2>
      </div>
      <div class="textePresta card">
        Conception & développement d'applications web
      </div>
      <div class="textePresta card">
        Création & amélioration de bases de données
      </div>
      <div class="textePresta card">
        Déploiement d'infrastructures réseaux
      </div>

    </div>
  </section>
</div>