七彩知识堂[站长学院]
如何控制图片大小不撑开网页
如何控制图片大小不撑开网页
如何控制网页内容里的图片不把网页、表格(table)撑得变形了呢?表格(table)、DIV+CSS、js下如何控制?如何控制图片不撑开网页?
一、 在网页里直接设置图片大小,比如:< img src="/aieryi.jpg" width="300" height="300" >,这样虽然可以控制图片大小,不导致把网页、表格(table)、div撑得变形。但会对不同比例的图片就会造成变形。
二、如下代码:< img src="aieryi.jpg" border="0" onload="javascript:if(this.width>300}{this.resized=true;this.style.width=300;}">
这种方法会在调用图片的时候,自动按比例缩小到指定的宽度,不会引起图片的变形,并且也不会撑破表格,但是缺点是,如果图片太大,在图片下载过程中,也就是图片显示过程中,会先以图片原大小显示,这时就会撑破表格,页面很难看,当然当图片完全显示后,图片又会自动缩小。
三、 我们可以针对表格的属性来限制大小防止被撑开,比如在< table width="300" border="0" cellpadding="0" cellspacing="0">里添加代码“style="table-layout:fixed;word-wrap:break-word; word-break;break-all;"”,其中“table-layout:fixed; ”是为了将表格布局固定住,就可以有效地防止表格被撑开,“word-wrap:break-word; ”是控制换行的,也就是强制执行换行,这个在文本内容较多的情况下需要使用到,特别是重复的内容出现,不执行换行的话,表格就被撑开了;而“word-break: break-all; ”可以解决IE的框架被英文撑开的问题,但是不会强制换行,只显示表格宽度里的内容。一般情况下只要用到“style="table-layout:fixed;word-wrap:break-word;"”就可以。当然,上面调用的语句可以定义在css里,比如
table {
table-layout: fixed;
word-wrap:break-word;
}
四、用css控制图片自适应大小,代码:
img {
max-width: 300px;
width:expression(this.width > 300 ? "300px" : this.width+"px"); overflow:hidden;
}
如果要限制高度同理:
img {
max-height: 400px;
width:expression(this.height > 400 ? "400px" : this.height+"px"); overflow:hidden;
}
其中 max-width:300px(max-height: 400px; ),在IE7、FireFox等其他非IE浏览器下最大宽度为300px(高度为400px;),但在IE6中无效; width:expression(this.width > 300 ? "300px" : this.width+"px") 在所有浏览器中图片的宽度为300px,当图片宽度大小大于300px,宽度自动缩小为300px,在IE6中有效;而 overflow:hidden; 指将超出设置大小的部分隐藏,避免控制图片大小失败而引起的表格(table)、div撑开变形。
五、比较实用的代码:
table {
table-layout: fixed;
word-break: break-all;
}
如果是div:
div {
table-layout: fixed;
word-wrap: break-word;
width: 300px;/*宽度*/
overflow: hidden;/*让多出来的隐藏*/
}
表格(table)、div都可以
img {
max-width: 300px;
width:expression(this.width > 300 ? "300px" : this.width+"px"); overflow:hidden;
}
(ps在限制图片宽度自动比例缩放后如果怕一些特别的不成比列的图片、高度高出宽度比例很多,导致高度撑破,又要限制下高度加入(预防万一)onload="javascript:if(this.height>400)this.height=400")
六、js解决方法
<div id=article><img height="300" alt="" width="400" src="aieryi.jpg " /></div>
<script type="text/javascript" >
//缩放图片到合适大小
function ResizeImages()
{
var myimg,oldwidth,oldheight;
var maxwidth=300;
var maxheight=400
var imgs = document.getElementById('article').getElementsByTagName('img'); //如果你定义的id不是article,请修改此处
for(i=0;i<imgs.length;i++){
myimg = imgs[i];
if(myimg.width > myimg.height)
{
if(myimg.width > maxwidth)
{
oldwidth = myimg.width;
myimg.height = myimg.height * (maxwidth/oldwidth);
myimg.width = maxwidth;
}
}else{
if(myimg.height > maxheight)
{
oldheight = myimg.height;
myimg.width = myimg.width * (maxheight/oldheight);
myimg.height = maxheight;
}
}
}
}
//缩放图片到合适大小
ResizeImages();
</script>
信息推荐
财经资讯 | 电子商务 | 搜索营销 | 设计学院 | 健康常识 | 养生保健 | 节日祝福 | 民俗文化 | 星座命理
星座运势 | 生日短信 | 新年短信 | 传统节日 | 奇闻异事 | 百姓健康 | 趣闻轶事 | 祝福的话 | 手机短信
© 2005-2018 Qicaispace.Com