You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 16中<optgroup>标签label重复显示问题求助

iOS 16.0中<optgroup>标签重复显示的解决办法

在非iOS 16.0的iPhone设备上,以下<optgroup>示例代码显示正常:

<label for="dino-select">Choose a dinosaur:</label>
<select id="dino-select">
    <optgroup label="Theropods">
        <option>Tyrannosaurus</option>
        <option>Velociraptor</option>
        <option>Deinonychus</option>
    </optgroup>
    <optgroup label="Sauropods">
        <option>Diplodocus</option>
        <option>Saltasaurus</option>
        <option>Apatosaurus</option>
    </optgroup>
</select>

但在iOS 16.0的iPhone 13 Pro Max上,<optgroup>的label会重复显示两次,这是iOS 16.0版本的系统原生渲染bug,可通过以下方式解决:

  • 临时模拟分组(无需升级系统)
    用禁用的<option>模拟<optgroup>的分组效果,避开原生组件的bug:

    <label for="dino-select">Choose a dinosaur:</label>
    <select id="dino-select">
        <option disabled style="font-weight: bold; color: #666;">Theropods</option>
        <option>Tyrannosaurus</option>
        <option>Velociraptor</option>
        <option>Deinonychus</option>
        <option disabled style="font-weight: bold; color: #666;">Sauropods</option>
        <option>Diplodocus</option>
        <option>Saltasaurus</option>
        <option>Apatosaurus</option>
    </select>
    

    通过disabled属性让分组标题不可选中,用样式模拟原生分组的视觉效果,完全适配iOS 16.0。

  • 升级iOS系统版本
    iOS 16.0之后的正式版本已经修复了这个<optgroup>重复渲染的问题,升级到iOS 16.1及以上版本后,原生<optgroup>即可正常显示。

  • 使用自定义下拉组件
    如果无法升级系统,可采用纯前端实现的自定义下拉组件(基于HTML元素模拟select交互),完全脱离系统原生渲染逻辑,彻底避免此类系统bug影响。

内容的提问来源于stack exchange,提问作者Shohid_bd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:05:46