前提・実現したいこと
ransackを用いて、checkboxにチェックしたものを検索する機能をつけています。
そこまではうまくいったのですが、デフォルトのチェックボックスではなく、CSSで装飾を施したいと考えました。
発生している問題・エラーメッセージ
チェックボックスにCSSを施すには、
①チェックボックスをCSSで見えなくする
css
1input[type=checkbox] { 2 display: none; 3}
②label要素を追加し、そこにチェックボックス(仮)をCSSで作成する
rails
1<%= f.label "お米", for: "main1", class: "checkbox01" %> #追加 2<%= f.check_box :main_eq_any, { multiple: true }, "お米" %>
css
1.checkbox01 { 2 box-sizing: border-box; 3 cursor: pointer; 4 display: inline-block; 5 padding: 5px 30px; 6 position: relative; 7 width: auto; 8} 9.checkbox01::before { 10 background: #fff; 11 border: 1px solid #635f5a; 12 content: ''; 13 display: block; 14 height: 16px; 15 left: 5px; 16 margin-top: -8px; 17 position: absolute; 18 top: 50%; 19 width: 16px; 20} 21.checkbox01::after { 22 border-right: 3px solid #ed7a9c; 23 border-bottom: 3px solid #ed7a9c; 24 content: ''; 25 display: block; 26 height: 9px; 27 left: 10px; 28 margin-top: -7px; 29 opacity: 0; 30 position: absolute; 31 top: 50%; 32 transform: rotate(45deg); 33 width: 5px; 34} 35input[type=checkbox]:checked + .checkbox01::after { 36 opacity: 1; 37}
③label要素とcheckbox要素のidを揃えて、labelを押すとcheckされるようにする
というような手順だということが
https://creative.eccom.jp/941/
こちらのサイトを参考にして判明したのですが、③のcheckboxの要素にidを付与することができず、表示されているチェックボックス(仮)を押しても、チェックした判定になりません。
試したこと
rails
1<%= search_form_for @r, url: search_refrigerators_path do |f| %> 2 <%= f.label "お米", for: "main1", class: "checkbox01" %> 3 <%= f.check_box :main_eq_any, { multiple: true }, "お米", "nil", id: "main1" %> 4 <%= f.submit "OK", class: "ok-btn"%> 5<% end %>
→引数が5個あるのでエラー
rails
1<%= search_form_for @r, url: search_refrigerators_path do |f| %> 2 <%= f.label "お米", for: "main1", class: "checkbox01" %> 3 <%= f.check_box :main_eq_any, { multiple: true }, "お米", id: "main1" %> 4 <%= f.submit "OK", class: "ok-btn"%> 5<% end %>
→ログにすら何の変化もなし
残り、chackbox要素にidがつけられたらうまく回りそうなのですが、、
どなたかご存知の方いらっしゃいましたらご教授願えませんでしょうか、、。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/10 10:12
2020/10/09 03:16 編集