質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

2回答

4685閲覧

input type="range"を使用して、希望デザインのスライダーを作りたい

ayamasita

総合スコア1

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2022/01/19 05:05

input type="range"を使用してスライダーを作成したいのですが、希望の形になえらず、どうしてもスライダーのつまみの部分が小さくなってしまいます。

画像のように、つまみが大きいスライダーでかつ、スライド後の部分は色をつけて表示したいと考えております。

どのようにコーディングすればよいでしょうか?
初心者質問で申し訳ありません。よろしくお願いいたします。

希望のスライダーイメージ
イメージ説明

実際のできるもの
イメージ説明

HTML

1 2 <label class="status_range" for="range"> 3 <input type="range" id="range" class="-range"> 4 <span class="radio-txt"></span> 5 </label> 6 7コード

CSS

1 2 3input[type="range"] { 4 -webkit-appearance: none; 5 appearance: none; 6 cursor: pointer; 7 outline: none; 8 height: 10px; 9 width: 90%; 10 overflow: hidden; 11 background: #d1d1d1; 12 border-radius: 10px; 13} 14 15/* WebKit向けのつまみ */ 16input[type="range"]::-webkit-slider-thumb { 17 -webkit-appearance: none; 18 width: 10px; 19 height: 10px; 20 position: relative; 21 top: 0; 22 left: 0; 23 z-index: 6; 24 border-radius: 50%; 25 border: 5px solid #008272; 26 box-shadow: -100.1vw 0 0 100vw #008272; 27} 28/* Moz向けのつまみ */ 29input[type="range"]::-moz-range-thumb { 30 -webkit-appearance: none; 31 width: 10px; 32 height: 10px; 33 position: relative; 34 top: 0; 35 left: 0; 36 z-index: 6; 37 border-radius: 50%; 38 border: 5px solid #008272; 39 box-shadow: -100vw 0 0 100vw #008272; 40} 41 42 43コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

つまみ自体はsvgなど利用すれば好きな形や大きさにできます(オフセットは調整が必要)

CSS

1<style> 2[type=range]{ 3 width:800px; 4 -webkit-appearance: none; 5} 6[type=range]::-webkit-slider-runnable-track{ 7 height: 20px; 8 margin-top:8px; 9 background: red; 10 border-radius: 10px; 11} 12[type=range]::-moz-range-track{ 13 height: 20px; 14 background: red; 15 border-radius: 10px; 16} 17 18[type="range"]::-webkit-slider-thumb{ 19 -webkit-appearance: none; 20 width: 30px; 21 height: 30px; 22 margin-top: -5px; 23 background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="30" width="30"><circle cx="15" cy="15" r="15" fill="red" /></svg>') no-repeat 0 0; 24} 25[type="range"]::-moz-range-thumb{ 26 -webkit-appearance: none; 27 width: 30px; 28 height: 30px; 29 margin-top: -15px; 30 background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="30" width="30"><circle cx="15" cy="15" r="15" fill="red" /></svg>') no-repeat 0 0; 31} 32</style> 33<input type="range" value="0" step="1" max="100" min="0">

投稿2022/01/19 05:58

編集2022/01/20 04:10
yambejp

総合スコア117650

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayamasita

2022/01/19 06:13

@yamabejpさん ご回答いただきありがとうございます!! つまみの大きさを変更することができました! ただ、スライドバー全体の色が初期から着色されており、移動した分だけ塗りつぶす形にしたかったのですが、 こちらは難しいでしょうか? 私の知識不足で、オフセットが、その意味でしたら申し訳ありません。 よろしくお願いいたします
hoku

2024/01/26 07:55

@yamabejpさん margin-topをマイナスにすることでサムの位置をかえているとおもうのですが、こちらのマイナスする値はどのような計算式で成り立つのでしょうか? 目視で調整しかないですかね…?
guest

0

つまみの大きさを変えればいいのではないでしょうか?

css

1width: 10px; 2height: 10px;

のところの値を24くらいにしてみたらどうでしょう?

追記
こんな感じのcssでどうでしょうか?

css

1input[type="range"] { 2 -webkit-appearance: none; 3 appearance: none; 4 cursor: pointer; 5 outline: none; 6 background: #d1d1d1;; 7 height: 14px; 8 width: 100%; 9 border-radius: 10px; 10} 11input[type="range"]::-webkit-slider-thumb { 12 -webkit-appearance: none; 13 background: #008272; 14 width: 24px; 15 height: 24px; 16 border-radius: 50%; 17 box-shadow: 0px 3px 6px 0px #008272; 18}

私の環境ではこうなりますイメージ説明

投稿2022/01/19 05:49

編集2022/01/19 06:22
Ftps

総合スコア295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayamasita

2022/01/19 06:01

@Ftpsさん 回答ありがとうございます! その場合も試してはみたのですが、スライダーばーの中に入り込んでしまい、丸が全面に出てこない形になってしまうのです。 コメントに画像を添付できず、わかりにくいかと思うのですが、 ●=====にしたいのに、 ーーーーーーーーーーー 潰れた● ※スライダーバーの中 ーーーーーーーーーーー のような形になってしまいます…
Ftps

2022/01/19 06:23

cssを追記しました。多分できると思います!
ayamasita

2022/01/19 06:38

@Ftpsさん ありがとうございます!! 綺麗な丸の表示ができました。 ただ、移動後の塗りつぶしがなくなってしまい、こちらはcssでは難しいのでしょうか?
Ftps

2022/01/19 07:10

ayamさんはbox-shadowを使用して作っていたのですが、つまみと干渉(overflow: hidden;)なので、::-ms-fill-lowerとかいじったらできるかもです!
ayamasita

2022/01/19 08:03

調べてみます!! ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問