P粉4188540482023-08-22 18:31:09
這是可能的,並且不需要額外的標記,而是使用了一個::after
偽元素。
它涉及在下方放置一個帶有漸變背景的偽元素,並對其進行裁剪。這在所有當前瀏覽器中都可以工作,無需供應商前綴或hack(甚至是IE),但如果您想要支援舊版本的IE,您應該考慮使用純色回退、javascript和/或自訂的MSIE CSS擴充(即這是一個即時範例(
jsfiddle版本):
@import url('//raw.githubusercontent.com/necolas/normalize.css/master/normalize.css'); html { /* 仅用于显示背景不需要是纯色的 */ background: linear-gradient(to right, #DDD 0%, #FFF 50%, #DDD 100%); padding: 10px; } .grounded-radiants { position: relative; border: 4px solid transparent; border-radius: 16px; background: linear-gradient(orange, violet); background-clip: padding-box; padding: 10px; /* 仅用于显示box-shadow仍然正常工作 */ box-shadow: 0 3px 9px black, inset 0 0 9px white; } .grounded-radiants::after { position: absolute; top: -4px; bottom: -4px; left: -4px; right: -4px; background: linear-gradient(red, blue); content: ''; z-index: -1; border-radius: 16px; }
<p class="grounded-radiants"> 这里有一些文本。<br/> 这里甚至有一个换行!<br/> 太酷了。 </p>
一起工作得很好,無論是否使用
inset
P粉7104549102023-08-22 13:21:05
可能不可能,根據W3C規格:
這可能是因為border-image
可以採用一些可能複雜的圖案。如果你想要一個圓形的圖像邊框,你需要自己創建一個。