代码之家  ›  专栏  ›  技术社区  ›  klode

具有相对位置的div的内联块显示

css
  •  4
  • klode  · 技术社区  · 9 年前

    我有一系列图像,每个图像都有自己的覆盖层。如何使它们像内联块一样对齐?我尝试添加 display: inline-block; .image-wrapper 但图像始终位于 div.container (这里有一个 jsfiddle ).

    下面是html和css

    .container {
      position: relative;
    }
    .image-wrapper {
      position: relative;
      display: inline-block;
    }
    .tweetty {
      position: absolute;
      overflow: auto;
      top: 0;
      left: 0;
    }
    .image-vest {
      position: absolute;
      top: 0;
      left: 0;
      background-color: #00f;
      width: 220px;
      height: 300px;
      opacity: 0.4;
      color: #fff;
    }
    <div class="container">
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-one</div>
      </div>
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-two</div>
      </div>
    
    </div>

    编辑:

    使用dfsq建议删除的修订css position:absolute; 从…起 .tweetty .

    引用dfsq评论: “具有绝对位置的元素不会影响其父容器的宽度和高度 位置:绝对; "

    .container {
      position: relative;
    }
    .image-wrapper {
      position: relative;
      display: inline-block;
    }
    .tweetty {
      overflow: auto;
      top: 0;
      left: 0;
    }
    .image-vest {
      position: absolute;
      top: 0;
      left: 0;
      background-color: #00f;
      width: 220px;
      height: 300px;
      opacity: 0.4;
      color: #fff;
    }
    <div class="container">
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-one</div>
      </div>
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-two</div>
      </div>
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-three</div>
      </div>
    </div>
    1 回复  |  直到 9 年前
        1
  •  1
  •   Amit    9 年前

    我摆弄着小提琴,这似乎奏效了。除背心外,所有的位置都被移除了。使用内联块显示模式。将顶部设置为-300px,同时设置底部边距,否则图像下方会出现间隙。

    .container {
    /*    position:relative;*/
    }
    .image-wrapper {
    /*    position: relative;*/
        display: inline-block;
    }
    .tweetty {
    /*    position:absolute;
        overflow:auto;
        top:0;
        left:0;*/
    }
    .image-vest {
        position:relative;
        top:-300px;
        margin-bottom: -300px;
        left:0;
        background-color:#00f;
        width:220px;
        height:300px;
        opacity:0.4;
        color:#fff;
    }
    <div class="container">
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-one</div>
      </div>
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-two</div>
      </div>
    
      <div class="image-wrapper">
        <div class="tweetty">
          <img src="http://www.picgifs.com/clip-art/cartoons/tweety/clip-art-tweety-191375.jpg" />
        </div>
        <div class="image-vest">Tweetty-three</div>
      </div>
    </div>

    (这是 JSFiddle 版本)