業務場景須要一個邊框組件 三角邊框和一個角爲圓弧的組件
- 谷歌了一番 最多的是 四個角爲直角 可是業務需求是三個角爲直角和一個角爲弧形 其他的時候爲四個角直角
- 最終實現:
3.通過N次修改改爲的css
方案思路
- 一開始看網絡上的 發現大部分都是用背景漸變完成的 不行 由於弧形的邊框背景漸變沒法完成.
- 開始使用僞類來解決問題 弧形用圖片解決 不行 由於項目是大屏一旦放到大屏上圖片弧形的就會出現像素模糊再加上切圖困難 放棄
- 沒辦法 只能用 div 解決 弧形就用 border-radius 來解決問題
具體解決
- 只能用div作的話 一會兒變得簡單起來了
- 首先咱們先作一個div邊框做爲爲外層的邊框
- 在作四個做爲角的邊框
- 對着四個角用相對路徑進行定位
- 須要less的calc()方法進行精確計算
- 用props進行傳值
- 用sloit做爲內容插槽
須要參數和參數做用
- arc: border-radius 邊框彎曲弧度 好比你是右下角彎曲就傳值 '0 0 20px 0'
- arcSrc: 共有 topLeft topRight bottomLeft bottomRight 這些參數 好比你是右下角彎曲就傳值 'bottomRight'
- colors: 顧名思義這是邊框顏色 由於 邊框和四個角的顏色不一樣因此就須要連個顏色 好比內邊框爲#2d6c90 四角的邊框顏色爲#153a4f 你應該傳值: ['#2d6c90','#153a4f']
完成
具體代碼能夠點擊個人github地址 由於用的是css-model你們能夠根據具體業務進行修改 難是不難 主要的是思路~~~git
github地址點擊github