CSS3 clip-path剪個三角形

今天這篇博客主要是探究一下CSS3中clip-path用法,也是我學習前端快一個月的小小足跡吧班眯!

本來是想把元素居中這個問題拿來好好說說希停,不過正好遇到就寫寫

怎么遇到這個用法的

需求.png

就是將圖片中的三角形底邊和矩形重疊的這部分去掉。


需求end.png

我當時能想到的辦法就是將我設(shè)置的偽元素背景變成白色署隘,但是這樣會擋住我在文本框里的文字宠能。
完成辦法1.png

這段的CSS如下:
 .container3::before{
    content:"";
    display: block;
    width: 25px;
    height: 25px;
    background:white;
    border-top: 2px solid #ccc; 
    border-left: 2px solid #ccc;
    border-bottom: 2px solid transparent;
    border-right: 2px solid transparent;
    position: absolute;
    top: -14px;
    left: 15px;
    transform: rotatez(45deg);
  }

這時候是完成了樣式,不過如果你想寫文字就會被擋住磁餐,想必也不是我們想要的违崇。我想了個笨辦法,那就是再添加一個標簽诊霹,這里面寫入文字羞延,使標簽疊層在文本框之上。所以再寫一個<span>在文本框之下脾还,作為其子元素伴箩,因為文本框是絕對定位的,所以這個新標簽也絕對定位鄙漏,就解決了文本問題嗤谚。

有沒有更炫酷的辦法呢?

我咨詢了下若愚大大怔蚌,給的建議是CSS3 clip-path呵恢。

什么是clip-path?

clip-path屬性可以創(chuàng)建一個只有元素的部分區(qū)域可以顯示的剪切區(qū)域媚创。區(qū)域內(nèi)的部分顯示渗钉,區(qū)域外的隱藏。剪切區(qū)域是被引用內(nèi)嵌的URL定義的路徑或者外部svg的路徑钞钙,或者作為一個形狀例如circle().鳄橘。clip-path屬性代替了現(xiàn)在已經(jīng)棄用的剪切 clip屬性。

clip的英語是剪切芒炼,path為路徑瘫怜。根據(jù)定義,大致可以知道兩件事:

  1. clip-path作用的區(qū)域是分為可見和不可見兩個部分的本刽;
  2. 這個功能和某種路徑有關(guān)系鲸湃。

實現(xiàn)功能

根據(jù)MDN的介紹,還有其他谷歌博客的介紹子寓,大致找到4種寫法:

.clip-me {
clip-path: inset();
clip-path: circle();
clip-path: ellipse();
clip-path: polygon();
}

其中inset是矩形的剪切暗挑,circle是圓形的剪切,ellipse是橢圓的剪切斜友,polygon是多邊形的剪切炸裆。對于我們想要把偽元素這個矩形剪切成三角形,應(yīng)該使用polygon這個語法鲜屏。

在polygon的()里是我們在平面中定位的點烹看,系統(tǒng)會自動地把這幾個點按照順序連接起來国拇,并剪切。例如我們要剪切的這個例子:


坐標圖.png

紅色區(qū)就是我們要剪切的這部分惯殊,坐標分別是(0,0)酱吝,(25,0),(0土思,25)掉瞳。因為我們沒有設(shè)置初始點,所以默認從左上角為(0,0)浪漠,另外這個和數(shù)學坐標系是不同的
所以代碼如下:

.container3::before{
    content:"";
    display: block;
    width: 25px;
    height: 25px;
    background:white;
    border-top: 2px solid #ccc; 
    border-left: 2px solid #ccc;
    border-bottom: 2px solid transparent;
    border-right: 2px solid transparent;
    position: absolute;
    top: -12px;
    left: 15px;
    transform: rotatez(45deg);
    -webkit-clip-path: polygon(0px 0px, 0px 25px, 25px 0px);
    clip-path: polygon(0px 0px, 0px 25px, 25px 0px); 
  }

-webkit-是因為有些兼容問題,所以有時候必須帶上霎褐。
最后out出來也能實現(xiàn)了效果址愿。

其他

  • 在caniuse.com上查找,發(fā)現(xiàn)兼容性實在很成問題冻璃,ie上全部不支持這個語法响谓,所以在使用場景中需要慎重。

  • inset是矩形剪切省艳,括號里有四個值娘纷,剪切后的上邊框離原圖上邊框的距離,剪切后的右邊框離原圖右邊框的距離跋炕,剪切后的下邊框離原圖下邊框的距離赖晶,剪切后的左邊框離原圖左邊框的距離。


    inset.png
  • circle中默認是從圖形中心為初始點辐烂,后面()里面可以寫像素遏插,也可以寫百分比。像素應(yīng)該是半徑或者直徑的長度纠修,百分比不太確定胳嘲。

  • ellipse是橢圓形的剪切方式,暫時還有需要研究扣草。

  • 同時感謝若愚大大給我介紹這個用法了牛,不然我都不知道。

參考的鏈接:
CSS3 clip-path polygon圖形構(gòu)建與動畫變換二三事
MDN

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辰妙,一起剝皮案震驚了整個濱河市鹰祸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌密浑,老刑警劉巖福荸,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肴掷,居然都是意外死亡敬锐,警方通過查閱死者的電腦和手機背传,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來台夺,“玉大人径玖,你說我怎么就攤上這事〔椋” “怎么了梳星?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滚朵。 經(jīng)常有香客問我冤灾,道長,這世上最難降的妖魔是什么辕近? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任韵吨,我火速辦了婚禮,結(jié)果婚禮上移宅,老公的妹妹穿的比我還像新娘归粉。我一直安慰自己,他們只是感情好漏峰,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布糠悼。 她就那樣靜靜地躺著,像睡著了一般浅乔。 火紅的嫁衣襯著肌膚如雪倔喂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天靖苇,我揣著相機與錄音滴劲,去河邊找鬼。 笑死顾复,一個胖子當著我的面吹牛班挖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芯砸,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼萧芙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了假丧?” 一聲冷哼從身側(cè)響起双揪,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎包帚,沒想到半個月后渔期,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年疯趟,在試婚紗的時候發(fā)現(xiàn)自己被綠了拘哨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡信峻,死狀恐怖倦青,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盹舞,我是刑警寧澤产镐,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站踢步,受9級特大地震影響癣亚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜获印,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一述雾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓬豁,春花似錦、人聲如沸菇肃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琐谤。三九已至蟆技,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斗忌,已是汗流浹背质礼。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留织阳,地道東北人眶蕉。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像唧躲,于是被迫代替她去往敵國和親造挽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

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