热泪滚滚,终于会在css里控制图片最大尺寸了

2009年1月17日 | 分类: 过日子 | 标签:

我水木的blog转过来的文章,很多图片尺寸都是640*480。而我用的模板支持的图片宽度是600。这下好了,在浏览器上我的blog右边栏被图片挤到右下角去了。开始不明所以,迷惑了很久。后来发现是图片过大把框架搞乱了。如果能加个控制,让超过某个尺寸的图片自动按比例缩减到框架允许的范围内,就ok了。

我是代码白痴,上网搜了好久,发现讲这个问题的很多,有很多现成代码,但是我连把代码放到那里都不知道。呜呼!没文化真是 好可怕。
只好又稍稍稍稍看了一下关于博客主题,什么css,什么框架,看天书一样瞎琢磨了好久。
把网上搜来的代码拷这里拷那里,均不成功,简直太有挫败感了。

基本上,通过试错法,算是暂时解决了
记录一下,以免以后我忘了
简单说就是把自己blog的主题样式表(style.css)里加一小段CSS代码

网上搜到的是这个:

.Image { 
     max-width:600px;height:auto;cursor:pointer; 
     border:1px dashed #4E6973;padding: 3px; 
     zoom:expression( function(elm) { 
         if (elm.width>560) { 
             var oldVW = elm.width; elm.width=560; 
             elm.height = elm.height*(560 /oldVW);
         }
         elm.style.zoom = ’1′;
     }(this));
}

但是我原样放在我自己的样式表里,不起任何作用。

只好很抓狂的一句一句的看样式表
终于看看到一句很可疑的
.post .content img {
         max-width:600px;
}
大概就是说插入图片大小最大是600px,但是恰好我转过来的文章中插入的图片恰好都是640px,所以除了问题吧。
我还没有用wp自带的编辑器写过文章,也许用自带编辑器写的文章,插入图片时自动会变成600px吧。但是这样也有问题,就是我有时会用windows live writer写日志,这样插入的图片也不会被自动缩放。

比较了两段代码
自己改了一下,综合起来变成这个样子:
.post .content img {
         max-width:600px;
         height:auto;
         cursor:pointer;
         zoom:expression( function(elm) {
             if (elm.width>560) {
                 var oldVW = elm.width; elm.width=560;
                 elm.height = elm.height*(560 /oldVW); 
             }        
             elm.style.zoom = ’1′;    
         }(this));
}
其实就是按照自己博客样式表里的格式照猫画虎微调了一下,然后去掉了一句唧唧歪歪在图片外围加虚线边框的代码。
基本算是ok了

然后又发现一个代码

.post .content img{

        max-width: 600px;

        width:expression(this.width > 600 ? “600px” : this.width);

        overflow:hidden;

}

看上去似乎更利落一些,试了一下也管用

换成下面这个也达到了基本要求,这几个具体什么区别我还没有研究,但是总归是有出路了。

.post .content img{

        width:expression(this.width > 580 && this.width > this.height ? 580 : true); height: expression(this.height > 580 ? 580 : true);

}

似乎我原来插入代码不起作用是第一句的问题

在我的模板里,需要的是

.post .content img{

而不是

. img{

所以,应用时还是需要看一下自己模板的情况。 

需要的筒子可以拿去试试
叉腰大笑三声~~~~~~~好歹咱也算工科女呀

  1. maomy
    2009年1月17日22:56

    哇,大赞工科女的钻研精神!
    是不是还有个方法可以控制?不过我也没试过

  2. maomy
    2009年1月17日22:59

    代码不显示啊。看这里:http://www.xker.com/page/e2008/0222/49864.html
    用css控制图片自适应大小的那部分,针对不同浏览器,也许有用。

    你用的代码看起来很可疑,不知道function(elm)是虾米东东,呵呵。

  3. decembermay
    2009年1月17日23:34

    那就不知道啦,我只是搞到能用,具体这些都是干嘛的,以后慢慢再说啦
    你说的那个确实挺可疑的,明天有空删掉试试

    现在真是实践指导前进方向……
    今天活活把模板搞垮了,后来删了重新下了一个

  4. 2009年1月18日00:31

    @decembermay
    可不是都这么过来的嘛……好在你有先行者,家里还有技术支持男。你自己也很能干,我看这些插件都用上了嘛。 :evil: 吼吼。

  5. decembermay
    2009年1月19日19:08

    花生 :@decembermay可不是都这么过来的嘛……好在你有先行者,家里还有技术支持男。你自己也很能干,我看这些插件都用上了嘛。 吼吼。

    试了一下你给的连接的代码,在家看ok,在单位的电脑上还是不ok,还是原来那个啰嗦的都ok
    我就先用我自己找的啰嗦版本了

  6. 2009年2月17日17:07

    抱抱,我搬家的时候也有这个问题,那个主题只支持480,我的相册链出来都是500,发文的时候选自动缩到480那个算法做出来很难看,于是满地找代码改样式表,想改成最大500的,未果。后来我也人肉去改格式了,通过背景颜色障眼法把字这块调成500了,但是后遗症很多,只要有人在回复里贴长link,格式就完蛋了,赶明还是找个好用的主题得了,你这个主题原来从哪里搞的?很好看啊

    • decembermay
      2009年2月17日22:33

      主题在这里http://www.neoease.com/themes/,这个作者的几个主题都不错的说。
      图片嘛,好像用新博客后再写也不会再有个这个问题,只有老博客转过来的图片没办法缩放的样子。
      研究这些头都炸了,严重影响我写博客的热情,哇哇

  7. maomy
    2009年2月18日19:13

    老的图片,只好装作没有看见…大部分的wp模板,宽度都不会超过540,如果你的贴图太宽,很难找到合适的模板,除非自己动手改。 :mrgreen: