三角的做法

css三角的做法

平常,我们在做下拉框的时候可以适当地给下拉框一个小三角,这样可以使用户体验更好。

那么我们改如何制作这个效果呢?直接上代码

<div class="box1"></div>
 
 <style>
    .box1{
      width: 0;
      height: 0;
      border-top:10px solid pink;
      border-bottom:  10px solid red;
      border-left: 10px solid blue;
      border-right:10px solid  gold;
    }
  </style>

只要我们给一个盒子设定宽高皆为0,边框设定一个大小,那么我们就会得到一个这样的效果:

由此得到启发,我们只想要一个三角形,那么又可以如此:

<div class="box2"></div>

<style>
.box2{
    left: 100px;
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-top-color: teal;
}
</style>

我们给其中的一个border添加颜色,其余的三个方向都是透明的。

应用

首先,我们先定义一个盒子,然后里面放一个span盒子。

  <div class="box3">
    <span></span>
  </div>
  
<style>
  .box3{
      position: relative;
      width: 60px;
      height: 60px;
      background: royalblue;
    }
    .box3 span{
      position: absolute;
      width: 0;
      height: 0;
      line-height: 0;
      font-size: 0;
      border:6px solid transparent;
      border-bottom-color: red;
    }  
</style>    

很明显,这不是我们想要的样子,这时候我们只需要调整一下位置即可。

<style>
    .box3{
      position: relative;
      width: 60px;
      height: 60px;
      background: royalblue;
    }
    .box3 span{
      position: absolute;
      right: 27px;
      top: -12px;      
      width: 0;
      height: 0;
      line-height: 0;
      font-size: 0;
      border:6px solid transparent;
      border-bottom-color: red;
    }
</style>

这个位置是怎么计算出来的呢?

首先,我们采用子绝父相定位模式,然后我们设定了一个span盒子。其位置是top=0,盒子上下的border分别都是6px,那么我们给他设定一个top=-12px ,他不就上来了么!

posted on 2021-04-22 22:14  浩瀚星辰一粒沙  阅读(132)  评论(0)    收藏  举报