css偽元素before/after和畫三角形的搭配應用


想要實現的效果如下:

第一步:如何用css畫出三角形?

 1 /* css畫三角形 */
 2 .sanjiao{
 3     width:0;
 4     border-top:40px solid red;
 5     border-bottom:40px solid green;
 6     border-left:40px solid blue;
 7     border-right:40px solid yellow;
 8 }
 9 
10 <div class="sanjiao">
11 </div>

如下顯示

 

要顯示一個三角形,那么去掉其他三個三角形即可。

如果刪掉其他三條邊,那剩下的一條邊也不會顯示,最好是讓其他三條邊顯示透明。

/* css畫三角形 */
.sanjiao{
    width:0;
    border-width:40px;
    border-style:solid;
    border-color:red transparent transparent transparent; /* transparent 設置邊框顏色透明 */
}

<div class="sanjiao">
</div>

如下顯示

第二步:如何讓三角形緊貼在元素上?

可以定義一個標簽,如上畫出三角形;也可以用before和after偽元素畫出三角形。

 

利用position定位使得三角形緊貼在元素上的指定位置。

 

完整代碼如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.wrap{
    margin-top:30px;
    text-align:center;
}
.jiantou{
    display:inline-block;
    padding:10px;
    background:#2E963D;
    color:#FFF;
    border-radius:8px;
    
    position:relative;
}

/* 下箭頭 */
.jiantou:after{
    display:block;
    content:'';
    border-width:8px 8px 8px 8px;
    border-style:solid;
    border-color:#ff4d4d transparent transparent transparent;
    
    /* 定位 */
    position:absolute;
    left:40%;
    top:100%;
}
/* 上箭頭 */
.jiantou:before{
    display:block;
    content:'';
    border-width:8px 8px 8px 8px;
    border-style:solid;
    border-color:transparent transparent #ff4d4d transparent;
    
    /* 定位 */
    position:absolute;
    left:40%;
    top:-16px;
}
</style>
</head>

<body>
<div class="wrap">
    <span class="jiantou">LIUCHUAN</span>
</div>
</body>
</html>

如第一幅圖片

 

小結:QQ上的聊天窗口中說完話之后,就會有個文字泡,這個文字泡有這個箭頭指向頭像。如下:

 

用這種方法可以實現如上文字泡效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM