Webページのチェックボックス–それらを大きくする方法は?


113

ほとんどのブラウザでレンダリングされる標準のチェックボックスは非常に小さく、大きなフォントを使用してもサイズが大きくなりません。大きなチェックボックスを表示するには、ブラウザに依存しない最良の方法は何ですか?

回答:


143

これが誰かを助けることができる場合に備えて、ジャンプポイントとしての簡単なCSSを以下に示します。背景色を切り替えた親指に十分な大きさの基本的な丸みを帯びた正方形に変えます。

input[type='checkbox'] {
    -webkit-appearance:none;
    width:30px;
    height:30px;
    background:white;
    border-radius:5px;
    border:2px solid #555;
}
input[type='checkbox']:checked {
    background: #abd;
}
<input type="checkbox" />


@GabrielWそうです。他のものには同等のものを使用してください
taylorcressy 2014年

@taylorcressy IE以外(IE 11も)caniuse.com/#search=Appearance-ただし、他のブラウザでは問題なく動作しました。ありがとう!
CodeBrauer 2014年

16
内部にもダニがあったらいいでしょう:)
robert king

@Paul:共有いただきありがとうございます。チェックマークが表示されるのをどう処理するのかと思っていました。背景を色に設定すると、ボックスの白いチェックマークは表示されなくなります。簡単な解決策はありますか?:beforeでチェック用のhtmlエンティティを追加しようとしましたが、代替案があるかどうか疑問に思いました
PBandJen

1
チェックされた背景色には暗い色を使用しましたが、「チェック」がなければそれほど悪くありません
JRローホーン2018年

47

実際には、他のものと同じようにチェックボックスを大きくする方法があります(Facebookのボタンのようなiframeでも)。

それらを「ズーム」要素で囲みます。

.double {
  zoom: 2;
  transform: scale(2);
  -ms-transform: scale(2);
  -webkit-transform: scale(2);
  -o-transform: scale(2);
  -moz-transform: scale(2);
  transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  -webkit-transform-origin: 0 0;
  -o-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
}
<div class="double">
  <input type="checkbox" name="hello" value="1">
</div>

少し「再スケーリング」されたように見えるかもしれませんが、機能します。

もちろん、そのdivをfloat:leftにして、それにラベルを付けることもできます。float:leftも同様です。


1
Firefox(バージョン36以降)では、非常にぼやけた外観になることに注意してください。ただし、Chromeでは十分に拡張できます。デモ:jsfiddle.net/tzp858j3
キャット

スケーリングされていないように見えるより良い解決策はありませんか?
basZero 2015年

3
することはできませんzoom: 2し、transform: scale(2)直接チェックボックスに適用されますか?なぜラッパーが必要なのですか?
Atav32

ありがとう!あなたのコードはもっと多くのブラウザを考慮に入れているように見えますが、私がテストすることはできましたが、私が試したすべてのもので機能します。チェックボックスがちょうどドットになる私のI-phoneで特に素晴らしいです!ちなみに、このスニペットが「2」を配置する場所には、小さめの小数スケーリング(1.5など)を配置できます。
ランディ

26

このCSSを試す

input[type=checkbox] {width:100px; height:100px;}

2
完全にクロスブラウザではありません(HTMLでクラスを設定し、CSSでクラスセレクターを使用することをお勧めします)が、これは私よりも優れたソリューションである可能性があります。+1
ハーメン

1
例として幅と高さを使用していました。おそらくハーメンと私のソリューションの組み合わせは、CSSが合理的に提供できるよりも多くのスタイリングを必要とする可能性があるため、進むべき道です。
Collin White、

6
これは一部のブラウザでのみ機能し、最近の多くのブラウザでは機能しません。
RJオーウェン

1
これはiPadのサファリで機能し、ユーザーがクリックしやすくするためにチェックボックスを大きくする必要があることがよくあります。
user3032973 2014

3
主な制限は、それが(Firefoxの36のような)Firefoxで全ての作業をしないと、それは100×100pxにエリアを埋めるの周りに(チェックボックスは通常の大きさが、パディング、実際の見た目にはかなり不自然であるということです。
キャット

5

私は変更しようとしたpaddingmarginし、同様にwidthしてheight、その後、最終的にはあなただけの規模を増やした場合、それがうまくいくことがわかりました。

input[type=checkbox] {
    transform: scale(1.5);
}

1

以下は、最新のブラウザー(IE9 +)で、JavaScriptを使用してIE8以下をサポートするように改善できるCSSのみのソリューションとして機能するトリックです。

<div>
  <input type="checkbox" id="checkboxID" name="checkboxName" value="whatever" />
  <label for="checkboxID"> </label>
</div>

labelチェックボックスをどのように表示するかでスタイルを設定します

#checkboxID
{
  position: absolute fixed;
  margin-right: 2000px;
  right: 100%;
}
#checkboxID + label
{
  /* unchecked state */
}
#checkboxID:checked + label
{
  /* checked state */
}

JavaScriptの場合、ラベルにクラスを追加して状態を表示できます。また、次の関数を使用することをお勧めします。

$('label[for]').live('click', function(e){
  $('#' + $(this).attr('for') ).click();
  return false;
});

#checkboxIDスタイルを変更するための編集


この手法の完全なソースコードへのリンクについては、stackoverflow.com / a
3772914/190135を

1

私はPhoneGapアプリを作成していて、チェックボックスのサイズや外観などが異なります。そのため、独自のシンプルなチェックボックスを作成しました。

まず、HTMLコード:

<span role="checkbox"/>

次に、CSS:

[role=checkbox]{
    background-image: url(../img/checkbox_nc.png);
    height: 15px;
    width: 15px;
    display: inline-block;
    margin: 0 5px 0 5px;
    cursor: pointer;
}

.checked[role=checkbox]{
    background-image: url(../img/checkbox_c.png);
}

チェックボックスの状態を切り替えるには、JQueryを使用しました。

CLICKEVENT='touchend';
function createCheckboxes()
{
    $('[role=checkbox]').bind(CLICKEVENT,function()
    {
        $(this).toggleClass('checked');
    });
}

しかし、それなしで簡単に行うことができます...

お役に立てれば幸いです。


1

ぼやけたスケーリングや便利でない変換なしで、純粋に現代的な2020 CSSのみの決定 そしてダニで!=)

FirefoxおよびChromiumベースのブラウザでうまく機能します。

したがって、親ブロックを設定するだけで、チェックボックスを純粋にADAPTIVEにルール化できfont-height、テキストとともに成長します!

input[type='checkbox'] {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  outline: none;
  font-size: inherit;
  cursor: pointer;
  width: 1.0em;
  height: 1.0em;
  background: white;
  border-radius: 0.25em;
  border: 0.125em solid #555;
  position: relative;
}

input[type='checkbox']:checked {
  background: #adf;
}

input[type='checkbox']:checked:after {
  content: "✔";
  position: absolute;
  font-size: 90%;
  left: 0.0625em;
  top: -0.25em;
}
<label for="check1"><input type="checkbox" id="check1" checked="checked" /> checkbox one</label>
<label for="check2"><input type="checkbox" id="check2" /> another checkbox</label>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.