[英]Scale images match css selector relative to their size
我必须按比例缩小与以下选择器匹配的图像:
img.math
div.math img
问题是我必须将图像缩小到其自身大小的两倍(即相对于其自身大小)。 似乎只有javascript才有可能:
width
比例图像的css技巧 transform
CSS技巧留下空白 我找到了一个js函数,可在此处按比例缩小图像:
function Resize(imgId)
{
var img = document.getElementById(imgId);
var w = img.width, h = img.height;
w /= 2; h /= 2;
img.width = w; img.height = h;
}
现在的问题是将该功能应用于与上述选择器匹配的图像。
我使用jQuery 1.11,类似这样:
// resize all math images:
$(document).ready(function() {
$("img.math").each(function() {
// ???
});
$("div.math img").each(function() {
// ???
});
});
(这是较大的一部分(function ($) { }(window.$jqTheme || window.jQuery));
)
编辑 :
img.math
只是一个内嵌图像。 div.math img
是一个带编号的数学方程式:它也包含方程式编号,其span
浮动在右侧。
编辑2 :完整的html部分示例
所涉及的html非常基本:
<div id="math" class="section">
<span id="id1"></span><h1>Math</h1>
<p>In-line equation: <img alt="a^2+b^2=c^2" src="_images/math/ee657daf07808119b97144fc459a5dc8839eb9c9.png" class="math">.</p>
<p>Numbered equation:</p>
<div id="equation-pythag" class="math">
<p><span class="eqno">(1)</span><img alt="a^2 + b^2 = c^2" src="_images/math/53158707cc080d32d0d2f081e4bf5c6988f437ca.png"></p>
</div><p>Link to equation: <a href="#equation-pythag">(1)</a>.</p>
</div>
所有图像静态放置: img.math
只是一个内嵌图像,而div.math img
在div中水平居中。
这些信息不足以在评论中发布,但还不足以作为答案。
不过,我会回答。
您的代码必须重写为以下内容:
// resize all math images:
$(function() {
$("img.math, div.math img").each(function() {
this.width/=2;
this.style.height='auto'; //ensures proportion
this.style.verticalAlign='middle';
});
});
所有这些样板代码都可以安全地消除。
我已经删除了这一行this.height/=2;
因为OP指出这导致他的图像变形。
我添加了这一行this.style.height='auto';
如@MorganFeeney所建议。
如果设置了高度,它有助于确保与图像调整大小成比例。
另外,正如OP所指出的,需要设置this.style.verticalAlign='middle';
。
如果您在对齐方面遇到问题,这可能会有所帮助。 或者,您可以尝试使用值inherit
或top
。
在某些情况下,此方法可能会有些不准确。
为此,我建议阅读如何使用javascript或jquery如何获得图像的自然尺寸? 以获得图像的原始宽度和高度。
另外,您可以阅读有关跨浏览器解决方案的有趣注释 。
附带说明:
$(function(){});
等效于:
$(document).ready(function(){});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.