添加優惠券類目,展現用戶的優惠券css
常見的設計樣式以下圖,核心爲半圓segmentfault
優惠券的特色是帶有反向圓角,爲了展現效果更好,適配多種場景,不推薦使用背景圖片形式,建議使用css
.bash
網上有幾種方案:佈局
一種是boder+clip
的形式,裁剪出4個小半圓角,拼湊在一塊兒spa
一種是radial-gradient
徑向漸變,相對上一種須要考慮其兼容性設計
一種是使用背景圖片,特色是加載稍慢,體驗比css
差,兼容性好code
具體的代碼這裏就不一一演示了cdn
參考其餘網上內容:segmentfault.com/a/119000001…blog
有一點要說明的是:圖片
必定要注意細節,就像考慮到兼容性和帶寬以及加載時長同樣,咱們也要爲之後可能的變更留有空間.
前兩種方案的特色是左右的容器都有背景色,且半圓的邊框色是有背景色截取而得到的.
當咱們須要指定半圓的邊框和其餘邊框顏色同時變換不一樣背景色的時候呢?
參考下圖:
邊框色和背景色能夠是不一致的,而且整個邊框顏色能夠保持一致,而這些,上述兩種方法不管是border
仍是gradient
顯然不行.
優惠券的樣式是兩部分拼接在一塊兒,同時帶有半圓樣式
那麼咱們的思路能夠是:
直接使用css
建立一個嵌有半圓的邊框不太現實,可是咱們能夠經過其餘方法達到視覺上的實現.
中間須要一些空間思惟和想象能力,過程可能複雜些,可是能實現目的就行,另闢蹊徑的效果更好.
容器控制卡券的寬高和佈局上位置,不帶有其餘樣式
添加兩個容器,一個放左邊,一個放右邊,割分總容器空間
左邊容器單獨設置左上和左下兩個圓角,右邊容器單獨設置右上和右下兩個圓角
左右容器各自設置自定義背景色
添加兩個半圓,背景色爲白色,邊框待定
相對總容器絕對定位,一個放頂部,一個放底部
偏移量自定義,保持一致便可
到這一步就完成了最初的樣式,接下來到了設置邊框的時間
給左右卡券容器和兩個半圓添加邊框便可,不影響背景色
核心是製做半圓(只有輪廓)
<div class="circle"></div>
// 上半圓
.circle{
width: 200px;
height: 100px; /* 寬度的一半 */
border-radius:100px 100px 0 0; /* 上和右爲高度的長度 */
background-color: #fff;
border: 1px solid gray;
border-bottom: none;
}
// 下半圓
.circle{
width: 200px;
height: 100px; /* 寬度的一半 */
border-radius: 0 0 100px 100px; /* 上和右爲高度的長度 */
background-color: #fff;
border: 1px solid gray;
border-bottom: none;
}
複製代碼