2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Safariだとoptionタグに「display: none;」は効かない?!

Last updated at Posted at 2024-10-08

結論

Safariのバグらしい。
バグ報告レポートによると、2006年4月12日に報告されている模様。
https://bugs.webkit.org/show_bug.cgi?id=8351

動作確認

  • サンプルコード
hoge.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <select name="example">
            <option value="サンプル1">サンプル1</option>
            <option value="サンプル2">サンプル2</option> ← ここにdisplay: none;を効かせたい
            <option value="サンプル3">サンプル3</option>
        </select>
    </body>
</html>

【Chrome】
スクリーンショット 2024-09-06 17.45.16.png

【Safari】
スクリーンショット 2024-09-06 17.44.35.png
Safariでは効かない、、だと、、?

対策案

  • disabled属性を付与させて、選択させないようにする
  • optionタグをspanタグで囲み、spanタグに対してdisplay: none;を適用させる
    • JavaScriptからスタイルを付与しないと効かないらしい

終わりに

期待するスタイルがどうしても効かない時は、バグレポートをチェックしたほうが良さそうですね🤔

参考

Safariではoption要素をhiddenできない - Qiita
iPhoneでselect要素optionに「display:none;」が効かない罠 | グリニッジ株式会社

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?