如何用CSS使图片自适应显示宽度

2016-02-19 19:41 57 1 收藏

今天图老师小编给大家介绍下如何用CSS使图片自适应显示宽度,平时喜欢如何用CSS使图片自适应显示宽度的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

  公司的项目中需要显示由用户提供URI链接的图片,可是预先无法获知图片的尺寸大小,如果图片尺寸过大将会影响页面布局。最理想的解决方案自然是自动生成缩略图,涉及的后台工作较为复杂,用CSS进行控制是一个可以接受的捷径。

  如果用width属性强行设定显示尺寸似乎太不智能。幸好Firefox/Opera/IE7都提供了max-width属性支持。假定希望图片显示宽度不超过500像素,CSS可能如下:

fit-image{ 
  border  :0; 
  max-width:500px; 
}

  让我痛恨的IE6不支持max-width属性,但是利用IE独有的expression属性可以迂回的解决这个问题。

fit-image{ 
  border  :0; 
  max-width:500px; 
  width:   expression( 
   function(img){ 
    img.onload=function(){ 
     this.style.width=’’; 
     this.style.width=(this.width500)?"500px":this.width+"px" 
    }; 
    return’120px’ //加载时显示宽度为120px 
   }(this) 
  ); 
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  利用img的onload事件使图片加载完成后计算其尺寸大小,如果超过500像素就显示为500像素,否则显示其默认宽度。 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  expression不是符合WEB标准的做法,不到万不得以不建议使用。但是不能不承认IE的很多扩展是不错的,IE不应该被轻视!

来源:http://www.tulaoshi.com/n/20160219/1621571.html

延伸阅读
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" head title/title meta http-equiv="Content-Type" content="text/html; charset=gb2312" / style type="text/css" !-- *{padding:0px;margin:0...
自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为… 下面介绍采用“隐藏容器溢出”和“...
标签: Web开发
CSS布局自适应高度解决方法 这是一个比较典型的三行二列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,按一般的做法,大多采用背景图填充、加JS脚本的方法使列的高度相同,本文要介绍的是采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。 先看代码: #w...
今天在看视觉规范的时候,大高走过来说帮他们那边看一个问题。又是一个关于自适应的问题。不过,我喜欢。瞄了一下,需求是这样的:用户上传照片,照片的尺寸未知;需要生成一个预览,这个预览图要根据提供给用户预览的区域自应用,并且居中;如果图片太大,需要按比例缩放。如下图。   瞄了一下,居中可以用 text-align:center; 来实...
标签: Web开发
div下图片自适应解决方法 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐。还有一种是在外部容器定义over-flow:hidden。但这种办法只会切割图片而不会自动适用。  关键在于:max-width:780px;以及下面那行。 固定像素适应: dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc ...

经验教程

614

收藏

16
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部