ご覧頂きありがとうございます。
現在、Webアンケートを実施するために、ラジオボタンを用いて、添付画像のような段階評価のフォームを作りたいと考えています。
「SD法」と呼ばれるアンケートの種類に用いるためで、選択肢が等間隔に並んでいることが目盛で分かることが条件です。
作るにあたって、改変が容易である、と言った事を度外視し、とりあえずなるべく少ない言語(出来ればHTMLとCSSと画像のみ)での実現を目指しています。
複数のブラウザ、場合によってはスマートフォンなどでも閲覧することが想定されるためです。
HTML5だとrangeで標準装備になるようですが、HTML4.01で、そしてCSSだけで作れればベストと考えております。
JavaScriptで、スライダーとしても作ってみたのですが、iPadでの感触が良くなかったのもあり、
試行錯誤の結果、ラジオボタンを5つ配置し、その背景に目盛の画像を表示出来れば一番簡単かつ安全ではないか、と思っています。
(CGIでデータを受け渡す予定ですが、CGIに不得手なのもあり、シンプルなソースを目指しています)
以上を踏まえまして、
『ラジオボタンの背景に画像を表示させる方法』
(→ページの背景自体に目盛入りの画像を用意するしかないでしょうか?)
をご存知の方がいらっしゃいましたら、お教えて頂ければ幸いです。
また、それよりも簡単な方法で、
『ラジオボタンで段階評価させる方法』
をご存知の方がいらっしゃいましたら、合わせてお願い致します。
No.2
- 回答日時:
ボーダーの上にラジオボタンを重ねてみました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">
.hoge { width:8.1em; height:3em; }
.hoge div { margin-left:0.8em; width:6.4em; border-bottom:2px groove #888; }
.hoge ul { list-style-type:none; position:relative; margin:-0.55em 0 0 0; padding:0; }
.hoge ul li { width:1.6em; text-align:center; float:left; }
</style>
</head>
<body>
<div class="hoge">
<div> </div>
<ul>
<li><input type="radio" name="Q1" value="1"><br>1</li>
<li><input type="radio" name="Q1" value="2"></li>
<li><input type="radio" name="Q1" value="3"></li>
<li><input type="radio" name="Q1" value="4"></li>
<li><input type="radio" name="Q1" value="5"><br>5</li>
</ul>
</div>
</body>
</html>
ご回答ありがとうございます。
「ボーダーを使う方法があるか」、と思わず唸ってしまいました。
これならばブラウザにあまり依存しないことでしょうし、確実ですね。
使用の目的上、画像を背景に配置する方の回答をベストアンサーとさせて頂きましたが、
fujillinさんの発想も素晴らしいと思いました。
No.1ベストアンサー
- 回答日時:
<html>
<head>
<style type="text/css"><!--
dt{ margin-top:1em;}
#test1{ width:240px; height:50px; background: white url(メモリ画像.gif) no-repeat 0 .6em;}
#test1 label{ display:block; width:48px; float:left;}
/* 上記↑評価1のCSS 下記↓評価2のCSS */
#test2{ width:240px;}
#test2 label,#test2 input{ display:block;}
#test2 label{ width:48px; float:left; text-indent:6px;}
--></style>
</head>
<body>
<div>
<dl>
<dt>評価1</dt>
<dd id="test1">
<label for="r01"><input type="radio" name="test" id="r01"></label>
<label for="r02"><input type="radio" name="test" id="r02"></label>
<label for="r03"><input type="radio" name="test" id="r03"></label>
<label for="r04"><input type="radio" name="test" id="r04"></label>
<label for="r05"><input type="radio" name="test" id="r05"></label><br style="clear: left;">
</dd>
<dt>評価2</dt>
<dd id="test2">
<label for="r06">1<input type="radio" name="test2" id="r06"></label>
<label for="r07">2<input type="radio" name="test2" id="r07"></label>
<label for="r08">3<input type="radio" name="test2" id="r08"></label>
<label for="r09">4<input type="radio" name="test2" id="r09"></label>
<label for="r10">5<input type="radio" name="test2" id="r10"></label><br style="clear: left;">
</dd>
</dl>
</div>
</body>
</html>
表示方法にCGIは関係ないとして、
背景画像が表示出来ない環境の場合、何も出来なくなりますので、ラジオボタンと関連するテキストを示した方が良いのでは?と感じます。
(それを言えば普通の横一列のフォームボタンになりますがw)
背景で目盛を表示する場合には、各親要素で背景画像を表示すれば可能です。
評価2のように縦にするのも見やすいかも。
ありがとうございます。
labelと言うCSSタグがあるとは知りませんでした。
とても便利そうで、びっくりしております。
ラジオボタンと関連するテキストを縦で(2段で)表示することは考えていたのですが、
1文字の数字だけではなく、「難しい」と「優しい」などの対義語の文字列を両端に表示させる可能性もあり、躊躇しておりました。
回答のソースを参考に、labelを用いて書き直してみましたら、
文字列でもwidthをちゃんと指定すれば、崩れることなくちゃんと表示させられるようですね。
勉強になりました。
とりあえずは、目盛も表示させたいので、画像を用いて製作していこうと思います。
CSSは、なかなかゼロから考えるのが苦手なので、とても勉強になりました。
重ね重ね、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- HTML・CSS svgクリップパスの応用コーディング方法 2 2022/04/09 09:07
- 統計学 Rを用いた「繰り返しがある直交表実験計画法」の分析方法 8 2023/08/01 17:58
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字を固定したいのですが…
-
離れた場所にマウスオーバーで...
-
1行で左寄せと右寄せと中央揃え...
-
オンマウス時に別画像を上に重...
-
文字をクリックしたら別の文字...
-
CSS <div>の入れ子が反映さ...
-
レイアウトが崩れないようにす...
-
clear: bothの事で質問です。
-
CSS 可変マージン
-
★★★フッター最下部固定/スクロ...
-
スクロール可能なチェックボックス
-
MAX関数を使ってからLEFT JOIN...
-
htmlの記述で link rel=styles...
-
画像の上に画像リンクを貼る方法
-
スライダーを実装した場合、ペ...
-
背景色を一定時間ごとにランダ...
-
javascriptでURLにマウスオーバー
-
[急ぎ] videoタグで埋め込んだm...
-
文字と数字が混在する要素のsor...
-
ホームページビルダー15 メニュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ctrl+F(検索)の窓を出したいの...
-
フッター上部に謎の隙間
-
【CSS】floatで左右に並べた...
-
HTMLですCSSです この画像のよ...
-
css固定したフッターが本文と重...
-
CSS <div>の入れ子が反映さ...
-
スクロール可能なチェックボックス
-
textareaで入力した文字を改行...
-
オンマウス時に別画像を上に重...
-
文字を固定したいのですが…
-
スタイルシートで画面を上下に...
-
チェックボックスの背景色って...
-
フッターの下に隙間ができてしまう
-
文字をクリックしたら別の文字...
-
大分類・中分類・小分類
-
HTMLですCSSです 画像のように...
-
CSSでdivのheightを動的に
-
★★★フッター最下部固定/スクロ...
-
離れた場所にマウスオーバーで...
-
htmlのstyleのposition:relativ...
おすすめ情報