启用聊天会改变移动设备上main-outlet的填充

启用聊天后,main-outlet 在移动设备上的填充会像这样改变:

之前

之后

相关的聊天 CSS 在这里:


(填充从 1em 被覆盖为 0)

我明白它仍在开发中,事情可能会发生变化。我认为将聊天页面的填充设置为零是有意义的,但这最终会应用于每个页面。


我注意到的第二件事是,在移动设备上,我的键盘会覆盖我输入的内容(Android/Chrome):

与 Discord 相比,Discord 中的文本框放置在键盘上方

这感觉更像是一个错误,而不是被忽略的事情。如果这是一个特定于我的错误,我可以进一步研究这个问题,看看它是否是另一个主题组件或导致它出现的原因。

请问您的 Android 版本/Chrome 版本是多少?

您确定这是由聊天引起的吗?据我所知,我们没有 chat-mobile.scss 文件。

首先,让我弄清楚我是否以正确的方式安装了聊天功能。
我昨晚重建了我的实例。我没有在我的 app.yml 文件中包含聊天功能——我的理解是,它现在是 discourse 核心自带的一个插件?


该 URL 指向这里:discourse/plugins/chat at main · discourse/discourse · GitHub

我会找出这个 chat-mobile.scss 是从哪里来的。

是的,这现在是一个核心插件

也许我在这里遗漏了什么……但凭我的直觉,我不知道这目前会在插件的哪个位置。我们有一些关于填充的东西,但这应该作用于 .has-full-page-chat,因此不应影响其他页面。

1 个赞

我找到了,似乎是我正在使用的 Discourse Air 主题的问题

我用它配合我自己的 CSS 覆盖,所以我想这在这种情况下是我的“问题”。


我会研究键盘问题,我假设这种行为不是故意的,对吗?

1 个赞

是的,不是故意的 :slight_smile:

我已经找到了问题所在。我有几个组件使用了 below-site-header outlet(例如,一个旋转横幅和一个导航栏)。我猜它们的高度没有被正确计算?

完整截图

这些是我自己编写的自定义组件,所以这可能是另一个“我的”问题,但也有可能是 below-site-header 中的任何内容都可能存在问题,在这种情况下,它就变成了“我们”的问题 :slight_smile:

1 个赞

那将如何运作呢?您将只剩下 50px 的高度来显示聊天。

我认为主要问题是,当您触摸聊天文本框时,屏幕会跳转到页面的最顶部,并且 below-site-header 中的内容会变得可见。

视频示例

我认为,如果页面跳转到聊天 div 的底部正好位于键盘上方的位置,会更有意义。或者让文本框 div 粘在页面底部(以及键盘顶部),这样它就可以一直可见并覆盖所有内容。

无论理想的解决方案是什么,文本框都应该是屏幕上可见内容的首要事项,即使只有 50 像素的空间可用。