可滚动显示:table-cell - 无法固定尺寸

时间:2016-09-03 13:37:03

标签: html css image css-position css-tables

我正在使用应用于某些div的display:tabletable-rowtable-cell个样式。其中一个表格单元格中有一个巨大的图像。我想为单元格设置固定的宽度和高度,并使其可滚动,以便您可以在图像周围移动。

问题在于使用overflow:scroll,甚至是overflow:hidden,固定宽度和高度似乎不会强制表格单元格的大小。

如何强制包含图像的div为固定高度/宽度?​​

    .table-wrap{
      display:table;
    }
    .table-wrap > div{
      display:table-row;
    }
    .table-wrap > div > div{
      display:table-cell;
    }
    #map{
      width:100px;
      height:100px;
      overflow:scroll;
    }
<div id="interface">
  <div class="table-wrap">
    <div id="top">
      <div id="map">
        <img src="http://www.planwallpaper.com/static/images/ZhGEqAP.jpg">
      </div>
      <div id="sidebar">
        sidebar
      </div>
    </div>
  </div>
  <div class="table-wrap">
    <div id="bottom">
      <div class="bla">
        bla
      </div>
      <div class="bla">
        bla
      </div>
      <div class="bla">
        bla
      </div>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

由于CSS使用table algorithm,您无法限制table-cell内的图片,除非您直接在img元素上提供。

我认为您最好的选择是使用position img作为absolute并让它看起来像您想要的那样。

以下代码段:

&#13;
&#13;
.table-wrap {
  display: table;
  width: 100%;
}
.table-wrap > div {
  display: table-row;
}
.table-wrap > div > div {
  display: table-cell;
  border: 1px solid;
}
#map {
  width: 100px;
  height: 100px;
  overflow: auto;
  position: relative;
}
#map img {
  position: absolute;
  top: 0;
  left: 0;
}
&#13;
<div id="interface">
  <div class="table-wrap">
    <div id="top">
      <div id="map">
        <img src="http://www.planwallpaper.com/static/images/ZhGEqAP.jpg">
      </div>
      <div id="sidebar">
        sidebar
      </div>
    </div>
  </div>
  <div class="table-wrap">
    <div id="bottom">
      <div class="bla">
        bla
      </div>
      <div class="bla">
        bla
      </div>
      <div class="bla">
        bla
      </div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;