關(guān)于元素?fù)附堑募夹g(shù)選型與實(shí)現(xiàn)(優(yōu)惠券缘挽,商品優(yōu)惠券瞄崇,禮包券等等)

應(yīng)用場(chǎng)景

【1】領(lǐng)券中心(優(yōu)惠券,商品優(yōu)惠券壕曼,禮包券等等)
【2】?jī)?yōu)惠券(多種布局混合多種版式的券樣式)
【3】cms后臺(tái)管理促銷頁


image.png

調(diào)研淘寶和京東的WAP站點(diǎn)苏研,會(huì)發(fā)現(xiàn)他們的都是使用的背景圖來實(shí)現(xiàn)的優(yōu)惠券的摳角,當(dāng)然使用背景圖就可以任意變換(設(shè)計(jì)成什么樣就是什么樣)但是存在的問題就是多個(gè)促銷部門運(yùn)營(yíng)部門的個(gè)性化券樣式成本比較高(每一個(gè)樣式都需要設(shè)計(jì)出一張圖)所以我們?cè)贑MS配置優(yōu)惠券模塊添加上拾色器通過下面列出的【解決方案】實(shí)現(xiàn)了腮郊,一次性開發(fā)不僅節(jié)約設(shè)計(jì)成本還滿足多種業(yè)務(wù)運(yùn)營(yíng)需求摹蘑。

image.png
解決方案

【1】通過css元素疊加來實(shí)現(xiàn)摳角(缺點(diǎn):不能透過背景后面的圖片或者背景色)


image.png
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <style>
/*body{
    background-color: red
}*/
 .semi-circle {
    width: 200px;
    height: 400px;
    margin: 200px auto;
    position: relative;
    background: #000000;
    border-radius: 8px;
  }
  .semi-circle:after {
    position: absolute;
    content: "";
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 100%;
    right: 0;
    top: 50%;
    transform: translate(50%, -50%);
  }
  .semi-circle:before {
    position: absolute;
    content: "";
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 100%;
    left: 0;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  </style>
</head>
<body>
 <div class="semi-circle"></div>
</body>
</html>

【2】通過SVG或者字體圖標(biāo)來實(shí)現(xiàn)(缺點(diǎn):比較適合邊元素比如邊緣鋸齒的)


image.png

image.png

這塊的代碼就不寫了

【3】通過css3徑向漸變畫出缺角(圓角扣角)

image.png
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <title></title>

  <style>
body {
    background: linear-gradient(90deg, #fff, #bbb);
}

div {
    position: relative;
    width: 20vw;
    height: 8vw;
    margin: 1vw auto;
    border-radius: 1vmin;
    // background: #e91e63;
    overflow: hidden;
    line-height: 8vw;
    color: #fff;
    text-align: center;
}

.linear {
    background-size: 100% 100%;
    background-image: radial-gradient(circle at 20% 0, transparent 0, transparent 2vw, #03A9F5 2vw);
    background-repeat: no-repeat;
}

.linear2 {
    background-size: 49.9% 50%;
    background-image: radial-gradient(circle at 50% 100%, transparent 0px, transparent 10px, rgb(203, 23, 227) 10px), radial-gradient(circle at 0% 0%, transparent 0px, transparent 0px, rgb(203, 23, 227) 0px), radial-gradient(circle at 50% 0px, transparent 0px, transparent 10px, rgb(203, 23, 227) 10px), radial-gradient(circle at 0% 0%, transparent 0px, transparent 0px, rgb(203, 23, 227) 0px);
    background-repeat: no-repeat;
    background-position: right bottom, left top, right top, left bottom;
}

  </style>
</head>
<body>
<div class="linear">使用徑向漸變實(shí)現(xiàn)內(nèi)切圓角</div>
<div class="linear2">徑向漸變實(shí)現(xiàn)內(nèi)切圓角可以是4邊</div>

</body>
</html>

image.png
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <title>iconfont Demo</title>
  <link rel="shortcut icon"  type="image/x-icon"/>
  <link rel="icon" type="image/svg+xml" />
  <link rel="stylesheet" >
  <link rel="stylesheet" href="demo.css">
  <link rel="stylesheet" href="iconfont.css">

  <style>
body {
    background: linear-gradient(90deg, #fff, #bbb);
}

div {
    position: relative;
    width: 20vw;
    height: 8vw;
    margin: 1vw auto;
    border-radius: 1vmin;
    // background: #e91e63;
    overflow: hidden;
    line-height: 8vw;
    color: #fff;
    text-align: center;
}

.shadow {
    
    &::before {
        position: absolute;
        content: "";
        top: -2vw;
        left: -2vw;
        width: 4vw;
        height: 4vw;
        border-radius: 50%;
        box-shadow: 0 0 0 25vw #e91e63; 
        z-index: -1;
        animation: shadowmove 10s infinite;
    }
}

.shadow2 {
        &::before {
        position: absolute;
        content: "";
        top: -2vw;
        left: -2vw;
        width: 4vw;
        height: 4vw;
        border-radius: 50%;
        box-shadow: 0 0 0 15vw #e91e63; 
        z-index: -1;
    }
    
    &::after {
        position: absolute;
        content: "";
        bottom: -2vw;
        right: -2vw;
        width: 4vw;
        height: 4vw;
        border-radius: 50%;
        box-shadow: 0 0 0 15vw #e91e63; 
        z-index: -1;
    }
}

@keyframes shadowmove {
    0%{
        background: #e91e63; 
        box-shadow: 0 0 0 0 #e91e63; 
    }
    
    10% {
        background: transparent; 
        box-shadow: 0 0 0 0 #e91e63; 
    }
    
    50% {
        background: transparent; 
        box-shadow: 0 0 0 25vw #e91e63; 
    }
}

.linear {
    background-size: 100% 100%;
    background-image: radial-gradient(circle at 0 0, transparent 0, transparent 2vw, #03A9F5 2vw);
    background-repeat: no-repeat;
}

.linear2 {
    background-size: 70% 70%;
    background-image: 
        radial-gradient(circle at 100% 100%, transparent 0, transparent 2vw, #03A9F5 2vw),
        radial-gradient(circle at 0 0, transparent 0, transparent 2vw, #03A9F5 2vw),
        radial-gradient(circle at 100% 0, transparent 0, transparent 2vw, #03A9F5 2vw),
        radial-gradient(circle at 0 100%, transparent 0, transparent 2vw, #03A9F5 2vw);
    background-repeat: no-repeat;
    background-position: right bottom, left top, right top, left bottom;
}

  </style>
</head>
<body>
<div class="shadow">使用陰影的擴(kuò)散半徑實(shí)現(xiàn)內(nèi)切圓角</div>
<div class="shadow2">陰影實(shí)現(xiàn)缺點(diǎn),單個(gè)標(biāo)簽最多是2邊</div>
<div class="linear">使用徑向漸變實(shí)現(xiàn)內(nèi)切圓角</div>
<div class="linear2">徑向漸變實(shí)現(xiàn)內(nèi)切圓角可以是4邊</div>

</body>
</html>

【4】通過radial-gradient配合CSS遮罩mask

image.png

使用以下兩者配合實(shí)現(xiàn)左右邊的鋸齒
CSS radial-gradient徑向漸變函數(shù)
CSS遮罩mask

  background-image: linear-gradient(180deg, #853CEE 0%, #701EE5 100%); 
  //圓角開始的位置0.07rem 0.12rem轧飞,圓角的大小 0.07rem
  -webkit-mask-image: radial-gradient(circle at 0.07rem 0.12rem, #0000 0.07rem, red 0);
  mask-image: radial-gradient(circle at 0.07rem 0.12rem, #0000 0.07rem, red 0);
  //整個(gè)遮罩的偏移量-0.07rem
  -webkit-mask-position: -0.07rem;
  mask-position: -0.07rem;
  //圓角的間距
  -webkit-mask-size: 100% 0.21rem;  
  mask-size: 100% 0.21rem;

【5】通過radial-gradient配合偽類

image.png

image.png

image.png

image.png

源碼博客地址

福利題外話:在線小工具生成異形直角型元素CSS clip-path 生成器

image.png

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末衅鹿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子过咬,更是在濱河造成了極大的恐慌大渤,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掸绞,死亡現(xiàn)場(chǎng)離奇詭異泵三,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)衔掸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門烫幕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敞映,你說我怎么就攤上這事较曼。” “怎么了振愿?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵捷犹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我埃疫,道長(zhǎng)伏恐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任栓霜,我火速辦了婚禮翠桦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己销凑,他們只是感情好丛晌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斗幼,像睡著了一般澎蛛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜕窿,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天谋逻,我揣著相機(jī)與錄音,去河邊找鬼桐经。 笑死毁兆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阴挣。 我是一名探鬼主播气堕,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼畔咧!你這毒婦竟也來了茎芭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤誓沸,失蹤者是張志新(化名)和其女友劉穎梅桩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔽介,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摘投,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年煮寡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虹蓄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡幸撕,死狀恐怖薇组,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坐儿,我是刑警寧澤律胀,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站貌矿,受9級(jí)特大地震影響炭菌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逛漫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一黑低、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦克握、人聲如沸蕾管。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掰曾。三九已至,卻和暖如春停团,著一層夾襖步出監(jiān)牢的瞬間旷坦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工佑稠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塞蹭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓讶坯,卻偏偏與公主長(zhǎng)得像番电,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辆琅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355