Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 通过css按比例调整图像大小_Image_Css_Aspect Ratio_Calc - Fatal编程技术网

Image 通过css按比例调整图像大小

Image 通过css按比例调整图像大小,image,css,aspect-ratio,calc,Image,Css,Aspect Ratio,Calc,我知道这个问题以前已经被问过一百万次了,但是我尝试用一种不同的方法,一种更简单的方法,因为我不需要支持所有主要的浏览器 对于我们站点上的每个图像,我们在运行前就知道了宽度和高度,因为cdn会为我们返回这些信息,一旦图像注册,我基本上会提取当前宽度,并计算出图像的减少百分比(如果有) 例如: var originalWidth = 640; var originalHeight = 480; var actualWidth = 431; var decrease = (originalWidth-

我知道这个问题以前已经被问过一百万次了,但是我尝试用一种不同的方法,一种更简单的方法,因为我不需要支持所有主要的浏览器

对于我们站点上的每个图像,我们在运行前就知道了宽度和高度,因为cdn会为我们返回这些信息,一旦图像注册,我基本上会提取当前宽度,并计算出图像的减少百分比(如果有)

例如:

var originalWidth = 640;
var originalHeight = 480;
var actualWidth = 431;
var decrease = (originalWidth-actualWidth)/originalWidth*100;
现在,我已经从原来的大小减少了,我想用calc css方法做一些事情,因为我们所有的图像都按比例调整大小。我试过这个:

$element.css('height', `calc(${originalHeight}px - (${originalHeight}px * ${decrease} / 100 ))` );

我甚至无法将其应用于元素,如果我使用一个更简单的calc css方法,它可以工作,但这甚至不适用,我假设这是因为实际计算失败,但我似乎无法获得正确的单位

也许这只是一个括号问题,试试这个

$element.css('height', `calc((${originalHeight}px - ((${originalHeight}px * ${decrease}) / 100 )))` );

我刚刚用数值测试了calc,它是有效的。处理变量后,
calc(${originalHeight}px-(${originalHeight}px*${reduce}/100))
的计算结果是什么?它不维护表达式,只输出
height:calc(326.6px)
@LGSonWell,这将不起作用,因为calc至少需要2个值,它看起来应该类似于
calc(200px-(50px*50/100))
也许如果你发布一个最小的工作代码示例,我们可以根据你实际想要实现的目标来解决问题。你想做什么?你能给我们一个不管最终目标是什么的用例吗?结果证明我很聪明,但这个等式总是会返回相同的结果,所以使用calc方法是毫无意义的!