Php 调整<;的宽度/高度;img>;文本标记
我有一块HTML,里面有图像。这些图像标记具有定义的宽度和高度:Php 调整<;的宽度/高度;img>;文本标记,php,jquery,regex,mobile,jquery-mobile,Php,Jquery,Regex,Mobile,Jquery Mobile,我有一块HTML,里面有图像。这些图像标记具有定义的宽度和高度: <img width="300" height="80" src="image.jpg" /> 我想浏览一下这个HTML,并将图像的宽度和高度替换为一个%值,而不是基于100%=600,同时删除高度属性。因此,例如,如果图像的定义宽度为300,则宽度将替换为50%: <img width="50%" src="image.jpg" /> 我对正则表达式的理解很垃圾,但我认为它将是答案。所以请帮忙
<img width="300" height="80" src="image.jpg" />
我想浏览一下这个HTML,并将图像的宽度和高度替换为一个%值,而不是基于100%=600,同时删除高度属性。因此,例如,如果图像的定义宽度为300,则宽度将替换为50%:
<img width="50%" src="image.jpg" />
我对正则表达式的理解很垃圾,但我认为它将是答案。所以请帮忙
如果有人想知道,这是必要的格式博客文章HTML的东西,将显示在一个流畅的博客移动版本友好。目前,创建图像的实际大小副本不是可行的解决方案
我有jquery,如果有javascript方法解决这个问题,jquery mobile也可以使用。经过测试,似乎可以工作:
$('img').each(
function(){
var w = $(this).attr('width').match(/\d+/);
var percent = (w/600)*100;
$(this).removeAttr('width').css('width',percent + '%');
});
.尝试以下简单代码:
$('img').removeAttr('height').attr('width', function() {
return Math.round((this.width * 100)/600) + '%';
});
或其他变体:
$('img').css('width', function() {
return Math.round((this.width * 100)/600) + '%';
}).removeAttr('width height');
如果您不喜欢使用正则表达式,可以使用DOMDocument将HTML解析为对象。请参见此处:我认为您不需要正则表达式。另外,如果设置
width=50%
,则它与图像所在的容器相关,而不是与实际图像大小相关。你必须使用绝对像素值。