在 td 标签内缩放图像?

Scaling image inside td tag?

我有一个 table 包含九个 td,每个应该包含不同的图像。

所以我有:

<td>
  <img src="pics/LLTR.jpg" class="lltr"></img>
</td>

和 css 类

.lltr:hover{
    opacity: 0.8;
}

.lltr{
    max-height:auto;
    max-width:100%;
    opacity: 0;
    -webkit-transition: opacity 1s; /* Safari */
    transition: opacity 1s;
}

这是当前版本。我试过它作为背景图像和许多其他东西 none,其中一些工作正常。 图像显然显示为 td 的宽度和自动高度,这导致 td 在高度上扩展,即使 table-layout 已设置为固定。

有没有办法在不显示任何 "leftover" 高度的情况下按宽度比例缩放图像,就像背景图像的封面 属性 一样?

谢谢, 罗克

table的完整代码:

<table id="maintab">
        <tr>
            <td class="isFixed">1</td>
            <td class="isFixed">2
            </td>
            <td class="isFixed">3</td>
        </tr>
        <tr>
            <td class="isLinked">
                <img src="pics/LLTR.jpg" class="lltr"></img>
            </td>
            <td class="isLinked">5</td>
            <td class="isLinked">6</td>
        </tr>
        <tr>
            <td class="isLinked">7</td>
            <td class="isLinked">8</td>
            <td class="isLinked">9</td>
        </tr>
    </table>

CSS 部分:

#maintab{
    width:100vw;
    height:100vh;
    border-collapse: separate;
    border-spacing: 20px;
    margin:0;
    padding:0;
    text-align:center;
    vertical-align:middle;
    table-layout:fixed;
}

.lltr:hover{
    opacity: 0.8;
}

.lltr{
    max-height:auto;
    max-width:100%;
         /*background-image: url('pics/LLTR.jpg');
         background-size:cover;*/
    opacity: 0;
    -webkit-transition: opacity 1s; /* Safari */
    transition: opacity 1s;
}

.isLinked{

}

.isLinked:hover{
    background-color:rgba(240,240,240,0.75);cursor:pointer;
}

.isFixed{
    background-color:rgba(197,197,197,0.6);
}

这是一个可能有效的概念验证。

我设置了 table 单元格的高度和宽度(在我的示例中是 2x2 网格), 然后在每个 table 单元格中放置一个 divoverflow: hidden.

然后我将图像的宽度设置为 100%,任何多余的高度都将 被 div 元素剪裁。

我以为图片是肖像类型的。在某些情况下,对于足够大的 屏幕,table 中可能有足够的 space 来显示整个图像。

table {
  table-layout: fixed;
  border-spacing: 0;
  border-collapse: collapse;
}
td {
  height: 50vh;
  width: 50vw;
  padding: 0;
}
td div {
  border: 1px dotted gray;
  height: inherit;
  width: inherit;
  overflow: hidden;
  box-sizing: border-box;
}
td div img {
  width: 100%;
}
body {
  margin: 0;
}
<table cell-spacing=0>
  <tr>
    <td><div>one</div></td>
    <td><div>three</div></td>
  </tr>
  <tr>
    <td><div>two</div></td>
    <td><div><img src="https://picsum.photos/400/600/"></div></td>
  </tr>
</table>