亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用CSS實現(xiàn)漸變圓角邊框的效果

  發(fā)布時間:2023-10-12 16:02:33   作者:Qhan   我要評論
這篇文章給大家介紹了如何使用CSS實現(xiàn)漸變圓角邊框的效果,有沒有發(fā)現(xiàn)在現(xiàn)如今的網(wǎng)站應用中,我們大量的使用到這類場景,在解決這類問題時,我們利用了css的mask與mask-composite屬性

讓我們先看如下一個場景,在這里我們給出了一個圓角且?guī)в袧u變邊框的按鈕示例。當然根據(jù)你的業(yè)務場景也可以是其它元素,在這里我們使用按鈕來作為切入點。

有沒有發(fā)現(xiàn)在現(xiàn)如今的網(wǎng)站應用中,我們大量的使用到這類場景。在解決這類問題時,我們通常想到的是用border-image但很不幸的是該元素并不支持圓角屬性。為了更確切的還原設計稿我們不得不直接使用圖片來處理,那么有沒有辦法只用css來解決呢?答案是有的,就是利用css的maskmask-composite屬性。

css mask and mask-composite

mask:通過遮罩或在特定點剪切圖像來隱藏部分或全部元素。
mask-composite:表示對當前蒙版層與其下面的蒙版層使用的合成操作。

使用cssmask-compositemask屬性實現(xiàn)圓邊框漸角變,不需要復雜的代碼、SVG 或多個元素,只需幾行行 CSS 代碼即可。同時該方式能實現(xiàn)邊框內(nèi)背景透明,滿足我們高度定制化網(wǎng)站。但仍需要注意的是,該屬性目前兼容性還不是很好,請慎用,查看兼容性:CanIUse

因為目前這兩個CSS屬性兼容性問題,因此在使用這兩個屬性時都需要加上-webkit-前綴。當然這也是目前最簡單的不使用圖片、支持圓角、漸變、背景透明的最佳解決方案。

 .css{
  padding: 5px 8px;
  cursor: pointer;
  position: relative;
  &::before { /* 1 */
    display: block;
    content: '';
    border-radius: 6px;
    border: 2px solid transparent;
    background: linear-gradient(90deg, #8f41e9, #578aef) border-box; /* 2 */
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);  /* 3 */
    -webkit-mask-composite: xor;  /* 4 */
    mask-composite: exclude;
    position: absolute;
    width: 100%;
    height: 100%;
    }

解釋:

  • 1: 這里需要用到偽元素的原因在于,如果直接在當前元素層實現(xiàn)該css會導致該層內(nèi)內(nèi)容顯示為白色,因此我們需要一個單獨的層來實現(xiàn)漸變圓角邊框。
  • 2: 使用漸變作為背景,并將其原點設為邊框(默認情況下為填充框)。
  • 3: 使用該mask屬性,我們應用兩個不透明層。底部一層將覆蓋整個元素,頂部一層僅覆蓋填充框(因此不會覆蓋邊框區(qū)域)
  • 4: 我們從底部一層中排除頂層,以便僅顯示邊框區(qū)域
  • -webkit-: 有些瀏覽器仍然不支持該屬性,所以我們使用帶前綴的版本

注意:在某些情況下,你可能還需對偽元素增加z-index:-1屬性。那么此時你面要對當前元素添加值大于等于0的z-index屬性。

其它漸變邊框解決方案

以下幾種解決方案除第一個外,其它都不支持背景透明

border-image

background-image類似,在css中已提供border-image屬性用來專門處理復雜邊框樣式,我們可以在border中展示imagelinear-gradient。

.css {
  border: 2px solid;
  border-image: linear-gradient(to right, #8f41e9, #578aef) 1;
}
/* or */
.css {
  border: 2px solid;
  border-image-source: linear-gradient(to right, #8f41e9, #578aef);
  border-image-slice: 1;
}

注意:該方法不支持設置 border-radius,因此只能適用于直角矩形邊框。

偽元素 background-image clip

使用一個單獨的元素作為漸變色背景放在最下層,上層設置一個透明的 border 和純色的背景(需要設置 background-clip: padding-box 以避免蓋住下層元素的 border), 上下兩層設置相同的 border-radius。

當然也可以用其它標簽元素代替?zhèn)卧?,原理一樣?/p>

.css {
  border: 2px solid transparent;
  border-radius: 6px;
  position: relative;
  background-color: #fff;
  background-clip: padding-box; 
}
.css::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  z-index: -1;
  margin: -2px;
  border-radius: inherit;
  background: linear-gradient(to right, #8F41E9, #578AEF);
}

background-image clip

只需要用到單層元素,為其分別設置 background-clip、background-origin、background-image 這三個屬性,每個屬性設置兩組值,第一組用于設置border內(nèi)的單色背景,第二組用于設置border上的漸變色。

.css {
  border: 2px solid transparent;
  border-radius: 6px;
  background-clip: padding-box, border-box;
  background-origin: padding-box, border-box;
  background-image: linear-gradient(to right, #fff, #fff),
    linear-gradient(90deg, #8f41e9, #578aef);
}

到此這篇關于使用CSS實現(xiàn)漸變圓角邊框的效果的文章就介紹到這了,更多相關CSS實現(xiàn)漸變圓角邊框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

  • 使用CSS實現(xiàn)簡單的邊框流光效果

    今天給大家分享一個使用CSS實現(xiàn)簡單的邊框流光效果,就像和夜晚街上的廣告牌很像,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的
    2023-09-14
  • 使用CSS實現(xiàn)鋸齒形邊框的示例代碼

    今天給大伙帶來的是一個鋸齒形邊框,類似于傳統(tǒng)郵票的邊框,有一圈鋸齒形狀,其實看到這種效果,相信很多人第一反應是采用偽元素的方式添加小三角形來實現(xiàn)鋸齒狀,確實是這
    2023-09-08
  • CSS實現(xiàn)切角+邊框+投影+內(nèi)容背景色漸變效果

    這篇文章主要介紹了CSS實現(xiàn)切角+邊框+投影+內(nèi)容背景色漸變效果,單純用css實現(xiàn)切角+邊框+投影+內(nèi)容背景色漸變所有效果,因為UI沒給背景切圖,尋思這個理論上用css就能實現(xiàn)
    2021-10-27
  • css背景和邊框標簽實例詳解

    本文通過代碼給大家介紹css背景和邊框標簽的一些知識,通過相關屬性設置背景顏色,背景圖像,對css背景與邊框的相關知識感興趣的朋友一起看看吧
    2021-05-21
  • css 中多種邊框的實現(xiàn)小竅門

    這篇文章主要介紹了css 中多種邊框的實現(xiàn)小竅門,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習
    2021-04-07
  • css實現(xiàn)邊框流動的項目實踐

    邊框流動效果是一種很酷的效果,可以為網(wǎng)頁增添一些動感和活力,本文就來介紹一下css實現(xiàn)邊框流動的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-02-01

最新評論