php - 宽度属性不适用于绝对定位的 div

标签 php html css twitter-bootstrap width

我正在为我的一位画家 friend 开发网站。在他的主页上,我想做一个水平滚动的画廊,展示他最近的 5 件作品。此外,这个想法是,当一个人将鼠标悬停在他的每幅图像上时,他们会看到这幅画的名称和实际尺寸(例如,对于可能有兴趣出于购买目的联系他的人)。

无论如何,我设法制作了水平滚动的小画廊,这真的很简单,而且我似乎确实在制作悬停效果的正确道路上(我遵循了 this tutorial ),除了我的 div(保留图像和覆盖信息)不接受我分配给它的宽度。

这是我的 html 的样子(它实际上是 php,但 php 部分工作得很好):

<div class="imagem">
  <ul>
    <?php for ($i = 0; $i < 5; $i++) { ?>
      <li>
        <div class="img">
          <img src="static/css/images/exemplo1.jpg" style="height: 40vh;" />
          <div class="overlay">
            <p>Name of the Painting</p>
            <p>45cm x 37cm</p>
          </div>
        </div>
      </li>
    <?php } ?>
  </ul>
</div>

然后我这部分的 CSS 看起来像这样:

.container .imagem {
  /*background-color: rgba(41, 41, 41, 0.1);*/
  border-top: 1px solid #292929;
  border-bottom: 1px solid #292929;

  padding: 30px 0;
  padding-bottom: 20px;

  width: 90%;

  overflow-x: scroll;
  overflow-y: hidden;

  -ms-transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  transform: translate(-50%, 0);

  position: relative;
  left: 50%;
}

.container .imagem::-webkit-scrollbar {
  display: none;
}

.container .imagem ul {
  white-space: nowrap;
}

.container .imagem li {
  display: inline-block;
}

.container .imagem .img {
  display: inline-block;
}

.container .imagem .img .overlay {
  display: inline-block;
  z-index: 20;
  background: rgba(0, 0, 0, 0.8);
  overflow: hidden;
  transition: all 0.5s;
  color: rgba(255, 255, 255, 0.5);


  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 0;
}

.container .imagem .img:hover .overlay {
  height: 100%;
}

我也在使用 Bootstrap,这实际上是我使用它的第一个元素,所以我不确定我是否会遇到任何问题。

无论如何,这让我发疯了一段时间。我对 HTML5 或 php 不是很有经验,所以我把这个元素作为了解它并获得更多实用知识的一种方式,不过,我从来没有遇到过这样的问题。叠加 div 要么是我创建的小画廊大小的 100%,要么就是 p 标签中文本的精确宽度。

我尝试了很多东西,比如更改显示,将宽度设置为继承、自动、100%,根本不放入,在 HTML 中编码(看看我是否可以覆盖任何我没有的东西意识到在那里)但没有任何效果,我描述的两个宽度始终是我唯一得到的宽度。

https://jsfiddle.net/uw0cz2yk/

最佳答案

我不认为 position: absolute;将在父元素没有设置位置的情况下处理子元素。尝试在 .overlay 的父级上设置 position: relative,在本例中它是您的 .img 类。

关于php - 宽度属性不适用于绝对定位的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038171/

相关文章:

javascript - 创建网站的自动登录脚本?

php - 我将如何处理 echo 样式?

php - PrestaShop。为 paypal 设置错误 url

javascript - 使用 Laravel 的 Ajax Post 错误 422

jquery - 如何为固定标题和可滚动表格编写CSS

html - 根据先前的输入更改组合菜单的内容

css - codeigniter 的分页 CSS 不起作用

css - 使用 h :outputStylesheet 时未呈现图像

PHP - 如何使用 foreach 更新多行?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源