border特性--构造不同的三角形

  • border误区,误以为border是矩形边框,实际border为三角形边框,通常我们设置的边框border-width太小,所以不易观察border形状。当border-width足够大时,会发现border是三角形边框。

html代码

 <div class="border"></div>
 

css代码

  /* border是由三角形组成,并非矩形边 */
        .border{
            width: 50px;
            height: 50px;
            background-color: black;
            border-style: solid;
            border-width: 100px;
            border-top-color: red;
            border-right-color: blue;
            border-bottom-color: green;
            border-left-color: gray;
        }

在这里插入图片描述

  • 故当div元素宽度和高度为0时会变成由四个三角形组成的形状,其中高为border-top+border-bottom的和,宽为border-left和border-right的和。

html代码

   <div class="triangle"></div>
 

css代码

  .triangle{
            width: 0px;
            height: 0px;
            border-style: solid;
            border-width: 100px;
            border-top-color: red;
            border-right-color: blue;
            border-bottom-color: green;
            border-left-color: gray;
        }

在这里插入图片描述

  • 由此特性可以形成多样的三角形。当设置border-top为0时,就没有了水平中心线以上的border,只有水平中心线以下的半个矩形,当设置border-left和border-right颜色为透明时便只有剩下一个三角形。

html代码

  <div class="one-triangle"></div>

css代码

  /* 三角形 */
        .one-triangle{
            width: 0px;
            height: 0px;
            border-style: solid;
            border-width: 0px 100px 100px;
            border-color: white white red;
        }

在这里插入图片描述

  • 基于上诉理论,可形成不同的三角形样式;左直角三角形,由直角三角形等。

html代码

<div class="left-angle"></div>
    <div class="right-angle"></div>
    <div class="right-angle1"></div>

css代码

    /* 左直角三角形*/
        .left-angle{
            width: 0px;
            height: 0px;
            border-style: solid;
            border-width:100px;
            border-color:transparent transparent yellow yellow;
        }

        /* 下左*/
        .right-angle{
            width: 0px;
            height: 0px;
            border-style: solid;
            border-width:100px 0px 0px 100px;
            border-color: red transparent transparent blue ;
        }
        /* 上左 */
        .right-angle1{
            width: 0px;
            height: 0px;
            border-style: solid;
            border-color: green red;
            border-width: 100px 100px 0px 0px;
        }

在这里插入图片描述

  • 最后一个实操题,综合利用css属性以及border的特性形成一个自定义带三角形的视图。元素通过border生成三角形,同时此利用伪元素的方式生成另一个三角形,子三角形覆盖父三角形,在进行定位的方式,产生一个具有边框的三角形。父元素同需要定位的元素进行定位实现效果即可。

html代码

 <div class="dialog">
        <span class="dialog-triangle"></span>
        <div>I am custom dialog</div>
    </div>

css代码

        /* 三角形用伪元素实现边框和对话框*/
        .dialog{
            width: 100px;
            height: 100px;
            border: 1px solid #333;
            position: relative;
            background-color: green;
            color: white;
            font-size: 15px;
            text-align: center;

        }
        .dialog span.dialog-triangle{
            display: block;
            width: 0px;
            height: 0px;
            border-style: solid;
            border-width: 0px 10px 10px 10px;
            border-color: transparent transparent #333 ;
            position: absolute;
            top: -10px;
            left: 50%;
            margin-left: -10px;
        }
        .dialog span.dialog-triangle::after{
            display: block;
            content: "";
            border-style: solid;
            border-width: 0px 10px 10px;
            border-color: transparent transparent green;
            position: absolute;
            top: 1px;
            left:-10px;
        }
        /* 设置文本垂直水平居中 */
        .dialog div{
            height: 70px;
            width: 70px;
            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -35px;
            margin-top: -35px;
        }

在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值