欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時間:2019-05-16 15:02:08   作者:佚名   我要評論
對話框小尾巴,估計大家在實際開發(fā)中應(yīng)該經(jīng)常遇到過,省事點的就是叫設(shè)計小姐姐給切個帶小尾巴的背景圖,那不省事的呢?這篇文章主要介紹了CSS對話框小尾巴,需要的朋友可以參考下

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

邊框的魔法

在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);
}

效果如下:

不設(shè)置 triangle 寬高,設(shè)置 border 10像素的透明邊框,然后設(shè)置 top 方向邊框顏色和父元素一致就可完成這樣的效果,同理,變換小尾巴箭頭方向只需要在top,bottom,left,right方向上單獨設(shè)置不同的邊框顏色即可。

這種方式是挺奇妙的,但存在以下幾個問題:

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);
    // ---關(guān)鍵代碼 start---
    clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
    transform: rotate(-45deg);
    // ---end---
    border-radius: 0 0 0 2px;
}

我們可以看到 triangle 繼承了父元素 tooltip 的邊框顏色以及背景色,同時我們還設(shè)置了小尾巴2個像素的圓角。

其中 polygon 多邊形的坐標(biāo)如下:

深綠色塊就是我們要顯示的區(qū)域,然后逆時針翻轉(zhuǎn)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);
  }
}

總結(jié)

以上所述是小編給大家介紹的CSS實現(xiàn)對話框小尾巴功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

最新評論