【问题标题】:Child container top margin pulls down parent top margin子容器上边距拉低父上边距
【发布时间】:2020-09-22 11:50:35
【问题描述】:

我在父容器中有一张背景图片,覆盖了整个屏幕宽度。

我想要一个在父容器中居中的子容器,它将包含一些文本并具有半透明的背景颜色。

无论我如何尝试设置子容器的上边距,父容器的上边距都会随着子容器的上边距移动,就好像两个顶部边缘“粘合”在一起一样。父级的边距跟随子级的。

如何使包含的元素 (.content) 向下移动,同时将图像的上边缘固定在页面顶部?

谢谢!

BG image follows box's top margin

/* Header */

.hero {
  background: url('../images/hero_laptop_2.jpg') no-repeat center center/cover;
  height: 75vh;
  position: relative;
  color: #fff;
}

.hero .content {
  border: solid black 1px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 40%;
  height: 60%;
  padding: 20px;
  z-index: 1;
  margin-left: auto;
  margin-right: auto;
  margin-top: 200px;
}
<header class="hero">
  <div id="navbar" class="navbar top">
    <h1 class="logo">
      <span class="text-primary"><i class="fas fa-desktop"></i> IT</span>-Simplified</h1>
    <h1 id="navbar-phone">845-520-1115</h1>
    <nav>
      <ul>
        <li><a href="#home">Home</a></li>
        <li><a href="about.html">About</a></li>
        <li><a href="services.html">Services</a></li>
        <li><a href="testimonials.html">Testimonials</a></li>
        <li><a href="blog.html">Blog</a></li>
        <li><a href="#contact-form">Contact</a></li>
      </ul>
    </nav>
  </div>

  <div class="content">
    <h1>Welcome to IT-Simplified</h1>
    <p>We Provide COMPUTER SOLUTIONS... <br>Simply & Affordably.</p>
    <p id="call-us">Call Us: 845-520-1115</p>
    <!-- <a href="testimonials.html" class="btn"><i class="fas fa-chevron-right"></i> Testimonials</a> -->
  </div>
</header>

【问题讨论】:

    标签: html css parent-child margin positioning


    【解决方案1】:

    您需要向 .hero .content 类添加绝对位置或其他定位,以便它独立于父容器浮动在背景之上。编辑:在下面的解决方案中,我使用了position: relative;

    z-index 是无关紧要的,因为定位将它带出正常的 html 流上下文,所以我删除了它。做了一些其他的更改,看看(使用全屏,在内容框下方的小sn-p区域无法正确显示)。

    或者,您可以尝试创建 .hero 容器 display: flex;,以便将其子容器放置在其中,但在您希望顶部导航和下方内容的情况下,这似乎并不实用。

    /* Header */
    
    .hero {
      background: url('https://www.esa.int/var/esa/storage/images/esa_multimedia/images/2017/11/autumn_fireball/17255671-1-eng-GB/Autumn_fireball.jpg') no-repeat center center/cover;
      height: 100vh;
      color: #fff;
    }
    
    .hero .content {
      color: white;
      position: relative;
      border: solid yellow 1px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      width: 40%;
      padding: 20px;
      margin-left: auto;
      margin-right: auto;
    }
    <header class="hero">
      <div id="navbar" class="navbar top">
        <h1 class="logo">
          <span class="text-primary"><i class="fas fa-desktop"></i> IT</span>-Simplified</h1>
        <h1 id="navbar-phone">845-520-1115</h1>
        <nav>
          <ul>
            <li><a href="#home">Home</a></li>
            <li><a href="about.html">About</a></li>
            <li><a href="services.html">Services</a></li>
            <li><a href="testimonials.html">Testimonials</a></li>
            <li><a href="blog.html">Blog</a></li>
            <li><a href="#contact-form">Contact</a></li>
          </ul>
        </nav>
      </div>
    
      <div class="content">
        <h1>Welcome to IT-Simplified</h1>
        <p>We Provide COMPUTER SOLUTIONS... <br>Simply & Affordably.</p>
        <p id="call-us">Call Us: 845-520-1115</p>
        <!-- <a href="testimonials.html" class="btn"><i class="fas fa-chevron-right"></i> Testimonials</a> -->
      </div>
    </header>

    结果:

    【讨论】:

    • 感谢您的建议。虽然我确实让 .content 框在垂直方向上正确定位,但我似乎找不到将它水平居中的方法。如果我将其绝对定位,则设置为“自动”的边距不起作用……该框仅停留在左侧。如果我设置绝对边距,那么整个事情当然不会响应。你能找到一种让内容框在垂直和水平方向居中同时仍然保持响应的方法吗?谢谢!
    • 啊,对不起,我把它定位为相对的,而不是绝对的。如果您想保持它相对于一侧的百分比值作为边距,绝对应该可以工作。但是position: relative; 在这里可以正常工作,并且您同时摆脱了 z-index。编辑帖子以显示由全屏 Stack sn-p 查看器呈现的最终结果。
    • P.S.如果它是真正的客户/公司,请随意编辑帖子中的图像、电话号码和公司名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2015-05-11
    相关资源
    最近更新 更多