日韩性视频-久久久蜜桃-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如何设置圆角边框_巧妙实现带圆角的渐变边框的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久er99热精品一区二区 | 免费人妻一区二区三区 | 国产白浆在线观看 | 免费精品国产 | 用力挺进新婚白嫩少妇 | 真实新婚偷拍xxxxx | 精品无人国产偷自产在线 | 动漫一区二区三区 | 热热av| 最近的中文字幕在线看视频 | 精品一区二区三区蜜臀 | 99在线精品免费视频 | 无码一区二区三区在线 | www.久久爱 | 亚洲日本中文字幕 | 欧洲精品视频在线 | 狠狠干夜夜爽 | 国产精品九一 | 久国产精品 | 丁香婷婷在线观看 | 啪啪自拍视频 | 欧美激情91 | 国产黄色免费网站 | 天天射天天干天天色 | 中文字幕中文在线 | 日韩综合一区二区三区 | 国产最新地址 | 日本色站 | 啪啪资源| 天天做天天躁天天躁 | 国产奶头好大揉着好爽视频 | 亚洲精品国产精品国自产网站 | 久久久久中文字幕亚洲精品 | 亚洲精品乱码久久久久久自慰 | 一级片免费网址 | 中国一及毛片 | 国产成人99久久亚洲综合精品 | 日韩福利视频 | 加勒比色综合 | 四虎影院在线观看免费 | 亚洲综合激情在线 | 成人午夜视频在线 | 9i免费看片黄 | 成人午夜一区 | 精品国产自在精品国产精小说 | 欧美激情精品 | 亚洲精品高潮久久久久久久 | 丰满人妻一区二区三区四区53 | 成人午夜精品一区二区三区 | 你懂的网站在线观看 | 四季av一区二区凹凸精品 | 国产美女一区二区三区 | 丁香花电影免费播放在线观看 | 国产成人三级在线 | www.黄色av | 日日碰狠狠添天天爽无码av | 狠狠爱夜夜操 | 欧洲成人在线 | 一级大片免费 | 91日本精品| av成人毛片 | 香蕉久久av| 国产成人精品女人久久久 | 懂色av成人一区二区三区 | 中文字幕乱码在线人视频 | 国产极品网站 | 免费www xxx | 国产精品久久久久9999爆乳 | 我把护士日出水了视频90分钟 | 欧美××××黑人××性爽 | 国产传媒视频在线 | 国产黄片毛片 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 成人短视频在线免费观看 | 丝袜诱惑一区二区 | 大香伊人| 日韩色网 | 男人天堂网在线视频 | 亚洲综合中文字幕在线 | 国产男女猛烈无遮挡免费视频动漫 | 欧美高大丰满少妇xxxx | 人妻夜夜爽天天爽三区麻豆av网站 | 亚洲av男人的天堂在线观看 | 国产精品久久久午夜夜伦鲁鲁 | 日本福利小视频 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 美女又爽又黄 | 一区二区三区四区免费 | 极品av在线| 日韩精选av| 国产h视频在线 | 国产成人精品视频在线观看 | 欧美一区三区二区在线观看 | 嫩草av久久伊人妇女超级a | 黄色一级片在线播放 | 99r精品视频 | 亚洲成人a v | 日本一级淫片1000部 | 五月婷婷七月丁香 |