古詩詞大全網 - 成語大全 - 如何利用CSS3的線性漸變linear-gradient制作邊框

如何利用CSS3的線性漸變linear-gradient制作邊框

這篇文章主要介紹了關於如何利用CSS3的線性漸變linear-gradient制作邊框,有著壹定的參考價值,現在分享給大家,有需要的朋友可以參考壹下

linear-gradient線條用來制作邊框還是比較給力的,尤其是利用其描邊可以制作壹些復制的邊框效果,這裏我們就來看壹下利用CSS3的線性漸變linear-gradient制作邊框的示例

壹般的app邊框描邊的線都小於壹像素,那麽我就像往常壹樣直接描了1px的邊框,雖然是1px可是結果和app裏的描邊完全不壹樣“粗了”,所以就在網找了壹下看看有沒有解決方法,可是找了壹會沒找到,那咋辦,需求方不願意不要這麽粗,那就只能自己解決了。

所以用上個方法聯想到了線性漸變(linear-gradient)

CSS

.line li{ border: none;

background-image: -webkit-linear-gradient(#222 50%,transparent 50%);

background-image: -moz-linear-gradient(#222 50%,transparent 50%);

background-image: -o-linear-gradient(#222 50%,transparent 50%);

background-image: linear-gradient(#222 50%,transparent 50%);

background-size: 100% 1px;

background-repeat: no-repeat;

background-position: bottombottom;}XML/HTML

<ul class="line">

<li>linear-gradient</li>

<li>linear-gradient</li>

<li>linear-gradient</li>

</ul>OK,又出來了,但還是有點瑕疵,那麽問題來了,就是改變描邊位置(left,top,right,bottom)需要修改參數如 left描邊需要改變:

CSS

background-image: -webkit-linear-gradient(left ,transparent 50%,#222 50%);

background-size: 1px 100%;

background-position: left;具體的都不壹壹列出了。

利用linear制作復雜的邊框效果

另外,在網上看到壹種利用linear-gradient屬性制作絢麗邊框效果的方法。首先給出代碼,大家可以在自己的電腦中查看效果:

CSS

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta charset="utf-8" />

<title></title>

<style>

.box {

margin: 80px 30px;

width: 200px;

height: 200px;

position: relative;

background: #fff;

float: left;

}

.box:before {

content: '';

z-index: -1;

position: absolute;

width: 220px;

height: 220px;

top: -10px;

left: -10px;

}

.first:before {

background-image: linear-gradient(90deg, yellow, gold);

}

.second:before {

background-image: linear-gradient(0deg, orange, red);

}

.third:before {

background-image: repeating-linear-gradient(-45deg,#cc2a2d,#cc2a2d 30px,#f2f2f2 30px,#f2f2f2 40px,#0e71bb 40px,#0e71bb 70px,#f2f2f2 70px,#f2f2f2 80px);

}

</style>

</head>

<body>

<p class="box first"></p>

<p class="box second"></p>

<p class="box third"></p>

</body>

</html> 有代碼可以看出,其實我們並沒有使用border,那麽這種邊框效果是怎麽實現的呢?總體思路是,我們先定義壹個白色的p,在定義壹個白色方塊大壹圈的帶顏色的p。兩個重疊壹下,並且讓白色的p覆蓋彩色p,就實現了邊框的效果。

這裏面用到的css知識點很多。

1、:before偽類

通過上面的代碼我們看出,其實我們在定義的白色p中定義了壹個:before偽類,把彩色方塊所有的樣式都放在了這裏。這是因為使用:before定義可以使得定位更加方便,只要調整top和left為邊框的寬度就可以了。同時也是的二者成為壹個整體。

2、linear-gradient

現在很多瀏覽器都支持這個css方法。該方法有以下三種使用模式:

①background:linear-gradient(top,#fff,#000)

這段代碼的意思是,從上部開始為白色,到底部為黑色進行過度。

②background:linear-gradient(top,right,#fff,#000)

這段代碼關於位置傳遞了兩個參數,top和right,表示從右上放開始,到左下方變化,其他道理與第壹個相同。

③background:linear-gradient(30deg,#fff,#000)

這段代碼的第壹個參數傳遞的是角度,其實道理和位置是壹樣的,只是不是從標準的位置開始變化了。那麽角度和位置的對應關系是什麽呢?根據實驗,0度對應bottom,90度對應left,180度對應top,360度對應right。