上一篇
html5图片样式
- 行业动态
- 2025-05-10
- 6
HTML5图片样式通过标签属性与CSS,支持响应式布局、
HTML5 图片基础语法
标签属性 | 说明 | 示例 |
---|---|---|
src | 指定图片路径 | <img src="image.jpg"> |
alt | 替代文本(SEO必备) | <img src="image.jpg" alt="风景图"> |
CSS 图片样式控制
样式属性 | 说明 | 示例效果 |
---|---|---|
width/height | 设置宽高(推荐只用其一) | img.width-100 { width: 100%; } |
border | 添加边框 | img.border { border: 5px solid #ccc; } |
border-radius | 圆角处理 | img.rounded { border-radius: 10px; } |
object-fit | 裁剪/缩放控制 | img.cover { width: 100%; height: 300px; object-fit: cover; } |
响应式图片方案
<!-方案1:picture元素 --> <picture> <source media="(min-width: 768px)" srcset="large.jpg"> <source media="(min-width: 480px)" srcset="medium.jpg"> <img src="small.jpg" alt="响应式图片"> </picture> <!-方案2:srcset属性 --> <img src="small.jpg" srcset="medium.jpg 480w, large.jpg 768w" sizes="(max-width: 768px) 480px, 100vw" alt="响应式图片">
图片优化技巧
懒加载
<img src="placeholder.jpg" data-src="real.jpg" class="lazy">
document.addEventListener('DOMContentLoaded', () => { const lazyImages = document.querySelectorAll('img.lazy'); const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const img = entry.target; img.src = img.getAttribute('data-src'); img.classList.remove('lazy'); } }); }); lazyImages.forEach(img => observer.observe(img)); });
WebP格式支持
<picture> <source type="image/webp" srcset="image.webp"> <img src="image.jpg" alt="WebP示例"> </picture>
常见问题与解答
Q1:如何让图片保持比例缩放?
A:使用object-fit
属性配合宽高设定,推荐做法:
.ratio-box { width: 100%; height: 300px; overflow: hidden; } .ratio-box img { width: 100%; height: 100%; object-fit: contain; / 可选值:cover/fill/none/scale-down / }
Q2:如何处理图片加载失败的情况?
A:使用onerror
事件监听,实现备用方案:
<img src="main.jpg" alt="主图" onerror="this.src='fall