html,{dede:field name='body'/},
`,,将其替换为以下代码:,,
`html,{dede:field name='body' function='ClearImgSize(@me)'/},
`,,在/include/arc.archives.class.php文件中添加以下函数:,,
`php,function ClearImgSize($body) {, $pattern = '/]+width="\d+"\s+height="\d+"\s*>/i';, $replacement = '';, $body = preg_replace_callback($pattern, function($matches) use ($replacement) {, return preg_replace('/width="\d+"\s+height="\d+"\s*/i', '', $matches[0]);, }, $body);, return $body;,},
``,,保存文件后,刷新页面,img标签的width和height属性将被移除。在DedeCMS(织梦内容管理系统)中,文章发布后图片会自动带上width和height属性,虽然这些属性可以帮助浏览器在页面加载时预留空间,但有了CSS后,直接出现在HTML中的图片宽高属性就显得多余。
去除方法
1、打开文件:找到并打开include/arc.archives.class.php文件。
2、查找代码:搜索以下代码段,该代码用于设置全局环境变量:
$this>Fields['typename'] = $this>TypeLink>TypeInfos['typename']; @SetSysEnv($this>Fields['typeid'],$this>Fields['typename'],$this>Fields['id'],$this>Fields['title'],'archives');
3、添加替换代码:在该代码下方添加以下代码,用于替换文章中图片的width和height属性:
$this>Fields['body'] = preg_replace("/style=\"width\:(.*)\"/","",$this>Fields['body']);
4、保存文件:保存并关闭文件。
5、重新生成文章:重新生成静态网站,查看源代码确认自带的图片width和height属性已被去掉。
常见问题解答
1、如何在DedeCMS中使用CSS控制图片大小?
答:在DedeCMS中,可以通过修改模板文件或自定义CSS样式表来控制图片的大小,可以在style.css文件中添加类似以下的CSS规则:
img { maxwidth: 100%; height: auto; }
这将使所有图片的最大宽度为父容器的100%,高度自动调整以保持纵横比。
2、为什么有时图片的width和height属性没有去掉?
答:如果发现某些图片的width和height属性没有去掉,可能是因为正则表达式匹配不准确或者代码执行顺序有问题,建议检查正则表达式是否正确,以及代码是否在适当的位置执行,确保在重新生成文章后查看效果,因为有时缓存可能会影响结果。
通过上述步骤,可以成功去除DedeCMS文章页中图片的width和height属性,使页面更加符合现代网页设计的标准,这不仅有助于提高页面的加载速度,还能使页面在不同设备上的显示更加灵活和自适应。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <meta name="viewport" content="width=devicewidth, initialscale=1.0"> <title>去除DedeCMS文章页img图片的width和height属性</title> </head> <body> <!假设这是从DedeCMS文章页获取的HTML内容 > <div class="articlecontent"> <p>这里是文章的一些文本内容。</p> <img src="image.jpg" width="300" height="200" alt="示例图片"> <p>这里是文章的一些文本内容。</p> </div> <!使用JavaScript去除img标签的width和height属性 > <script> // 选择所有img标签 var images = document.querySelectorAll('.articlecontent img'); // 遍历img标签并移除width和height属性 images.forEach(function(img) { img.removeAttribute('width'); img.removeAttribute('height'); }); </script> </body> </html>
代码展示了如何使用JavaScript来去除DedeCMS文章页中img图片的width和height属性,代码中首先选择所有的img标签,然后遍历这些标签并移除它们的width和height属性,这样,图片将根据其自然尺寸显示,而不是使用固定的宽度和高度。