CSS 怎么写出对话气泡的小尖角?像 iMessage 那样的气泡尖角。

2017-05-23 20:45:03 +08:00
 islujw

用 CSS 写对话气泡,其中小尖角希望和 iMessage 一样,然而似乎有些困难,网上也都是微信那种尖角。

大家有什么建议嘛……

8387 次点击
所在节点    CSS
43 条回复
mringg
2017-05-23 20:58:02 +08:00
adspe
2017-05-23 21:12:22 +08:00
和 CSS tooltip 一个思路
Bardon
2017-05-23 21:20:17 +08:00
伪类是一个思路
bojackhorseman
2017-05-23 21:34:43 +08:00
伪元素:before,:after 写个三角形然后位置调调调😂
islujw
2017-05-23 21:48:15 +08:00
@bojackhorseman 那个三角形是镰刀状的……不知道怎么写 $_$
islujw
2017-05-23 21:51:04 +08:00
@mringg 谢谢!问题是 iMessage 气泡的尖角是不规则的镰刀状,这个比较难搞……
gongpeione
2017-05-23 21:51:46 +08:00
上个图看看是什么样的
learnshare
2017-05-23 21:51:49 +08:00
geelaw
2017-05-23 21:52:24 +08:00
贴图呗,伪元素 content 可以是图
islujw
2017-05-23 22:12:12 +08:00
islujw
2017-05-23 22:15:55 +08:00
@geelaw 这样,那也可以是 svg 吧?
Tonni
2017-05-23 22:59:18 +08:00
aleen42
2017-05-24 01:12:15 +08:00
用 border 這個三角形出來
islujw
2017-05-24 03:06:54 +08:00
@Tonni 非常感谢,已经成功!只是有一个细节希望能继续完善:iMessage 的蓝色是全屏范围渐变的,我将颜色定义为:
background-image: linear-gradient(to bottom, #5ac8fa, #0b93f6);
background-attachment:fixed;
达成效果。
但小尾巴是 border 拼出来的,border 怎样才能支持类似「 background-attachment:fixed;」的设定,让渐变在全屏幕范围,而不是仅仅是单个内?
islujw
2017-05-24 03:08:16 +08:00
@aleen42 嗯,做到了。但 border 的渐变填充能否达成类似 background-attachment:fixed; 的效果?也就是在全屏幕范围内的渐变,而不局限在单个元素内。要和气泡本身保持一致。
islujw
2017-05-24 03:27:43 +08:00
@Tonni 如果能将 border 和主体部分连接到一起应该是最好的,因为如果消息是图片,整个部分都被图片填充,包括小尾巴。
geelaw
2017-05-24 04:36:05 +08:00
假设你的画布不是透明,那么没问题。

https://jsfiddle.net/ghLhf10m/
geelaw
2017-05-24 04:39:35 +08:00
上个图,感觉自己棒棒哒

islujw
2017-05-24 08:12:26 +08:00
@geelaw 谢谢 Gee Law 热情创作 ^ ^ 搞定了~ 蓝色小尾巴 border 定义颜色为 transparent 即可让 background-image 可见~开心!
islujw
2017-05-24 08:13:11 +08:00
@Tonni 感谢,已搞定。蓝色小尾巴 border 定义颜色为 transparent 即可让 background-image 渐变可见。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX