带有国家代码下拉列表的移动设备上的 CSS 问题 (intl-tel-input)

Posted

技术标签:

【中文标题】带有国家代码下拉列表的移动设备上的 CSS 问题 (intl-tel-input)【英文标题】:CSS issue on mobile devices with country code dropdown (intl-tel-input) 【发布时间】:2019-12-14 12:40:09 【问题描述】:

我正在使用这个库向用户显示国家代码和标志:https://github.com/jackocnr/intl-tel-input

在桌面上一切正常。即使在屏幕上调整大小,响应也符合预期。当我在移动设备上使用 android Chrome 测试页面时出现问题。

问题来了:

该应用不允许用户选择其他国家(隐藏了滚动空间 - 用户只能看到默认选择的国家)。

我尝试使用z-index:9999,但没有成功。

这是 CSS 实现:

.intl-tel-input .country-list 
    position: absolute;
    z-index: 9999;
    list-style: none;
    text-align: left;
    padding: 0;
    margin: 0 0 0 -1px;
    box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
    background-color: white;
    border: 1px solid #CCC;
    white-space: nowrap;
    max-height: 200px;
    overflow-y: scroll;
 

我不确定为什么这似乎不适用于移动设备。

【问题讨论】:

您是否尝试使用其他浏览器?您可以专门为 select 所在的部分包含您的 html 吗?您的样式告诉我们 .country-list 存在于 .intl-tel-input 中,这不太有意义,因此查看 html 将有助于了解您如何命名 html 元素。 【参考方案1】:

当输入在模式/对话框中时,我遇到了同样的问题。 在移动设备上,下拉菜单将在其末尾的 <body> 中,因为:https://github.com/jackocnr/intl-tel-input/blob/v16.0.8/src/js/intlTelInput.js#L117

有一个设置容器元素的选项,尝试更改dropdownContainer选项。

【讨论】:

【参考方案2】:

这是我在库中也发现的一个错误。当我检查时,我可以看到下拉列表的最大高度已经改变。你可以通过添加这个来覆盖最大高度

.iti-mobile .intl-tel-input .country-list 
    max-height: 200px !important; 

【讨论】:

【参考方案3】:

你可以试试

iti__country-listwhite-space:nowrap

【讨论】:

以上是关于带有国家代码下拉列表的移动设备上的 CSS 问题 (intl-tel-input)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular js 制作搜索类型下拉列表?

带有 Knockout 下拉列表问题的边界半径

Codeigniter 上的动态相关下拉列表国家和州

在移动设备中选择视图,例如下拉菜单,而不是模态[关闭]

国家/地区的 Select2 下拉菜单,带有标志

CSS:触摸屏设备上的悬停行为