如何调整Materialize CSS中select下拉选项的位置?
修复方案
- 首先删除你代码中默认选中option上的
style="margin-top: 43px"属性,这个额外的边距会干扰组件默认的位置计算逻辑,是引发覆盖问题的常见诱因。 - 新增自定义CSS样式强制指定下拉框的位置:
.dropdown-content.select-dropdown { top: 100% !important; transform: translateY(0) !important; margin-top: 4px !important; /* 可自行调整输入框和下拉框的间距 */ }
- 确认select组件的初始化时机正确,必须在DOM完全加载完成后执行初始化:
document.addEventListener('DOMContentLoaded', function() { const selectElements = document.querySelectorAll('select'); M.FormSelect.init(selectElements); });
Materialize CSS的select组件会默认隐藏原生select标签,生成自定义的.dropdown-content下拉结构,当父容器存在transform、overflow等特殊样式,或者默认位置计算受干扰时,就会出现下拉框偏移覆盖输入框的问题,上述样式会强制下拉框从输入框容器的底部开始渲染,彻底解决覆盖问题。
原问题参考

我遇到的问题是:打开Materialize CSS的select组件时,下拉选项会覆盖输入框,我希望下拉选项显示在输入框的下方。
原问题代码:
<div class="input-field "> <select> <option value="" disabled selected style="margin-top: 43px">Choose your option</option> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> </select> <label>Sort By</label> </div>
内容的提问来源于stack exchange,提问作者Samira
相关产品推荐
相关产品推荐

