css 怎么做一个简单的聊天气泡?
左边这块绿色的气泡,那个三角形应该怎么实现?如果实现了,怎么改变三角形的位置,例如放气泡上面,下面,左边或右边?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<style>
.p {
padding: 5rem;
}
.box {
display: inline-block;
background-color: #57e412;
padding: 10px 20px;
border-radius: 10px;
}
</style>
<div class="p">
<div class="box">这是一段测试文字</div>
</div>
</body>
</html>
回复
1个回答
test
2024-06-19
就是提前预设好4个位置咯,然后按照各种选择器去匹配就好了,比如说我用 属性选择器 的一个实现(默认就是居右)。
<div>这里是文字内容</div>
<div position="left">这里是文字内容</div>
<div position="top">这里是文字内容</div>
<div position="bottom">这里是文字内容</div>
<div position="right">这里是文字内容</div>
div {
min-width: 100px;
min-height: 30px;
line-height: 30px;
background: #93ec69;
padding: 0 10px;
border-radius: 4px;
margin: 10px;
display: inline-block;
position: relative;
}
div:before {
content: '';
width: 8px;
height: 8px;
background: #93ec69;
display: block;
position: absolute;
right: 0;
top: 50%;
transform: translate(50%, -50%) rotate(45deg);
}
div[position="top"]:before {
top: 0;
left: 50%;
transform: translate(-50%, -50%) rotate(45deg);
}
div[position="bottom"]:before {
top: 100%;
left: 50%;
transform: translate(-50%, -50%) rotate(45deg);
}
div[position="right"]:before {
right: 0;
top: 50%;
transform: translate(50%, -50%) rotate(45deg);
}
div[position="left"]:before {
top: 50%;
left: 0;
transform: translate(-50%, -50%) rotate(45deg);
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容