国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

CSS實現對話框小尾巴功能

2024-07-11 08:42:24
字體:
來源:轉載
供稿:網友

對話框小尾巴,估計大家在實際開發中應該經常遇到過,省事點的就是叫設計小姐姐給切個帶小尾巴的背景圖,那不省事的呢?

邊框的魔法

在css3出來之前,若通過css來實現小尾巴效果,可能使用最多的是通過如下的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

針對以上問題,現在有了一種特別好的方式,就是通過css3新增的clip-path屬性來實現

clip-path屬性可以創建一個只有元素的部分區域可以顯示的剪切區域,區域內的部分顯示,區域外的隱藏

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 多邊形的坐標如下:

深綠色塊就是我們要顯示的區域,然后逆時針翻轉45度就成了我們想要的樣式。

多么好的方式呀!

那瀏覽器兼容性如何呢?我查看了下Caniuse這個網站,除了老IE基本其它瀏覽器都支持,所以開心的用起來吧!

最后提供一個 sass 的mixin,參數是上下左右四個方向。

@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實現對話框小尾巴功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新田县| 乌什县| 和平区| 东方市| 平顶山市| 镇康县| 潜江市| 宿松县| 新余市| 潼南县| 张家川| 乐至县| 台南市| 阿拉善左旗| 雅江县| 长岛县| 柯坪县| 新沂市| 阿坝| 荆州市| 宜兴市| 崇左市| 广平县| 平顶山市| 碌曲县| 突泉县| 扶沟县| 黔西县| 苗栗市| 道真| 潞西市| 宕昌县| 富宁县| 新密市| 延吉市| 桃园市| 潞城市| 吉水县| 彭泽县| 扬州市| 兖州市|