我理解-webkit-appearance属性背后的基本思想,以及它如何将平台本机样式应用于元素。但我不明白这些平台本地样式是如何定义的。我认为它们可能在用户代理样式表中,但是没有任何样式可以使移动Safari中的<input type="date" />看起来像这样:

您可以在这里查看Safari的用户代理样式表,它不包括(据我所知)使用日期呈现类型进行输入的样式,如上面的图像。
似乎大多数样式都是通过用户代理样式表中的一个CSS属性完成的,即:
-webkit-appearance: menulist-button;这将极大地改变移动Safari上输入的可视化输出,使其与示例图像类似。
这些样式(如果不是来自用户代理样式表)从何而来?
发布于 2019-10-05 05:58:48
在对Webkit源代码进行了大量的调查和挖掘之后,我找到了答案。
在基于Webkit的浏览器中,具有appearance CSS属性的元素--不--从浏览器的用户代理样式表接收它们的平台--原生样式。这些样式在renderTheme文件中的UA样式表之外定义,该文件是Webkit引擎内部的一部分。
例如,您可以在这里定义我最初的问题中所要求的样式:https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/rendering/RenderThemeIOS.mm#L623
为了彻底解决这些问题:在mobile中,<input type="date" />从Safari的用户代理样式表接收-webkit-appearance: menulist-button。-webkit-appearance: menulist-button应用的附加样式(不是用户代理样式表Webkit文件。中的)
https://stackoverflow.com/questions/58231309
复制相似问题