CSS完成会话框小尾巴作用

2021-01-20 17:57 jianzhan

会话框小尾巴,估算大伙儿在具体开发设计中应当常常遇到过,方便点的便是叫设计方案小姐姐给切个带小尾巴的情况图,那不方便的呢?

边框的魔法

在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: ⑵0px;
    left: calc(50% - 10px);
}

实际效果以下:

不设定 triangle 宽高,设定 border 10像素的全透明边框,随后设定 top 方位边框色调和父元素1致便可进行这样的实际效果,同理,转换小尾巴箭头方位只必须在top,bottom,left,right方位上独立设定不一样的边框色调便可。

这类方法是挺奇特的,但存在下列几个难题:

tooltip

被咬了1口的款式,残缺不全的美~

clip-path

对于以上难题,如今有了1种非常好的方法,便是根据css3新增的clip-path特性来完成

clip-path特性能够建立1个仅有元素的一部分地区能够显示信息的裁切地区,地区内的一部分显示信息,地区外的掩藏

css编码以下:

.triangle {
    display: block;
    height: 20px;
    width: 20px;
    background-color: inherit;
    border: inherit;
    position: absolute;
    bottom: ⑴0px;
    left: calc(50% - 10px);
    // ---重要编码 start---
    clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
    transform: rotate(⑷5deg);
    // ---end---
    border-radius: 0 0 0 2px;
}

大家能够看到 triangle 承继了父元素 tooltip 的边框色调和情况色,另外大家还设定了小尾巴2个像素的圆角。

在其中 polygon 多边形的座标以下:

深翠绿色块便是大家要显示信息的地区,随后逆时针旋转45度就变成大家要想的款式。

多么的好的方法呀!

那访问器适配性怎样呢?我查询了下Caniuse这个网站,除老IE基础其它访问器都适用,因此高兴的用起来吧!

最终出示1个 sass 的mixin,主要参数是左右上下4个方位。

@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(⑴35deg);
  } @else if( $direction == down ) {
    transform: rotate(⑷5deg);
  } @else {
    transform: rotate(135deg);
  }
}

总结

以上所述是网编给大伙儿详细介绍的CSS完成会话框小尾巴作用,期待对大伙儿有一定的协助,假如大伙儿有任何疑惑欢迎给我留言,网编会立即回应大伙儿的!