繁体   English   中英

如何根据图像尺寸自动调整div的高度

[英]How can i auto adjust the height of my div based on image Size

这是的jsfiddle我的问题。

基本上,我在我的网站上有一个显示器,上面显示有一些带有文字的图像。 我的问题是图像下方的文本与图像本身相距太远且未对齐。

图像不是静态高度。 宽度始终为80像素,但高度从80像素到150像素不等,

如您所见,图像看起来没有对齐。 我要做的就是将图像下方的文本放在具有最高高度的图像下方的一行中。

的HTML

<ul class="list-items list-carousel no-js">
    <li class="ccarousel-item">
        <div class="pImgContainer fk-text-center">
            <img src="http://lorempixel.com/80/100/sports" />                
        </div>
        <div>SPORTS</div>
    </li>
    <li class="ccarousel-item">
        <div class="pImgContainer fk-text-center">
            <img src="http://lorempixel.com/80/140/fashion" />                
        </div>
        <div>FASHION</div>
    </li>
    <li class="ccarousel-item">
        <div class="pImgContainer fk-text-center">
            <img src="http://lorempixel.com/80/120/animals" />                
        </div>
        <div>ANIMALS</div>
    </li>
</ul>

的CSS

ul {
    list-style: none;
    padding: 0;
    margin: 0 0 10px 25px;
}
.ccarousel-item {
    float: left;
    overflow: hidden;
    display: inline-block;
    zoom: 1;
    margin: 0;
    padding: 0;
}
.pImgContainer {
height: auto;
width: 120px;
line-height: 110px;
padding-top: 10px;
margin: 0 auto;
}

编辑:我有点改变了我的HTML。 我在小提琴中复制代码时犯了一个错误

http://jsfiddle.net/27yj94v8/1/

ul{list-style:none;padding:0;margin:0 0 10px 25px;}
.ccarousel-item{float:left;overflow:hidden;display:inline-block;zoom:1;margin:0;padding:0;}
.pImgContainer{height:auto;width:120px;padding-top:10px;margin:0 auto;}
img+div{margin:0;padding:0;display:block;}

作为一个开始

.pImgContainer div{
  bottom:0;
  position:absolute;
}

JSFIDDLE

为了获得更好的体验,请设置

.ccarousel-item {
  position:relative;
  float: left;
  display: inline-block;
  zoom: 1;
  margin: 0;
  padding: 0;
}

.pImgContainer {
  height:150px;
  width: 120px;
  line-height:110px;
  padding-top: 10px;
  margin: 0 auto;
}

.pImgContainer + div{
  bottom:-15px;
  position:absolute;
}

JSFIDDLE

将标题div从div.pImgContainer

<li class="ccarousel-item">
    <div class="pImgContainer fk-text-center">
        <img src="http://lorempixel.com/80/100/sports" />

    </div>
    <div>SPORTS</div>
</li>

并在CSS中添加图片容器的最小高度(或仅高度):

.pImgContainer{
   min-height:150px;//the maximum height a picture could be
}

问题在css中:

.pImgContainer {
   height: auto;
   width: 120px;
   line-height: 110px; //Remove the line-height.
   padding-top: 10px;
   margin: 0 auto;
}

只需将.pImgContainer的高度设置为150px,因为您知道这是您将拥有的最高价值。

http://jsfiddle.net/27yj94v8/9/

.pImgContainer {
   height:auto;
   width: 120px;
   line-height:110px;
   padding-top: 10px;
   margin: 0 auto;
   height:150px;
 }

试试下面的mod

http://jsfiddle.net/t0o5gy5v/

<ul class="list-items list-carousel no-js">
<li class="ccarousel-item">
    <div class="pImgContainer fk-text-center">
        <div class="image-box"> <img src="http://lorempixel.com/80/100/sports" /></div>
        <div>SPORTS<div>
    </div>
</li>
<li class="ccarousel-item">
    <div class="pImgContainer fk-text-center">
        <div class="image-box"><img src="http://lorempixel.com/80/140/fashion" /></div>
        <div>FASHION</div>
    </div>
</li>
<li class="ccarousel-item">
    <div class="pImgContainer fk-text-center">
        <div class="image-box"> <img src="http://lorempixel.com/80/120/animals" /></div>
        <div>ANIMALS</div>
    </div>
</li>

ul {list-style:none; 填充:0; 边距:0 0 10px 25px; } .ccarousel-item {float:left; 溢出:隐藏; 显示:inline-block; 缩放:1; 边距:0; 填充:0; } .pImgContainer {height:auto; 宽度:120像素; 行高:110px; padding-top:10像素; 保证金:0自动; } .pImgContainer div {line-height:20px; }

.pImgContainer .image-box {height:150px; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM