使用 CSS3 為 SVG 元素建立陰影是否可行?類似於:
box-shadow: -5px -5px 5px #888; -webkit-box-shadow: -5px -5px 5px #888;
遇到了有關使用濾鏡效果創建陰影的討論。有沒有隻使用CSS的例子?下面是一個功能程式碼,其中適當地應用了遊標樣式,但不存在陰影效果。如何用最少的程式碼實現陰影效果?
svg .shadow { cursor:crosshair; -moz-box-shadow: -5px -5px 5px #888; -webkit-box-shadow: -5px -5px 5px #888; box-shadow: -5px -5px 5px #888; }
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" viewBox="0 0 120 70"> <rect class="shadow" x="10" y="10" width="100" height="50" fill="#c66" /> </svg>
使用 CSS 'filter' 屬性。
相容於 webkit 瀏覽器,Firefox 34 和 Edge。
polyfill 可用於支援 FF
實作:
.shadow { -webkit-filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7)); filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7)); }
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Star_wars2.svg" alt="" class="shadow" width="200"> <svg class="shadow" ...> <rect x="10" y="10" width="200" height="100" fill="#bada55" /> </svg> <svg> <g fill="none" stroke="#decade" stroke-width="2" transform="scale(2)"> <circle class="shadow" cx="20" cy="20" r="19"/> <path class="shadow" d="M 20,1 V 39"/> <path class="shadow" d="M 20,1 V 20" transform="rotate(135, 20, 20)"/> <path class="shadow" d="M 20,1 V 20" transform="rotate(225, 20, 20)"/> </g> </svg>
以上是如何僅使用 CSS 將陰影新增到 SVG?的詳細內容。更多資訊請關注PHP中文網其他相關文章!