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

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

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

大家有什么建议嘛……

8387 次点击
所在节点    CSS
43 条回复
geelaw
2017-05-24 08:23:36 +08:00
@islujw 喵,我的方法不需要用 border,我用 before 和 after 创造两个圆角矩形剪切得到的小尾巴。
islujw
2017-05-24 09:06:38 +08:00
@geelaw 嗯,明白~竟然还为气泡间的时间间距测量了精确的像素(。ì _ í。)
lxy42
2017-05-24 09:57:35 +08:00
学习了
joyqi
2017-05-24 11:00:04 +08:00
其实如果你不想用弧度的话,完全可以用 before 和 after 的伪类画一个出来,不需要图片

比如这样
https://jigu.im/hello
geelaw
2017-05-24 11:34:12 +08:00
@islujw 大小是胡写的,看起来像而已。
ffkjjj
2017-05-24 14:41:10 +08:00
@Tonni 请问 CSS 代码中 :before 前面的 & 有什么作用?
Tonni
2017-05-24 15:09:53 +08:00
islujw
2017-05-24 17:20:09 +08:00
@Tonni 基于那份代码,渐变效果已在 Mac Safari 上成功实现。但 iOS Safari 不支持 background-attachment: fixed; 特性,导致渐变色被固定在每个元素,不能根据位置而变化,这个还有解决的希望嘛……
islujw
2017-05-24 17:20:23 +08:00
@geelaw iOS Safari 不支持 background-attachment: fixed; 特性……
geelaw
2017-05-24 17:38:31 +08:00
@islujw 啊那你可以选择在 iOS Safari 上不使用渐变,还可以 fallback 到纯色
islujw
2017-05-24 23:53:01 +08:00
@geelaw Hmm …没有什么曲线救国的办法的话,嗯……似乎也只能这样了。不知道 Android 是否支持。
ffkjjj
2017-05-26 08:21:41 +08:00
@Tonni 了解了,非常感谢
islujw
2017-05-26 15:38:05 +08:00
@geelaw 怎么让 iOS 和 macOS 的 Safari 区别用色呢?没成功诶,iOS 上总是以预先分布好的渐变示人……
geelaw
2017-05-26 19:53:57 +08:00
@islujw 被你坑了。iOS 10 的 Safari 命名可以得到正确的效果。如下三张图是从顶部滚到底部的结果(增加了很多条信息、改变了渐变色便于观察)





islujw
2017-05-27 02:00:32 +08:00
@geelaw 「 iOS 10 的 Safari 命名」是什么意思?
geelaw
2017-05-27 02:14:34 +08:00
@islujw *明明
islujw
2017-05-28 02:11:35 +08:00
@geelaw 1. 你是如何在手机上滚动这块页面的?我增加了对话、改变了颜色后,整个网页被撑高了,滑动是滑动整个网页,而非仅限于这个区块内。2. 我在自己网页上实现后,的确无法实现。3. 能搜出大量关于 iOS Safari 不支持此特性的讨论。你截图中的是 iOS Safari 实现的还是那个网站给的运行环境实现的呢?
geelaw
2017-05-28 02:21:38 +08:00
@islujw 放进一个 div 里面,那个 div 设置高度和滚动条。
islujw
2017-05-28 15:45:56 +08:00
@geelaw 经过测试,在 JSFiddle 和自己的网页上,为区块设置固定高度和滚动条 {max-height: 300px; overflow: scroll; } 可以让 iOS Safari 将背景固定住,达到效果。但从浏览体验出发,不可以这么设定。然而,在页面自然滚动状态下,就无法达成效果了。为了弄清楚背景图究竟是如何定位的,将颜色替换为图片,发现是以整个页面长度(而非屏幕高度,亦非第一个和最后一个气泡的高度差)为填充高度。
geelaw
2017-05-28 22:34:18 +08:00
@islujw 那你可以把整个页面套进一个 div 里面,让这个 div 具有 100vh、100vw 和滚动条,并禁止 body、html 之滚动条

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

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

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

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

© 2021 V2EX