日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java如何设置圆角边框_巧妙实现带圆角的渐变边框

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何设置圆角边框_巧妙实现带圆角的渐变边框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何實現下面這個漸變的邊框效果:

這個問題本身不難,實現的方法也有一些,主要是有一些細節需要注意。

border-image

border-image?是 CSS 規范?CSS Backgrounds and Borders Module Level 3?(最新一版的關于 background 和 border 的官方規范) 新增的一個屬性值。

顧名思義,我們可以給 border 元素添加 image,類似于?background-image,可以是圖片也可以是漸變,不再局限于純色。

使用 border-image 實現漸變邊框

有了?border-image?之后,實現漸變邊框變得很方便

不過多介紹?border-image?的語法,讀者需要自行了解一下。

實現如下:

.border-image {

width: 200px;

height: 100px;

border-radius: 10px;

border-image-source: linear-gradient(45deg, gold, deeppink);

border-image-slice: 1;

border-image-repeat: stretch;

}

上面關于 border-image 的三個屬性可以簡寫為?border-image: linear-gradient(45deg, gold, deeppink) 1;

得到如下結果:

border-radius 失效

仔細看上面的 Demo,設置了?border-radius: 10px?但是實際表現沒有圓角。使用?border-image?最大的問題在于,設置的?border-radius?會失效。

我們無法得到一個帶圓角的漸變邊框。原因,查看官方規范 W3C 解釋如下:

A box's backgrounds, but not its border-image, are clipped to the appropriate curve (as determined by ‘background-clip’). Other effects that clip to the border or padding edge (such as ‘overflow’ other than ‘visible’) also must clip to the curve. The content of replaced elements is always trimmed to the content edge curve. Also, the area outside the curve of the border edge does not accept mouse events on behalf of the element.

為此,我們得另辟蹊徑或者稍加改進,得到帶圓角的漸變邊框。

法一:background-image + 偽元素

第一種方法,我們不再使用?border-image?,而是使用?background-image?+ 偽元素 的方案,這也是在?border-image?規范沒有出現最常用的方法。

非常簡單,簡單的示意圖如下:

利用?background-image?實現一個漸變背景,再通過疊加一個白色背景使之形成一個漸變邊框。

缺點

這個方案有兩個問題,第一個是多使用了兩個元素(當然在這里是 ::before 和 ::after),其次最致命的是,如果要求邊框內的背景是透明的,此方案便行不通了。

法二,使用 background-clip 實現

第二種方法,使用?background-clip: content-box?以及?background-clip: border-box?配合使用。

background-clip:background-clip 設置元素的背景(背景圖片或顏色)是否延伸到邊框下面。它的部分取值和?box-sizing?類似。其中,

background-clip: border-box?表示設置的背景?background-image?將延伸至邊框

background-clip: content-box?表示設置的背景?background-image?被裁剪至內容區(content box)外沿

這里,我們使用設置兩個?background-image,設置兩個?background-clip?,并且將 border 設置為透明即可:

核心 CSS:

div {

width: 200px;

height: 100px;

border: solid 10px transparent;

border-radius: 10px;

background-image: linear-gradient(#fee, #fee),

linear-gradient(to right, green, gold);

background-origin: border-box;

background-clip: content-box, border-box;

}

因為用到了?background-clip: border-box,所以還需要?background-origin: border-box?使圖案完整顯示,可以嘗試下關掉這個屬性,即可明白為什么需要這樣做。

缺點

與第一種方法類似,如果要求邊框內的背景是透明的,此方案便行不通了。

法三:border-image + overflow: hidden

這個方法也很好理解,既然設置了?background-image?的元素的?border-radius?失效。那么,我們只需要給它加一個父容器,父容器設置?overflow: hidden?+?border-radius?即可:

.border-image-pesudo {

position: relative;

width: 200px;

height: 100px;

border-radius: 10px;

overflow: hidden;

}

.border-image-pesudo::before {

content: "";

position: absolute;

width: 200px;

height: 100px;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

border: 10px solid;

border-image: linear-gradient(45deg, gold, deeppink) 1;

}

效果如下:

當然,這里還是多借助了一個元素實現。還有一種方法,可以不使用多余元素實現:

法四:border-image + clip-path

設置了?background-image?的元素的?border-radius?失效。但是在 CSS 中,還有其它方法可以產生帶圓角的容器,那就是借助?clip-path。

[clip-path](https://developer.mozilla.org/zh-CN/docs/Web/CSS/clip-path),一個非常有意思的 CSS 屬性。

clip-path CSS 屬性可以創建一個只有元素的部分區域可以顯示的剪切區域。區域內的部分顯示,區域外的隱藏。剪切區域是被引用內嵌的URL定義的路徑或者外部 SVG 的路徑。

簡而言之,這里,我們只需要在?border-image?的基礎上,再利用?clip-path?裁剪出一個帶圓角的矩形容器即可:

.border-image-clip-path {

position: relative;

width: 200px;

height: 100px;

border: 10px solid;

border-image: linear-gradient(45deg, gold, deeppink) 1;

clip-path: inset(0 round 10px);

}

解釋一下:clip-path: inset(0 round 10px)?。

clip-path: inset() 是矩形裁剪

inset() 的用法有多種,在這里?inset(0 round 10px)?可以理解為,實現一個父容器大小(完全貼合,垂直水平居中于父容器)且?border-radius: 10px?的容器,將這個元素之外的所有東西裁剪掉(即不可見)。

非常完美,效果如下:

當然,還可以利用?filter: hue-rotate()順手再加個漸變動畫:

最后

好了,本文到此結束,希望對你有幫助 :)

更多精彩 CSS 技術文章匯總在我的?Github -- iCSS?,持續更新,歡迎點個 star 訂閱收藏。

如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

總結

以上是生活随笔為你收集整理的java如何设置圆角边框_巧妙实现带圆角的渐变边框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇姐姐| 蜜臀av夜夜澡人人爽人人 | 视频免费在线 | 亚洲成人精品一区二区三区 | 视频在线播 | 成人免费一区二区三区 | 色在线网站 | 尤物网址在线观看 | 日韩欧美精品久久 | 亚洲av首页在线 | 中文字幕av高清片 | 日韩综合在线观看 | 暖暖成人免费视频 | 午夜美女福利视频 | 被黑人猛躁10次高潮视频 | 亚洲资源网站 | 中文字幕一区二区三区在线观看 | 成人一二三四区 | 黄色av网站在线 | 日本xxxx18高清hd | 亚洲欧美日本一区 | 香蕉人妻av久久久久天天 | 真人bbbbbbbbb毛片 | 久久久久久久久久久福利 | 日韩在线观看不卡 | 亚洲 另类 春色 国产 | 日本免费网 | 精品少妇久久久 | 性色在线 | 国产精品视频免费观看 | 午夜精品一区二区三区在线观看 | 国产乱子伦农村叉叉叉 | 双性懵懂美人被强制调教 | 国产精品视频网址 | 女人下面流白浆的视频 | 欧美黄片一区 | 臭脚猛1s民工调教奴粗口视频 | 亚洲成人一区二区三区 | 亚洲无限av | h片在线观看视频 | 麻豆视频精品 | 国产黑丝在线观看 | 日韩精品视频在线 | 欧美成人精品一区二区男人看 | 成人免费毛片免费 | xx性欧美肥妇精品久久久久久 | 欧美黑人又粗又大又爽免费 | 中文字幕一区二区人妻电影 | 国产亚洲自拍一区 | 中文字幕人妻色偷偷久久 | 日韩社区| 国产伦一区二区三区 | 黄色片免费在线播放 | 亚洲综合专区 | 激情小说中文字幕 | 久久一区二区精品 | 黑人玩弄人妻一区二区三区 | 日本熟女毛茸茸 | 国产高清日韩 | 国产又粗又猛又色又 | 久久久久99精品成人片直播 | 欧美性69 | 国产性―交一乱―色―情人 | 中文字幕一区二区三区四区欧美 | 91精品啪 | 欧美高清一区二区三区四区 | 国产精品一区av | 无套内谢少妇毛片 | 国产精品国产三级国产普通话对白 | 在线看片不卡 | 夜夜爽妓女8888视频免费观看 | 免费欧美一级视频 | 午夜精品一二三区 | 女性裸体视频网站 | 国产免费一区二区三区视频 | 精品久久久久久久久久 | 男人操女人逼逼视频 | 水蜜桃av无码 | 欧美成人性生活片 | 女人和拘做爰正片视频 | 亚洲av成人精品日韩在线播放 | 麻豆视频在线 | youjizz国产精品 | 欧美在线观看一区 | 久久久一二三区 | 深爱开心激情网 | 久久久精品国产sm调教网站 | 国产干b | 国产无限制自拍 | 中文字幕免费高清在线观看 | 91在线播放视频 | 日韩av网站大全 | 疯狂做受xxxx高潮人妖 | 欧美大片在线看 | 国产尤物网站 | xxxx 国产| 国产深夜福利 | 国产精品99久久久久久大便 | 四虎一区二区 |