实现空心三角形

背景: 项目过程中有个tab切换需要用到空心三角形的效果。作为一名后端工程师,实在是不知道怎么写,在网上找了一些看了一下别人的实现方式,发现大多数都是实心三角。后来终于发现一个实现空心三角的,顿时热泪盈眶啊。实现效果比较粗略,不过还是思路还是比较清晰的,借鉴了一下,在原有的基础上做了一些改进,增加一些效果

空心三角原理:主要利用元素伪类(:before,:after)实现

效果图: ps:移入换色

实现代码:

<style>
#talkbubble {
width: 120px;
height: 80px;
position: relative;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 1px #808080 solid;
background-color: #fff;
}

#talkbubble:before {
content: " ";
position: absolute;
top: 100%;
left: 50px;
width: 0;
height: 0;
border-left: 15px solid transparent;
border-top: 15px solid #808080;
border-right: 15px solid transparent;
}

.inlayer:after {
content: " ";
position: absolute;
top: 100%;
left: 51px;
width: 0;
height: 0;
border-left: 14px solid transparent;
border-top: 14px solid #fff;
border-right: 14px solid transparent;
}

#talkbubble:hover {
background-color: #ff0000;
}

.inlayer:hover:after {
width: 0;
height: 0;
border-left: 14px solid transparent;
border-top: 14px solid #ff0000;
border-right: 14px solid transparent;
}
</style>

<!-- html -->
<div id="talkbubble" class="inlayer">
空心三角形
</div>

时间: 2024-10-28 20:05:53

实现空心三角形的相关文章

空心三角形

空心三角形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 26851 Accepted Submission(s): 7397 Problem Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效

HDU 2091 空心三角形 --- 水题

/* HDU 2091 空心三角形 --- 水题 */ #include <cstdio> int main() { int kase = 0; char ch; int h, t; //h表示高 while (scanf("%c", &ch) == 1 && ch != '@'){ scanf("%d", &h); if (kase++){ printf("\n"); } getchar(); if

空心三角形(杭电2091)

/*空心三角形 Problem Description 把一个字符三角形掏空.就能节省材料成本.减轻重量,但关键是为了追求还有一种视觉效果.在设计的过程中.须要给出各种花纹的材料和大小尺寸的三角形样板.通过电脑暂时做出来.以便看看效果. Input 每行包括一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹.整数n表示等腰三角形的高.显然其底边长为2n-1. 假设遇到@字符.则表示所做出来的样板三角形已经够了. Output 每一个样板三角形之间应空上一行,三角形的中间为空. 显然

hdoj 2091 空心三角形

空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29368    Accepted Submission(s): 8074 Problem Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,

几道水题(18岁的生日,空心三角形)

18岁的生日: 1 #include<stdio.h> 2 int m[13]={31,28,31,30,31,30,31,31,30,31,30,31}; 3 int nian(int x){ 4 if(x%400==0||(x%4==0&&x%100!=0))return 1; 5 else return 0; 6 } 7 int find(int x,int y,int z){ 8 if(nian(x))m[1]=29; 9 else m[1]=28; 10 int to

杭电2091(空心三角形)

空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29860    Accepted Submission(s): 8230 Problem Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,

空心三角形指示箭头

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>空心三角形指示箭头</title> <style> .box { position: relative; width: 300px; height: 100px; border: 6px solid #555; border-radius: 20

C++ 画星号图形——空心三角形(星号左对齐)(核心代码介绍)

//输出一个由星号组成的三角形(星号左对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n"; cin>>a; for(int i=0;i<a;i++)//控制行数 { for(int j=0;j<=i;j++)//控制每行星号的个数. { if(i==0||i==a-1) { cout<<"* ";//星号后加了一个空格(为使打印出一图形更直观).

C++ 画星号图形——空心三角形(星号居中对齐)(核心代码介绍)

//输出另外一种由星号组成的三角形(星号居中对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n"; cin>>a; for(int i=1;i<a+1;i++)//控制行数 { for(int j=a-i;j>=0;j--) { cout<<" ";//这里是两个空格 } for(int k=0;k<2*i-1;k++)//控制每行星号的个数