使用绝对定位的内容时强制Bootstrap div垂直扩展

蓝狗牧场

如何强制中间div在小于1000px的屏幕上垂直扩展,而不会在第三div的图像下方显示文字?

清除浮动不起作用。

这是Bootstrap 4.4.1。

https://jsfiddle.net/o4h0czv7/

HTML:

<div class="container-fluid">
    <div class="row">
        <div class="col-12 text-center">
            <img class='img-fluid' src="https://placekitten.com/1400/300" /> 
            <div class="title">
                Kittens Kittens
            </div>
        </div>
    </div>
</div>
</div>
<div class="container-fluid">
    <div class="col-12 text-center">
        <div class="row">
            <img class='img-fluid' src="https://placekitten.com/1400/400" /> 
            <div class="text">
                <p>
                    At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
                </p>
                <p>
                    At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
                </p>
            </div>
        </div>
    </div>
</div>
<div class="container-fluid">
    <div class="col-12 text-center">
        <div class="row">
            <img class='img-fluid' src="https://placekitten.com/1400/250" /> 
            <div class="text">
                At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium 
            </div>
        </div>
    </div>
</div>

CSS:

body {
        height: 100%;
        font-size: 16px;
        color:#fff;
        overflow: none;
        }
        
        .text {
        position: absolute;
        top:0;
        left:0;
        right: 0;
        height: 100%;
        }
        
        .title {
        position: absolute;
        top:10%;
        left:0;
        right: 0;
        height: 100%;
        }
焦点风格

.middle-block为中间容器添加了类,用于@media (max-width: 1000px) {...}确定屏幕上小于1000像素的更改。

在这里您可以看到“.middle-block .text现在relative”和“.middle-block .img-fluid现在” absolute因此,现在块的高度取决于.middle-block .text高度。

由于position: absoluteobject-fit: cover;-结合使用.middle-block .img-fluid开始像背景图片一样background-size: cover;

body {
  height: 100%;
  font-size: 16px;
  color: #fff;
  overflow: none;
}

.text {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
}

.title {
  position: absolute;
  top: 10%;
  left: 0;
  right: 0;
  height: 100%;
}

@media (max-width: 1000px) {
  .middle-block .text {
    position: relative;
    height: auto;
    z-index: 2;
  }
  .middle-block .img-fluid {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    object-fit: cover;
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js"></script>


<div class="container-fluid">
  <div class="row">
    <div class="col-12 text-center">
      <img class='img-fluid' src="https://placekitten.com/1400/300" />
      <div class="title">
        Kittens Kittens
      </div>
    </div>
  </div>
</div>

<div class="container-fluid middle-block">
  <div class="col-12 text-center">
    <div class="row">
      <img class='img-fluid' src="https://placekitten.com/1400/400" />
      <div class="text">
        <p>
          At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
          animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
          est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut
          reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
        </p>
        <p>
          At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
          animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
          est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut
          reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
        </p>
      </div>
    </div>
  </div>
</div>
<div class="container-fluid">
  <div class="col-12 text-center">
    <div class="row">
      <img class='img-fluid' src="https://placekitten.com/1400/250" />
      <div class="text">
        At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium
      </div>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章