
モーダルの中で
北海道: 北海道
東北: 青森 岩手 秋田 ...
関東: 茨木 栃木 群馬 ...
というレイアウトのプルダウンを作りたいのですがいろいろ試行錯誤してうまくいきません
まずシンプルに <select> を使ってみたのですが
option や optgroup に CSS をつけてもレイアウトが反映されず横並びになりません
そこで jquery-ui の selectmenu (https://jqueryui.com/selectmenu/) というのを使って
スタイルのあたるブロック要素に変換してみたんですが
optgroup と option が全て兄弟要素に展開されてしまってグループごとに横に並べられません
クラスはついているので after に改行をはさもうとしたりしましたがうまくいかず
現状最後にのせたコードのように
.ui-menu-item { display: inline-block; }
が一番ましな見栄えなのですがまだ以下のような問題があります
bootstrap モーダル表示中は body にスクロールがつかないため画面外にいくと見切れてしまう
メニュー側に bottom:10%, overflow: auto とかをつけると表示されず、
max-height もレイアウト次第でかわるので固定値にできない
PC画面だとまだ横幅に余裕があり縦幅があふれるので
地域: 県名 を同じ行に並べたい
この2つをうまく解決する方法はないでしょうか
jquery-ui を使う以外にも簡単にいけてるUIを実現できる方法があれば教えていただけるとありがたいです
<head> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.3.1.min.js" data-turbolinks-eval=false></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <style> .ui-front { z-index: 2000; } .ui-menu-item { display: inline-block; } </style> </head> <body> <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#sampleModal"> モーダル・ダイアログ 呼び出し </button> <!-- モーダル・ダイアログ --> <div class="modal fade" id="sampleModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span>×</span></button> <h4 class="modal-title">タイトル</h4> </div> <div class="modal-body"> <select class="prefecture" id="<%= id %>"> <option>指定なし</option> <optgroup label="北海道"> <option>北海道</option> </optgroup> <optgroup label="東北"> <option >青森県</option> <option >岩手県</option> <option >秋田県</option> <option >山形県</option> <option >宮城県</option> <option>福島都</option> </optgroup> <optgroup label="関東"> <option >茨城県</option> <option >栃木県</option> <option >群馬県</option> <option >埼玉県</option> <option >千葉県</option> <option >東京都</option> <option>神奈川県</option> </optgroup> <optgroup label="甲信越"> <option >新潟県</option> <option >山梨県</option> <option>長野県</option> </optgroup> <optgroup label="東海"> <option >静岡県</option> <option >愛知県</option> <option >岐阜県</option> <option>三重県</option> </optgroup> <optgroup label="北陸"> <option >富山県</option> <option >石川県</option> <option>福井県</option> </optgroup> <optgroup label="近畿"> <option >滋賀県</option> <option >京都府</option> <option >大阪府</option> <option >和歌山県</option> <option>兵庫県</option> </optgroup> <optgroup label="中国"> <option >岡山県</option> <option >広島県</option> <option >鳥取県</option> <option >島根県</option> <option>山口県</option> </optgroup> <optgroup label="四国"> <option >徳島県</option> <option >香川県</option> <option >愛媛県</option> <option>高知県</option> </optgroup> <optgroup label="九州"> <option >福岡県</option> <option >佐賀県</option> <option >長崎県</option> <option >熊本県</option> <option >大分県</option> <option >宮崎県</option> <option>鹿児島県</option> </optgroup> <optgroup label="沖縄"> <option >沖縄県</option> </optgroup> </select> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> <button type="button" class="btn btn-primary">ボタン</button> </div> </div> </div> </div> <script> $('select').selectmenu(); </script> </body>

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/15 06:29