如何使图像适合<td>并保持<td>的确切大小

用户名

我正在尝试解决一个具有挑战性的问题。我有一个网站的标头,将在其中生成三个随机图片。图片的集合非常庞大,因此宽高比因图片而异。

网络的标题实际上是一个具有一行和三个表单元的响应表:

.header table {
                width: 94%;
                border: 0;
                background: transparent;
                margin-left: 5%;
                margin-right: 5%;
                vertical-align: middle;
                display: table;
}  

现在我想做的是:

  1. 保持表格响应(即,如果可能的话,避免使用像素定义宽度和高度,而是使用“%”)=>像这样:

    .header td {
                display: table-cell;
                width: 25%;
                height: auto;
                text-align: center;
                vertical-align: middle;
        }
    
  2. ...但是同时,要在表格单元格中放入三张随机图片而不改变表格单元格的大小或长宽比... ...这意味着将裁剪某些图片。

我是用CSS3属性试验包括

    .header td {...

            background-repeat: no-repeat;
            background-size: contain;
    ...}

<table class="header">
<tr>
            <td class="header" style="background-image:url('img/random1.jpg')">
            </td>
            <td class="header" style="background-image:url('img/random2.jpg')">
            </td>
            <td class="header" style="background-image:url('img/random3.jpg')">
            </td>
</tr>
</table>

但是这个属性似乎与td标签不友好...

无论如何,我实际上并不是在坚持“表格”解决方案。是否有人围绕以下方法做任何工作:

  1. 在负责的“行”中制作三张图片
  2. 将它们装入不会改变比例的框架中

纯CSS解决方案是可取的,但我想可能不可能。

史蒂文·韦伯

首先,您需要某种宽度和高度的关系,否则您将无法获得响应行为。

所以我做了一些肮脏的黑客^^

我将图像插入每个给出关联的td中,然后以不透明度0隐藏它(在ie8中不起作用)。现在,如果要插入其他内容,则可以使用位置和单独的容器。

HTML:

 <table class="header">
    <tr>           
        <td class="header" style="background-image:url('img/1.jpg')">
            <img src="img/1.jpg" />
        </td>
        <td class="header" style="background-image:url('img/2.jpg')">
            <img src="img/1.jpg" />
        </td>
        <td class="header" style="background-image:url('img/3.jpg')">
            <img src="img/1.jpg" />
        </td>
    </tr>
</table>

然后我更改了您的CSS:

    table {
        width: 94%;
        border: 0;
        background: transparent;
        margin-left: 5%;
        margin-right: 5%;
        vertical-align: middle;
    }
    td {
            width: 25%;
            height: auto;
            text-align: center;
            vertical-align: middle; 
            background-repeat: no-repeat;            
            background-size: cover;
            overflow-x: hidden;
            display: inline-block;
    }

    td img {
        opacity: 0;
        width: 100%;
        height: auto;
    }

看起来有点奇怪,因为我使用表格布局,然后我覆盖了表格显示行为(显示:行内块),但是我缺少一些背景信息,所以我决定使用确切的yout html。

在这里您可以看到结果JS Fiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调整图像大小以适合<td>或div

来自分类Dev

如何使 <td> 与相邻的 <td> 重叠

来自分类Dev

html表<td>随图像扩展,无论图像大小如何

来自分类Dev

如何在保持内容居中的同时在<td>的顶部添加<hr>?

来自分类Dev

超出TD边界时剪切图像

来自分类Dev

如何拉伸每个TD以适合桌子宽度

来自分类Dev

使<td>或div成为图像

来自分类Dev

如何使用sed删除<td>或</ td>?

来自分类Dev

使<td>的宽度适合其内容

来自分类Dev

使字段集高度适合td

来自分类Dev

我如何使用div而不是使用table,tr和td达到这种确切的行为?

来自分类Dev

如何从 td 元素内的 url 参数中找到确切数字

来自分类Dev

如何从TD获取href

来自分类Dev

如何单击<Td>元素

来自分类Dev

如何分割td?

来自分类Dev

如何使可点击<td>

来自分类Dev

如何防止TD换行?

来自分类Dev

如何在多个<td>元素中应用ng-if(或其他条件),同时使其保持DRY

来自分类Dev

将图像放在TD的中间

来自分类Dev

使TD中的表大小与包含TD的表大小相同

来自分类Dev

如何在HTML表格中获取<td>以适合内容,并让特定的<td>填写其余内容

来自分类Dev

如何确定ETS表的确切内存大小?

来自分类Dev

如何设置内联SVG元素的确切大小?

来自分类Dev

如何设置内联SVG元素的确切大小?

来自分类Dev

如何使输入字段完全适合引导表<td>

来自分类Dev

如何调整使用引导程序样式的表的td大小?

来自分类Dev

如何将<td>设置为与<img>相同的大小

来自分类Dev

如何将<td>设置为与<img>相同的大小

来自分类Dev

保持TD HEIGHT固定,以使其不会随着同一表中TD的内容而伸展