# CSS如何給圖片添加投影效果
在網頁設計中,為圖片添加投影效果(Drop Shadow)能夠有效提升視覺層次感,使元素從背景中脫穎而出。CSS提供了多種實現方式,本文將詳細介紹`box-shadow`、`filter: drop-shadow()`以及實際應用技巧。
---
## 一、基礎方法:box-shadow屬性
`box-shadow`是最常用的投影實現方式,通過控制偏移、模糊、擴散和顏色參數生成陰影效果。
### 基本語法
```css
img {
box-shadow: [水平偏移] [垂直偏移] [模糊半徑] [擴散半徑] [顏色];
}
/* 基礎投影 */
.shadow-1 {
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
}
/* 內陰影效果 */
.shadow-2 {
box-shadow: inset 0 0 20px #000;
}
/* 多重陰影 */
.shadow-3 {
box-shadow:
0 0 10px #ff0000,
0 0 20px #00ff00;
}
類名 | 效果描述 |
---|---|
shadow-1 | 右下方向模糊灰色投影 |
shadow-2 | 圖片邊緣內部發光效果 |
shadow-3 | 紅綠雙色霓虹燈效果 |
當需要根據圖片非矩形輪廓生成陰影時,filter: drop-shadow()
比box-shadow
更合適。
特性 | box-shadow | filter: drop-shadow |
---|---|---|
跟隨元素形狀 | ? 矩形框 | ? 實際輪廓 |
支持內陰影 | ? | ? |
性能影響 | 較低 | 較高(GPU加速) |
.avatar {
filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.5));
}
.natural-shadow {
box-shadow:
3px 3px 10px 0 rgba(0, 0, 0, 0.2),
6px 6px 20px 0 rgba(0, 0, 0, 0.1);
}
.card img {
transition: box-shadow 0.3s ease;
}
.card:hover img {
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}
filter
box-shadow
實現簡單效果will-change: transform
提升動畫性能.shadow-fallback {
/* 現代瀏覽器 */
box-shadow: 2px 2px 5px #999;
/* 舊版IE */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=135, Color='#999999')";
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=135, Color='#999999');
}
box-shadow
:IE9+ 全部現代瀏覽器filter
:IE部分支持,需加-webkit-
前綴.floating-card {
box-shadow:
0 1px 3px rgba(0,0,0,0.12),
0 10px 20px rgba(0,0,0,0.1);
transform: translateY(-5px);
}
.neon-effect {
filter:
drop-shadow(0 0 5px #fff)
drop-shadow(0 0 10px #f0f)
drop-shadow(0 0 15px #0ff);
}
通過靈活組合這些CSS技術,開發者可以創造出從簡約到炫酷的各種圖片投影效果。建議根據實際項目需求選擇合適的方法,并注意平衡視覺效果與頁面性能。 “`
注:本文實際約950字,可根據需要增減示例代碼部分擴展內容。關鍵知識點已通過代碼塊、表格等形式突出顯示,便于讀者快速理解核心概念。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。