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

2016-02-19 20:28 2 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享用CSS使图片自适应显示宽度教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

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

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

  假如用width属性强行设定显示尺寸似乎太不智能。幸好Firefox/Opera/IE7都提供了max-width属性支持。

  假定希望图片显示宽度不超过500像素,CSS可能如下:

以下为引用的内容:
fit-image{ 
  border  :0; 
  max-width:500px; 
}

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


  让我痛恨的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) 
  ); 
}

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

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

来源:https://www.tulaoshi.com/n/20160219/1623811.html

延伸阅读
标签: Web开发
自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为… 下面介绍采用“隐藏容器溢...
自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了。按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为… 下面介绍采用“隐藏容器溢出”和“...
标签: Web开发
你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特效么?没有?那请跟我来。 让我先通俗的介绍一下css,css不属于html,它属于html的辅助语言,在没有css之前,网页是静态的,但自从有了css 后,网页制作的历史就要重写了,css能给网页加入许多你想象不到的动态效果,这也是其中一点而已,因为css中有很多特效...
标签: Web开发
CSS布局自适应高度解决方法 这是一个比较典型的三行二列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,按一般的做法,大多采用背景图填充、加JS脚本的方法使列的高度相同,本文要介绍的是采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。 先看代码: #w...
标签: Web开发
div下图片自适应解决方法 以前的解决方法主要是利用js来实现,但用过的人都知道该办法有点繁琐。还有一种是在外部容器定义over-flow:hidden。但这种办法只会切割图片而不会自动适用。  关键在于:max-width:780px;以及下面那行。 固定像素适应: dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc ...

经验教程

408

收藏

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