我使用 PhoneGap 为 Android 开发了一个移动应用程序。我还为浏览器发布了它。
在我的手机上,当我在 Chrome 中查看应用程序时,我得到以下选择菜单样式:
但是,当我打开使用 PhoneGap 打包的应用程序时,我得到了这个:
对于完全相同的代码。
如何在 Android 设备上设置选择菜单的样式,使其看起来像在 Chrome 中一样?
我尝试使用--webkit-appearance,但我不确定如何准确使用它......
我在 Android 的 Phonegap 应用程序中的对话框也有类似的问题。cordova android 应用程序中的默认主题是:
android:theme="@android:style/Theme.Black.NoTitleBar"
AndroidManifest.xml
在您的主要活动中查看您的,。如果是这种情况,请将其更改为
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
Chrome 似乎根据您的屏幕截图(或类似内容)使用此主题。
每个移动平台都有自己的设计原则,旨在牢记最佳用户的兴趣。对于 iOS,它甚至可能意味着您的应用程序将被拒绝。
即使是不同的 android 版本也往往具有不同的 ui 原则,例如在您的图片中,第一个显示来自原始 android 的选择菜单,最后一个显示来自 samsungs android 的选择菜单。
因此,您不能使用 css 设置选择菜单的样式。但是,您可以编写一个 phonegap 插件来为您提供自定义选择菜单。
另一种选择是构建一个没有 html 选择但只有 javascript 的选择菜单。但我不建议这样做。
没有办法只使用 css 来设置样式。这不是一个 html 组件,它不是 DOM 的一部分。您看到的两个选择器都是通过本机方法添加到浏览器顶部的。
本质上,如果要更改选择的默认行为,则必须构建自己的选择对话框并在用户单击选择时触发它。
检查这个类似的问题。
每个浏览器都以特定的方式显示元素。您应该使用 -webkit-appearence 尝试将选择重置为其默认外观:
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}