手机浏览器图片自适应高度问题解决办法

最近做PC站点的手机版,发现一个问题,图片在手机浏览器中显示效果有问题,宽度可以自动适应了,但是高度无法自动使用,调整css也没用,后来使用PHP正则替换的方式解决了手机浏览器图片自适应高度的问题。

一般情况下,解决手机浏览器自适应宽度和高度的方式是使用如下css即可:

.content img{
  max-width:100%;
  height:auto;
}

但是网页中图片的img标签是这样的:

<img alt="湖北省第25届摄影艺术展" src="h/20140606063027270.jpg" style="height: 337px; width: 600px;">

注意到img标签里面style属性定义了height高度,这样css就无法重写样式。

所以想到用PHP在页面输出的时候去掉img标签中height的CSS定义,代码如下:

$content = preg_replace('/([^>]*)(height: [0-9]+px;)([^<>]*)/i', '$1$3', $content);

这样替换之后img标签变成这样:

<img alt="湖北省第25届摄影艺术展" src="/20140606063027270.jpg" style=" width: 600px;">
OK,图片可以在手机浏览器中自适应宽高度了。

为什么会这样呢?因为宽度很好说,是手机屏幕的宽度,可以定义max-width来解决,但是高度并不能自动按比例缩小,高度用max-height是手机屏幕的高度,所以img标签定义了高度就无法更改了。

除此之外还可以用jQuery或者原生js,重写img标签里的CSS应该也行。

后来有朋友这样说的

手机浏览器(移动站点)图片自适应的css代码:

img{max-width: 100%;height: auto;width: auto\9;}

用max-width设置如果图片尺寸大于当前浏览器尺寸就自动缩放, 图片的高度设置正比缩放, 但是ie8有个比较二的bug就是不支持max-width属性, 而ie7和ie9都支持.

时间: 2024-11-05 12:15:09

手机浏览器图片自适应高度问题解决办法的相关文章

IE浏览器图片不显示解决办法

  IE浏览器图片不显示解决办法 首先在电脑桌面,双击打开ie浏览器快捷打开方式.(如下图) 然后来到ie浏览器默认的主页,可以看到图片还是无法显示出来,先点击左上角菜单栏中的"工具".(如下图) 接着在工具菜单下弹出来的设置菜单中,选择"Internet 选项".(如下图) 来到Internet 选项窗口的常规设置页面,在点击上面菜单中的"高级".(如下图) 在高级设置的"多媒体"设置下面,如果看到"显示图片&qu

手机网站顶部固定闪烁问题解决办法

问题描述 头部是一个普通的div,高度是48,头部下面有个固定的banner,手下滑的时候,banner会固定在浏览器最顶部不动.出现的问题是,PC端是好的,手机浏览器向上滑动的时候出现闪动!影响用户体验. 之前的做法  if ($(window).scrollTop() < 48) {                 $(".nav ").css("top", 48 - parseInt($(window).scrollTop()));           

jquery ajax应用中iframe自适应高度问题解决方法_javascript技巧

iframe自适应高度本身是很简单的方法,就是在页面加载完成后,重新计算一下高度即可. 代码如下: 复制代码 代码如下: //公共方法:设置iframe的高度以保证全部显示数据//function SetPageHeight() {//    var iframe = getUrlParam('ifname');//    var myiframe = window.parent.document.getElementById(iframe);//     iframeLoaded(myifra

IE6下DIV无法实现height:1px高度问题解决办法

下午写页面遇到在ie6下无法实现height:1px,之前搞忘了,百度个收集几个解决方法,以供再次查阅. IE6.0下DIV不能实现1px高度的几种解决方法 在设计网页时,有时我们需要一个1px高度的细线,但IE6有个bug,高度为1px的DIV在IE6里不管用.这是因为IE6中的DIV默认有个最小字体高度,DIV的最小高度就是这个高度,即使设置了height:1px,DIV显示出来的高度也不是1像素. 解决方法有如下几种: 1,网上都说多加一个font-size=0px:的属性可以实现. 以下

LR和photoshop中图片颜色不同问题解决办法

给各位LR和photoshop软件的使用者们来详细的解析分享一下这两款软件中图片颜色不同问题的解决办法. 方法分享:     很多摄影师会先在 LR 批次处理照片后,再汇到 PS 进一步后制,但有些用家会发现,同一张照片在两边软件显示出来会有所不同.为甚么摄影师Kishore Sawh就解释了有关原理,及处理方法,大家可看看如下. 首先大家请到 Lightroom > 偏好设定:     打开偏好设定的界面后,在上方选择「外部编辑」.     你会发现 LR 预设外部编辑用的色域,并不是我们一般

dedecms绑定二级域名图片不能显示问题解决办法

导致二级域名图片不能显示问题原因分析 出现此问题是因为我们绑定二级域名之后二级域名中的图片地址是 /uploads/xxx.jpg不在二级目录而是在根目录,此时我们只需要用绝对的url即可. 解决办法 一.修改dede的源码,是在目录include下的文件extend.func.php增加一个函数,函数的代码如下:  代码如下 复制代码 function replaceurl($newurl) { $newurl=str_replace('/uploads','http://www.111cn.

一点浏览器卸载不了问题解决办法

点浏览器卸载步骤: 1.我们如果电脑中没有安装360安全卫士我们可以百度搜索安装并下载一个360安全卫士,然后在打开界面我们点击"软件管家"在此界面中我们找到"软件卸载"模块,如图1所示 2.然后在进入到360安全卫士软件管理界面点击"一键卸载",如图2所示 3.点击"刷新",再点"一键卸载",如图3所示 总结:好了这样删除之后我们浏览器就删除成功了,当然如果无法删除我们可以使用安全模式进行删除了,重启电脑

ie浏览器中z-index失效问题解决办法

当position为relative或者absolute或者fixed的时候,可以使用z-index指定当前元素的层级关系,值越大元素就越在上面,从而实现盖住下面元素的目的.但是遇到下面这种情况,会发现z-index值大的确盖不住值小的元素:  代码如下 复制代码 <style> li { position: relative; width: 100px; height: 50px; background: blue; margin-bottom: 10px; z-index: 1; } a

图片在IE8浏览器多一个有边框问题解决办法

我的logo代码: header a#logo {display: block;top:10px;width:380px;height:75px;} 最后在网上找了一下答案,IE8浏览器图片多一个有色边框,而Chrome浏览器没有边框的解决办法. 指定img的边框样式: img{ border-style:none; } 另一个办法是直接给输片加个border=0即可. <img src="images/logo.png" border=0 >   附后:png图片在ie8