在织梦DedeCMS中,实现手机wap网站图片自适应屏幕是一项重要的功能需求,在实际的安装调试过程中,常常会遇到图片无法很好地适应屏幕的问题,图片的宽度可以与屏幕同宽,但高度却没有按比例调整,导致图片看起来像被挤扁了一样。
问题描述
为了达到图片自适应屏幕宽度的目的,通常会在img标签的样式中定义maxwidth:100%; height:auto;,有时即使设置了这些样式,图片仍然无法正常自适应。
经过分析发现,这是因为文章中的图片保留了PC网页img标签原有的格式设定,没有过滤掉,从而导致css文件中设置的img样式无效。
解决方案
手机网站一般会把文章的HTML进行修改,去掉一些复杂的样式,完成这些操作的代码是在wap.inc.php文件中,在这个文件中,由于要过滤掉复杂的html标记,但是还需要保留图片,所以在过滤的时候,先把整个img标签给替代掉了,等过滤完之后,又替代回来,这样就导致了img标签里面的style无法被过滤。
解决这个问题的办法很简单,只需在最后输出的时候过滤掉style=""里面的信息,就可以让自适应样式设定生效,具体操作如下:
在/include/wap.inc.php文件中添加以下代码:
$content = preg_replace("/style=.+?[*|"]/i", "", $content); $content = preg_replace("/&[az]{3,10};/isU", ' ', $content); return $content;
修改完之后保存文件,再开启页面查看源代码时会发现style标签的内容已经被过滤掉了,图片已经按比例缩小,不会出现比例失调的状况。
FAQs
为什么在DedeCMS手机wap网站上图片无法自适应屏幕?
因为在DedeCMS手机wap网站上,图片的自适应样式设定没有生效,这通常是因为文章中的图片保留了PC网页img标签原有的格式设定,没有过滤掉,从而导致css文件中设置的img样式无效。
如何在DedeCMS手机wap网站上实现图片自适应屏幕?
只需在/include/wap.inc.php文件中添加以下代码:
$content = preg_replace("/style=.+?[*|"]/i", "", $content); $content = preg_replace("/&[az]{3,10};/isU", ' ', $content); return $content;
修改完之后保存文件,再开启页面查看源代码时会发现style标签的内容已经被过滤掉了,图片已经按比例缩小,不会出现比例失调的状况。
注意:以上代码仅供参考,具体修改内容需根据实际情况进行调整。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1182218.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复