💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
1. `<img/>`标签边框问题 当img没有src属性或者图片资源不存在时,img会出现边框,但是通过盒模型观察后发现,盒模型上根本就没有标识出border,所以所谓的边框根本就不是盒模型的边框,而是规范中规定当img不能正常加载时,浏览器需要提供一种显示效果来表明这个位置其实是一个图片元素,只是图片没有正常加载。 所以,当图片不能加载出来的时候,我觉得这个效果是合理的;如果非要改变的话,我能想到的是用js,监听img的onerror事件,当图片加载失败的时候,做一些其他操作,如添加默认图片,或者在失败的时候把图片的透明度设置为0。 ,这个边框特别丑,想去掉时border:none或者border:0都是不好使的(亲测)。img默认为width:16px;height:16px;的一个方框。 解决办法有以下几种,适用场景自行匹配: 1. 外层包裹一层,然后给img设置如下css ``` img{ max-width:100%; max-height:100%; } ``` 优点:简单 缺点:容器占位是问题,当图片小于容器时,图片不能占满容器 2. 图片出错时使用一个默认的图片来代替(占位) ``` <img src="error.jpg" onerror="whenError(this)"> <script> function whenError(a){ a.onerror = null; a.src = 'http://avatar.csdn.net/1/E/E/1_qq_27080247.jpg'; console.log('图片出错的时候调用默认的图片'); } </script> ``` 优点:解决了占位的问题 缺点:麻烦,需要写js;需要加载一张空白图片 3. 图片出错时将图片透明度设置为0 ``` <img src="error.jpg" onerror="whenError(this)"> <script> function whenError(a){ a.onerror = null; a.style.opacity = 0; } </script> ``` 优点:解决了占位的问题,不需要加载空白图片,相对来说比方案2好 缺点:麻烦,需要写js 4. 使用css ``` img[src=""],img:not([src]){ opacity:0; } ``` 优点:简单,使用css就可以搞定,不需要js 缺点:解决不了src有值,但是该图片不存在的情况