表内最大宽度的javascript解决方案

表内最大宽度的javascript解决方案,javascript,jquery,Javascript,Jquery,除了在表中的图像上设置最大宽度,还有jquery/javascript替代方案吗。我不能使用display:table/table layout:fixed的css解决方案,因为表列的数量太多,我不希望列的宽度相等 下面是一个JSFIDLE示例 在Chrome中,如果您将“结果”框拉宽,并缩小表格单元格内的“谷歌”文本比例,但FF和IE中的ofc最大宽度将不起作用 我需要确保图像永远不会大于其原始大小,同时在不同屏幕分辨率下,当表格宽度减小时,也会缩小比例 jquery/javascript能

除了在表中的图像上设置最大宽度,还有jquery/javascript替代方案吗。我不能使用display:table/table layout:fixed的css解决方案,因为表列的数量太多,我不希望列的宽度相等

下面是一个JSFIDLE示例

在Chrome中,如果您将“结果”框拉宽,并缩小表格单元格内的“谷歌”文本比例,但FF和IE中的ofc最大宽度将不起作用

我需要确保图像永远不会大于其原始大小,同时在不同屏幕分辨率下,当表格宽度减小时,也会缩小比例

jquery/javascript能否在表中找到本机宽度和各种大小的图像,并确保它们永远不会变大,同时使用max-width或width 100%进行缩小

<table>
    <tr>
       <td>
        <div>    
            <img src="https://www.google.ru/images/srpr/logo4w.png"/>
            <img src="http://pictar.ru/data/media/24/nature__463_.jpg"/>
        </div>
       </td>
    </tr>
</table>

<style>
    div {
        border:2px solid red;
    }
    div img {
        max-width: 100%;
        height: auto;
    }
</style>

div{
边框:2倍纯红;
}
部门经理{
最大宽度:100%;
高度:自动;
}

给你。代码已注释。
这样做的目的是使图像不影响桌子的宽度。为此,已将图像设置为
位置:绝对
。但这会产生一个问题,图像也不会影响高度。为了解决这个问题,已经将图像包装到单独的容器中,并使用JavaScript设置容器的高度

$(函数(){
var resized=false,
img_容器=null;
函数setImageContainerHeight(){
如果(!img_容器){
img_containers=$('td.img_container');
}
img_容器。每个(函数(){
$(this.css('height',$('>img',this.height());
});
}
$(窗口)。调整大小(函数(){
调整大小=真;
});
/*最好使用window.setInterval()而不是$(window.resize(function(){…})*/
setInterval(函数(){
如果(!已调整大小){
返回;
}
setImageContainerHeight();
调整大小=假;
}, 250);
setImageContainerHeight();
});
/*表格应该有一些宽度,因为图像现在不会影响其宽度*/
桌子{
宽度:100%;
}
/*设计了div的样式*/
.img_集装箱{
边框:2倍纯红;
位置:相对位置;
}
/*这样图像就不会影响表格的宽度。相反,它将受到父div的宽度的影响*/
.img_集装箱img{
位置:绝对位置;
最大宽度:100%;
}

这是纯JavaScript版本

//在标记后包含此块,或将此块的所有JavaScript代码包装在一个函数中,并使用window.onload=yourfunction
var resized=false,
img_容器=null;
函数setImageContainerHeight(){
如果(!img_容器){
img_containers=document.queryselectoral('td.img_container');
}
Array.prototype.forEach.call(img_容器,函数(elem)){
elem.style.height=elem.querySelector(':scope>img').height+'px';
});
}
setImageContainerHeight();
window.onresize=函数(){
调整大小=真;
}
/*最好使用window.setInterval()而不是$(window.resize(function(){…})*/
setInterval(函数(){
如果(!已调整大小){
返回;
}
setImageContainerHeight();
调整大小=假;
}, 250);
setImageContainerHeight()
/*此处没有任何更改*/
/*表应该有一些宽度,因为它现在没有影响其宽度的图像*/
桌子{
宽度:100%;
}
/*设计了div的样式*/
.img_集装箱{
边框:2倍纯红;
位置:相对位置;
}
/*这样图像就不会影响表格的宽度。相反,它将受到父div的宽度的影响*/
.img_集装箱img{
位置:绝对位置;
最大宽度:100%;
}


这对你有用吗Himanshu,它只在Chrome中有效。谢谢你,这是一个完美的解决方案。谢谢您是否有不需要jquery库的替代脚本?只是好奇,我不确定主机是否要加载jquery,因为他们使用MooToolsHanks,我删除了您在那里的jquery“$(window).resize(function(){”