CSSのラジオボタンのサイズを制御する方法はありますか?
はい、他の要素と同様に高さと幅を設定できるはずです。ただし、一部のブラウザはこれらのプロパティを実際に考慮していません。
このデモでは、可能なことの概要と、さまざまなブラウザーでの表示方法について説明します。 http://www.456bereastreet.com/lab/styling-form-controls-revisited/radio-button/
ご覧のとおり、ラジオボタンのスタイル設定は簡単ではありません:-D
回避策は、javascriptとcssを使用して、ラジオボタンとその他のフォーム要素をカスタム画像に置き換えることです。
http://www.emblematiq.com/lab/niceforms/
http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/
...
古い質問ではありますが、この件について最も多くの票がありました。最近出会った別のソリューションがあります。このCSSはトリックを行うようです。
input[type=radio] {
border: 0px;
width: 100%;
height: 2em;
}
境界線を0に設定すると、ユーザーはボタンのサイズを変更し、ブラウザにそのサイズでレンダリングさせることができるようです。上記の高さ:2emは、行の高さの2倍でボタンをレンダリングします。これはチェックボックス(input [type = checkbox])でも機能します。一部のブラウザーは他のブラウザーよりもレンダリングが良好です。
Windowsボックスからは、ie8 +、ff21 +、chrome29 +で動作します。
乾杯。
古い質問ですが、現在、ほとんどのブラウザと互換性のある簡単なソリューションがあります。それはCSS3
を使用することです。 IE、Firefox、Chromeでテストしましたが、動作します。
input[type="radio"] {
-ms-transform: scale(1.5); /* IE 9 */
-webkit-transform: scale(1.5); /* Chrome, Safari, Opera */
transform: scale(1.5);
}
必要に応じて、値1.5
を変更します。この場合、サイズを50%ずつ増やします。比率が非常に高い場合、ラジオボタンがぼやけることがあります。次の画像は、1.5の比率を示しています。
Cssスタイルでラジオボタンのサイズを制御できます。
style = "height:35px; width:35px;"
これにより、ラジオボタンのサイズが直接制御されます。
<input type="radio" name="radio" value="value" style="height:35px; width:35px; vertical-align: middle;">
直接ではありません。実際、一般にフォーム要素は、CSSのみを使用してスタイル設定するのに問題があるか、不可能です。最善のアプローチは次のとおりです。
javascript
var labels = $("ul.radioButtons).delegate("input", "keyup", function () { //keyboard use
if (this.checked) {
select($(this).parent());
}
}).find("label").bind("click", function (event) { //mouse use
select($(this));
});
function select(el) {
labels.removeClass("selected");
el.addClass("selected");
}
html
<ul class="radioButtons">
<li>
<label for="employee1">
employee1
<input type="radio" id="employee1" name="employee" />
</label>
</li>
<li>
<label for="employee2">
employee1
<input type="radio" id="employee2" name="employee" />
</label>
</li>
</ul>
これが一つのアプローチです。デフォルトでは、ラジオボタンはラベルの約2倍の大きさでした。
(回答の最後にあるCSSおよびHTMLコードを参照)
Safari: 10.0.3
Chrome: 56.0.2924.87
Firefox: 50.1.0
Internet Explorer: 9
(IEのせいではなく、あいまいさ、netrenderer.comでホストされたテスト)
CSS:
.sortOptions > label {
font-size: 8px;
}
.sortOptions > input[type=radio] {
width: 10px;
height: 10px;
}
HTML:
<div class="rightColumn">Answers
<span class="sortOptions">
<input type="radio" name="answerSortList" value="credate"/>
<label for="credate">Creation</label>
<input type="radio" name="answerSortList" value="lastact"/>
<label for="lastact">Activity</label>
<input type="radio" name="answerSortList" value="score"/>
<label for="score">Score</label>
<input type="radio" name="answerSortList" value="upvotes"/>
<label for="upvotes">Up votes</label>
<input type="radio" name="answerSortList" value="downvotes"/>
<label for="downvotes">Down Votes</label>
<input type="radio" name="answerSortList" value="accepted"/>
<label for="downvotes">Accepted</label>
</span>
</div>
デフォルトのウィジェットのサイズ変更はすべてのブラウザで機能するわけではありませんが、JavaScriptを使用してカスタムラジオボタンを作成できます。方法の1つは、非表示のラジオボタンを作成し、ページに独自の画像を配置することです。これらの画像をクリックすると、画像が変更され(クリックされた画像は選択状態のラジオボタンのある画像に置き換えられ、他の画像は非選択状態のラジオボタンに置き換えられます)、新しいラジオボタンが選択されます。
とにかく、このテーマに関するドキュメントがあります。たとえば、次をお読みください: CSSとJavaScriptを使用したチェックボックスとラジオボタンのスタイル設定 。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>
input[type="radio"] {
-ms-transform: scale(1.5); /* IE 9 */
-webkit-transform: scale(1.5); /* Chrome, Safari, Opera */
transform: scale(1.5);
}
</style>
</head>
<body>
<div class="container">
<h2>Form control: inline radio buttons</h2>
<p>The form below contains three inline radio buttons:</p>
<form>
<label class="radio-inline">
<input type="radio" name="optradio">Option 1
</label>
<label class="radio-inline">
<input type="radio" name="optradio">Option 2
</label>
<label class="radio-inline">
<input type="radio" name="optradio">Option 3
</label>
</form>
</div>
</body>
</html>
直接これを行うことはできません。 [私の知る限り]。
images
を使用して、ラジオボタンを置き換える必要があります。ほとんどの場合、ラジオボタンと同じように機能させることができ、任意のサイズにすることができます。
これはすべてのブラウザでうまく機能します:
(簡単にするためのインラインスタイル...)
<label style="font-size:16px;">
<input style="height:1em; width:1em;" type="radio">
<span>Button One</span>
</label>
ラジオボタンとテキストの両方のサイズは、ラベルのフォントサイズに応じて変わります。
必要なスケールの値を指定して、transformプロパティを使用することもできます。
input[type=radio]{transform:scale(2);}