CSS實現(xiàn)對話框小尾巴功能

對話框小尾巴,估計大家在實際開發(fā)中應該經(jīng)常遇到過,省事點的就是叫設計小姐姐給切個帶小尾巴的背景圖,那不省事的呢?
邊框的魔法
在css3出來之前,若通過css來實現(xiàn)小尾巴效果,可能使用最多的是通過如下的hack方式:
<div class="tooltip">
<p>我是快樂的小尾巴的爸爸</p>
<span class="triangle"></span>
</div>
.tooltip {
position: relative;
background-color: silver;
width: 200px;
height: 50px;
border-radius: 0.25em;
display: flex;
justify-content: center;
align-items: center;
border:1px solid red;
}
.triangle {
display: block;
height: 0px;
width: 0px;
border: 10px solid transparent;
border-top-color: silver;
background:red;
position: absolute;
bottom: -20px;
left: calc(50% - 10px);
}
效果如下:

不設置 triangle 寬高,設置 border 10像素的透明邊框,然后設置 top 方向邊框顏色和父元素一致就可完成這樣的效果,同理,變換小尾巴箭頭方向只需要在top,bottom,left,right方向上單獨設置不同的邊框顏色即可。
這種方式是挺奇妙的,但存在以下幾個問題:
tooltip

被咬了一口的樣式,殘缺的美~
clip-path
針對以上問題,現(xiàn)在有了一種特別好的方式,就是通過css3新增的clip-path屬性來實現(xiàn)
clip-path屬性可以創(chuàng)建一個只有元素的部分區(qū)域可以顯示的剪切區(qū)域,區(qū)域內(nèi)的部分顯示,區(qū)域外的隱藏
css代碼如下:
.triangle {
display: block;
height: 20px;
width: 20px;
background-color: inherit;
border: inherit;
position: absolute;
bottom: -10px;
left: calc(50% - 10px);
// ---關鍵代碼 start---
clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
transform: rotate(-45deg);
// ---end---
border-radius: 0 0 0 2px;
}
我們可以看到 triangle 繼承了父元素 tooltip 的邊框顏色以及背景色,同時我們還設置了小尾巴2個像素的圓角。

其中 polygon 多邊形的坐標如下:

深綠色塊就是我們要顯示的區(qū)域,然后逆時針翻轉45度就成了我們想要的樣式。
多么好的方式呀!
那瀏覽器兼容性如何呢?我查看了下Caniuse這個網(wǎng)站,除了老IE基本其它瀏覽器都支持,所以開心的用起來吧!

最后提供一個 sass 的mixin,參數(shù)是上下左右四個方向。
@mixin triangleMixin ($direction) {
background-color: inherit;
border: inherit;
clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
@if( $direction == left ) {
transform: rotate(45deg);
} @else if( $direction == right ) {
transform: rotate(-135deg);
} @else if( $direction == down ) {
transform: rotate(-45deg);
} @else {
transform: rotate(135deg);
}
}
總結
以上所述是小編給大家介紹的CSS實現(xiàn)對話框小尾巴功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關文章

CSS3軟件卸載對話框代碼 根據(jù)是否卸載出現(xiàn)不同表情
這是一個對話框插件,它主要用來卸載軟件時的提示,特點在于,當用戶選擇保留和卸載后,對話框中間的表情會根據(jù)用戶選擇發(fā)生動態(tài)變化,非常可愛。需要的朋友前來下載2019-07-29
這篇文章主要介紹了純CSS實現(xiàn)氣泡對話框尖角處理的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-06-26- 泡沫對話框是一種比較流行的趨勢因為它改變了傳統(tǒng),通常情況下都是使用html和javascript或者是圖片來實現(xiàn),接下來為大家介紹下使用css3配合html來實現(xiàn)一些簡單的泡沫對話框2013-03-21
- 利用CSS的border屬性可以生成一些圖形,例如三角或是圓角。純粹的CSS2的內(nèi)容,沒有兼容性的問題,我之前在純CSS實現(xiàn)各類氣球泡泡對話框效果一文中算是比較詳細的講述了CSS2010-12-27

css 實現(xiàn)小尖角聊天對話框帶尖角的說話泡泡效果
這篇文章主要介紹了css 實現(xiàn)小尖角聊天對話框帶尖角的說話泡泡效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下2020-04-10




