找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2133|回复: 0

[分享] DedeCMS文章页去img图片width和height属性

[复制链接]
发表于 2018-8-1 09:51:50 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
使用DedeCMS后台发布文章的时候,在上传图片后,余斗发现生成文章后Dede会自动给这个图片加上width和height属性,如果这里不指定,那么值就为图片的原高宽。

虽然建议为图像指定 height 和 width 属性,这也是一个好习惯,因为设置了这些属性,就可以在页面加载时为图像预留空间。如果没有这些属性,浏览器就无法了解图像的尺寸,也就无法为图像保留合适的空间,因此当图像加载时,页面的布局就会发生变化。但是有了万能的css后,我们可以通过css来指定图片高宽,这样一来,直接出现在html的图片高和宽的style属性就显得很鸡肋了。
余斗今天就教大家如何去掉DedeCMS自动生成的这个烦人的图片width和height属性,我们要进行替换:
打开include/ arc.archives.class.php,查找代码:
  1. //设置全局环境变量
  2. $this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
  3. @SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['id'],$this->Fields['title'],'archives');
复制代码

在其下面填写:
  1. //去掉img的width和height
  2. $this->Fields['body'] = preg_replace("/style="width\:(.*)"/","",$this->Fields['body']);
复制代码

保存,重新生成文章(静态网站),再查看源代码,我们会发现,自带的图片width和height属性 被成功的去掉了。
代码注释:用replace函数来替换文章的style=""一段为空,但是考虑到余斗的博客中有的技术教程文章中会出现“style=”字符,不只有img标签中才有,所以传统的正则表达式(.*)会把所有的style属性都去掉,这里余斗更细分一下,直接精确到“width:”这里,基本就不会出错,而通配符(.*)则可以正确的匹配后面的内容,这样一来就完美实现了DedeCMS文章页去img图片width和height属性。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 06:29 , Processed in 0.038803 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表