【CSS】三角形實(shí)現(xiàn)的方式

只要前端入了門的小伙伴們想必大家一定見過這種組件:


element UI的 timepicke r組件

上面畫圈圈的部分有個(gè)三角形间景,一般這種popup或者tooltip都會(huì)存在這么一個(gè)小三角形瑞佩,下面來介紹兩種實(shí)現(xiàn)方式

方案一:border

這種三角形常見的方式是通過 border屬性來實(shí)現(xiàn)。由于border有上下左右四個(gè)邊亏拉,像上圖我們可以:

.arrow{
    height: 0px;
    width: 0px;
    border: 10px solid transparent;
    border-bottom-color: #fff;
}
填充個(gè)#000的背景色宵蛀,等腰三角形

根據(jù)各個(gè)邊框?qū)挾鹊牟煌梢詫?shí)現(xiàn)不同的三角形组力,

.arrow{
    height: 0px;
    width: 0px;
    border: 10px solid transparent;
    border-bottom-color: #fff;
    border-width:0px 10px 15px 10px
}
假裝自己是個(gè)全等三角形
.arrow{
  ....
  border-width: 0px 10px 10px 0px
  ...
}
直角三角形

并且一般我們寫這種沒有業(yè)務(wù)含義的裝飾時(shí)推薦使用:after柏卤、:before 偽類來實(shí)現(xiàn)冬三,使dom保持整潔。

.arrow:after{
    content: " ";
    border: 10px solid transparent;
    border-bottom-color: #fff;
    border-width: 0px 10px 15px 10px;
}

方案二:clip-path

當(dāng)然除了使用border來實(shí)現(xiàn)缘缚,我們也可以使用clip-path來實(shí)現(xiàn)勾笆;

簡單介紹:

clip-path屬性使用裁剪方式創(chuàng)建元素的可顯示區(qū)域。區(qū)域內(nèi)的部分顯示桥滨,區(qū)域外的隱藏窝爪。戳我了解

我們可以:

  clip-path: polygon(50% 0px, 100% 50% , 0px 50%)
如圖弛车,三角形對(duì)圖片進(jìn)行了遮擋

上面polygon中的參數(shù)是各個(gè)點(diǎn)的坐標(biāo)(x軸坐標(biāo),y軸坐標(biāo))蒲每,

image.png

以元素的Content+Padding的寬高作為百分比的基準(zhǔn)纷跛,左上角作為坐標(biāo)原點(diǎn)按點(diǎn)連線,圖形出現(xiàn)在第四象限里邀杏;

當(dāng)然我們不止可以用它來畫三角形贫奠,其他任何的圖形都可以拿它來實(shí)現(xiàn)。不知道大家用沒用過ps淮阐,這個(gè)屬性和ps中的‘鋼筆’工具很相似叮阅。


clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%)
clip-path: polygon(0% 0%, 0% 100%, 25% 100%, 25% 25%, 75% 25%, 75% 75%, 25% 75%, 25% 100%, 100% 100%, 100% 0%);

我們也可以通過使用path刁品,將svg路徑傳入:

clip-path: path('M 0 200 L 0,75 A 5,5 0,0,1 150,75 L 200 200 z');
使用svg路徑

總結(jié)

綜上所述泣特,感覺這個(gè)clip-path功能很強(qiáng)大,能繪制出很多不同的形狀挑随。
但是但是但是W茨!兜挨!
border屬性兼容性極好基本不存在問題膏孟;clip-path屬性兼容性就差很多,如果是內(nèi)部使用的B端項(xiàng)目還是很推薦的拌汇。還有其他常見的實(shí)現(xiàn)方式評(píng)論區(qū)見~~
另附上caniuse:

border
clip-path
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柒桑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子噪舀,更是在濱河造成了極大的恐慌魁淳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件与倡,死亡現(xiàn)場離奇詭異界逛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纺座,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門息拜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人净响,你說我怎么就攤上這事少欺。” “怎么了馋贤?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵赞别,是天一觀的道長。 經(jīng)常有香客問我掸掸,道長氯庆,這世上最難降的妖魔是什么蹭秋? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮堤撵,結(jié)果婚禮上仁讨,老公的妹妹穿的比我還像新娘。我一直安慰自己实昨,他們只是感情好洞豁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荒给,像睡著了一般丈挟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上志电,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天曙咽,我揣著相機(jī)與錄音,去河邊找鬼挑辆。 笑死例朱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鱼蝉。 我是一名探鬼主播洒嗤,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼魁亦!你這毒婦竟也來了渔隶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤洁奈,失蹤者是張志新(化名)和其女友劉穎间唉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睬魂,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡终吼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氯哮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片际跪。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喉钢,靈堂內(nèi)的尸體忽然破棺而出姆打,到底是詐尸還是另有隱情,我是刑警寧澤肠虽,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布幔戏,位于F島的核電站,受9級(jí)特大地震影響税课,放射性物質(zhì)發(fā)生泄漏闲延。R本人自食惡果不足惜痊剖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垒玲。 院中可真熱鬧陆馁,春花似錦、人聲如沸合愈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佛析。三九已至益老,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寸莫,已是汗流浹背捺萌。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留储狭,地道東北人互婿。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像辽狈,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呛牲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容