亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

邊框的魔法

在css3出來(lái)之前,若通過(guò)css來(lái)實(shí)現(xiàn)小尾巴效果,可能使用最多的是通過(guò)如下的hack方式:

<div class="tooltip">
    <p>我是快樂(lè)的小尾巴的爸爸</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方向上單獨(dú)設(shè)置不同的邊框顏色即可。

這種方式是挺奇妙的,但存在以下幾個(gè)問(wèn)題:

tooltip

被咬了一口的樣式,殘缺的美~

clip-path

針對(duì)以上問(wèn)題,現(xiàn)在有了一種特別好的方式,就是通過(guò)css3新增的clip-path屬性來(lái)實(shí)現(xiàn)

clip-path屬性可以創(chuàng)建一個(gè)只有元素的部分區(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í)我們還設(shè)置了小尾巴2個(gè)像素的圓角。

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

深綠色塊就是我們要顯示的區(qū)域,然后逆時(shí)針?lè)D(zhuǎn)45度就成了我們想要的樣式。

多么好的方式呀!

那瀏覽器兼容性如何呢?我查看了下Caniuse這個(gè)網(wǎng)站,除了老IE基本其它瀏覽器都支持,所以開(kāi)心的用起來(lái)吧!

最后提供一個(gè) sass 的mixin,參數(shù)是上下左右四個(gè)方向。

@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實(shí)現(xiàn)對(duì)話框小尾巴功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

最新評(píng)論