如何设置一个相对于自身高度而非宽度的响应比例图像
How do I set a responsive proportional image that is relative to its own height – NOT its width
如何设置相对于自身高度而非宽度的响应比例图像?
简单地设置。。。
img{
width: auto;
height: 100%;
}
并没有为我的图像提供成比例的尺寸。
我该怎么做?
我发现唯一一致的解决方案是javascript解决方案。
介绍naturalWidth和naturalHeight。。除IE8外,所有浏览器都支持。IE8还有一个变通方案。(http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/)
如果你不介意使用jquery和下划线,你可以这样设置每个宽度
$(window).load( function() {
function imgWidth(){
$("img").each( function(){
nWidth = $(this)[0].naturalWidth;
nHeight = $(this)[0].naturalHeight;
nRatio = nWidth/nHeight;
curHeight = $(this).height();
$(this).css("width", curHeight*nRatio);
});
}
imgWidth();
var updateLayout = _.debounce( function(e) {
imgWidth();
}, 500);
window.addEventListener("resize", updateLayout, false);
}
HTML/CSS中的图像处理变得非常复杂。在许多场景中,直接在img上的高度标记会被忽略,这取决于div属性。我认为最简单的方法是创建一个以所讨论的图像集为背景的div。
.img-div {
height:x; width:x;
background:url(file/path/here.svg);
background-position:center;
background-size:auto 100%;
下面是一个演示:https://jsfiddle.net/JTBennett/nukLf5m3/
相关文章:
- 将高图饼图中的文本居中显示为响应
- D3.js:将一个有响应的饼图放在其父分区的中心
- Http响应拆分安全问题的XMLHTTPRequest/Response用例的Filter实现
- 如何在 D3 中使力布局图.js响应屏幕/浏览器大小
- Angular 2 的响应式图库插件
- 使用 NVD3 的响应式饼图
- 无法在不同的选项卡中呈现多个响应式画布图
- 响应式气象图(图标)高图
- JQuery Mobile+ChartJS:只在调整大小后显示响应条形图
- 在Charts.Js条形图中加载800+个数据集时,Firefox没有响应
- 如何使D3折线图具有响应性
- D3js响应堆叠条形图-其他主题解决方案不起作用
- 将文本添加到dojo图表(在本例中为散点图)
- 回流后的高图没有响应
- 响应SVG线形图与Raphaë 1
- 动态JS拖动一个图层会导致另一个图层上的形状对拖动停止响应
- 使用响应设计时,一个视图上的多个D3js图会导致性能问题
- 响应式联合 js 图
- 图中的网格线,如何在本例中获取
- 响应式设计——移动&在本例中为桌面布局