Tôi có thể thay đổi kích thước hộp kiểm bằng CSS không?


459

Có thể đặt kích thước của hộp kiểm bằng CSS hoặc HTML trên các trình duyệt không?

widthsizehoạt động trong IE6 +, nhưng không hoạt động với Firefox, trong đó hộp kiểm vẫn ở mức 16x16 ngay cả khi tôi đặt kích thước nhỏ hơn.


3
Điều này là khó để làm trình duyệt chéo. Roger Johansson đã điều tra điều này khá rộng rãi.
Cristian Libardo

Đọc tất cả các nhận xét - có một cách thực sự đơn giản để thực hiện việc này mà không liên quan đến CSS: <input type = "hộp kiểm" name = "hộp kiểm" giá trị "" trên "style =" width: 110%; height: 110% ">
Williamz902

Sử dụng ans đơn giản này: stackoverflow.com/questions/57805394/ từ
Pritesh

@ Williamz902 style=thẻ là CSS ...
Tiebe Groosman

Câu trả lời:


434

Nó hơi xấu (do mở rộng), nhưng nó hoạt động trên hầu hết các trình duyệt mới hơn:

input[type=checkbox]
{
  /* Double-sized Checkboxes */
  -ms-transform: scale(2); /* IE */
  -moz-transform: scale(2); /* FF */
  -webkit-transform: scale(2); /* Safari and Chrome */
  -o-transform: scale(2); /* Opera */
  transform: scale(2);
  padding: 10px;
}

/* Might want to wrap a span around your checkbox text */
.checkboxtext
{
  /* Checkbox text */
  font-size: 110%;
  display: inline;
}
<input  type="checkbox" name="optiona" id="opta" checked />
<span class="checkboxtext">
  Option A
</span>
<input type="checkbox" name="optionb" id="optb" />
<span class="checkboxtext">
  Option B
</span>
<input type="checkbox" name="optionc" id="optc" />
<span class="checkboxtext">
  Option C
</span>


3
đây có vẻ là câu trả lời đúng vì câu trả lời là câu trả lời không cung cấp giải pháp nào trong nhiều trường hợp (không có giải pháp nào cho firefox trên xp? không có chrome nào cả?), đã lỗi thời và chỉ chứa một liên kết và nhận xét không có nhiều giá trị.
Nurettin

4
@jdw +1 cho câu trả lời này và thậm chí tôi có nhu cầu làm điều này và câu trả lời của bạn rất hữu ích. Nhưng bằng cách nào đó tôi thấy rằng hộp kiểm 'thu nhỏ' xuất hiện một chút méo mó. Tôi không biết liệu đây có phải là một thứ với FF hay HĐH của tôi không (Ubuntu 12.04). Dù sao cũng cảm ơn :)
itols

1
Tôi nghĩ rằng scale () cần 2 tham số cho chrome, FF và IE. Vì vậy, nếu bạn chỉ thay đổi tất cả các tỷ lệ thành tỷ lệ (2,2), nó sẽ hoạt động trên mọi trình duyệt.
Onur Topal

10
thêm vào transform: scale(2);, để đảm bảo nhiều hơn cho bất kỳ trình duyệt nào
Adriano Resende

8
tỉ lệ có vẻ khủng khiếp, ở tỷ lệ 2 bạn đã thấy các pixel riêng lẻ. Tôi sẽ không bao giờ chọn giải pháp này cho các hộp kiểm css lớn đẹp.
basZero

369

Giải pháp làm việc cho tất cả các trình duyệt hiện đại.

input[type=checkbox] {
    transform: scale(1.5);
}
<label><input type="checkbox"> Test</label>


Khả năng tương thích:

  • IE: 10+
  • FF: 16+
  • Chrome: 36+
  • Safari: 9+
  • Opera: 23+
  • Safari Safari: 9.2+
  • Chrome dành cho Android: 51+

Xuất hiện:

  • Các hộp kiểm được thu nhỏ trên Chrome, Win 10 Chrome 58 (tháng 5 năm 2017), Windows 10

Điều này có bao gồm các trình duyệt cũ hơn như 8 không?
Hoàng đạo

1
@Huangism Không, mã ở trên sẽ không có bất kỳ ảnh hưởng nào trong IE 8 không hỗ trợ transformtài sản. IE 9 hỗ trợ -ms-transformmà bạn có thể sử dụng, tuy nhiên một số người cho rằng nó khá pixel nên có thể tốt hơn là để IE 9 mặc định.
Simon East

Không phải là cách tiếp cận xấu, bởi vì có giới hạn về tỷ lệ vì nó làm cho hộp kiểm bị pixel.
rishiAgar

9
Cực kỳ pixel trên Chrome 64 với macOS 10.13.3 :( timo-ernst.net/misc/zeug/cb-pixel.jpg
Timo

Vẫn pixelated trên Chrome 76.
Labrador

68

Một giải pháp dễ dàng là sử dụng tài sản zoom:

input[type="checkbox"] {
    zoom: 1.5;
}
<input type="checkbox" />


8
Không chắc chắn rằng nó hoạt động trong tất cả các trình duyệt, nhưng nó trông đẹp hơn trên màn hình so với giải pháp biến đổi tỷ lệ.
Gwened

2
Trên Chrome 64 với macOS 10.13.3, giao diện này trông ít pixel hơn so với sử dụng biến đổi + tỷ lệ
Timo

Rất không được khuyến khích bởi Mozilla. developer.mozilla.org/en-US/docs/Web/CSS/zoom
Trade-Ideas Philip

Thật thú vị khi Mozilla không khuyến khích nó trong khi Firefox gần như là trình duyệt duy nhất không hỗ trợ nó: caniuse.com/#feat=css-zoom
ndreisg

47

Phiên bản 2020 - sử dụng các yếu tố giả, kích thước phụ thuộc vào kích thước phông chữ.

Hộp kiểm / radio mặc định được hiển thị bên ngoài màn hình, nhưng CSS tạo các phần tử ảo rất giống với các phần tử mặc định. Hỗ trợ tất cả các trình duyệt, không bị mờ. Kích thước phụ thuộc vào kích thước phông chữ. Hành động bàn phím (không gian, tab) cũng được hỗ trợ.

https://jsfiddle.net/ohf7nmzy/2/

body{
	padding:0 20px;
}
.big{
	font-size: 50px;
}

/* CSS below will force radio/checkbox size be same as font size */
label{
	position: relative;
	line-height: 1.4;
}
/* radio */
input[type=radio]{
	width: 1em;
	font-size: inherit;
	margin: 0;
	transform: translateX(-9999px);
}
input[type=radio] + label:before{
	position: absolute;
	content: '';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border:none;
	border-radius: 50%;
	background-color: #bbbbbb;
}
input[type=radio] + label:after{
	position: absolute;
	content: '';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: white;
	border-radius: 50%;
	transform: scale(0.8);
}
/*checked*/
input[type=radio]:checked + label:before{
	position:absolute;
	content:'';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: #3b88fd;
}
input[type=radio]:checked + label:after{
	position: absolute;
	content: '';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: white;
	border-radius: 50%;
	transform: scale(0.3);
}
/*focused*/
input[type=radio]:focus + label:before{
	border: 0.2em solid #8eb9fb;
	margin-top: -0.2em;
	margin-left: -0.2em;
	box-shadow: 0 0 0.3em #3b88fd;
}


/*checkbox/*/
input[type=checkbox]{
	width: 1em;
	font-size: inherit;
	margin: 0;
	transform: translateX(-9999px);
}
input[type=checkbox] + label:before{
	position: absolute;
	content: '';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border:none;
	border-radius: 10%;
	background-color: #bbbbbb;
}
input[type=checkbox] + label:after{
	position: absolute;
	content: '';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: white;
	border-radius: 10%;
	transform: scale(0.8);
}
/*checked*/
input[type=checkbox]:checked + label:before{
	position:absolute;
	content:'';
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: #3b88fd;
}
input[type=checkbox]:checked + label:after{
	position: absolute;
	content: "\2713";
	left: -1.3em;
	top: 0;
	width: 1em;
	height: 1em;
	margin: 0;
	border: none;
	background-color: #3b88fd;
	border-radius: 10%;
	color: white;
	text-align: center;
	line-height: 1;
}
/*focused*/
input[type=checkbox]:focus + label:before{
	border: 0.1em solid #8eb9fb;
	margin-top: -0.1em;
	margin-left: -0.1em;
	box-shadow: 0 0 0.2em #3b88fd;
}
<input type="checkbox" name="checkbox_1" id="ee" checked /> 
<label for="ee">Checkbox small</label>

<br />

<input type="checkbox" name="checkbox_2" id="ff" /> 
<label for="ff">Checkbox small</label>

<hr />

<div class="big">
	<input type="checkbox" name="checkbox_3" id="gg" checked /> 
	<label for="gg">Checkbox big</label>

	<br />

	<input type="checkbox" name="checkbox_4" id="hh" /> 
	<label for="hh">Checkbox big</label>
</div>


<hr />


<input type="radio" name="radio_1" id="aa" value="1" checked /> 
<label for="aa">Radio small</label>

<br />

<input type="radio" name="radio_1" id="bb" value="2" /> 
<label for="bb">Radio small</label>

<hr />

<div class="big">
	<input type="radio" name="radio_2" id="cc" value="1" checked /> 
	<label for="cc">Radio big</label>

	<br />

	<input type="radio" name="radio_2" id="dd" value="2" /> 
	<label for="dd">Radio big</label>
</div>

Phiên bản 2017 - sử dụng zoom hoặc tỷ lệ

Trình duyệt sẽ sử dụng zoomtính năng không chuẩn nếu được hỗ trợ (chất lượng tốt) hoặc tiêu chuẩntransform: scale (mờ).

Thu nhỏ hoạt động trên tất cả các trình duyệt, nhưng nó sẽ bị mờ trên Firefox và Safari .

https://jsfiddle.net/ksvx2txb/11/

@supports (zoom:2) {
	input[type="radio"],  input[type=checkbox]{
	zoom: 2;
	}
}
@supports not (zoom:2) {
	input[type="radio"],  input[type=checkbox]{
		transform: scale(2);
		margin: 15px;
	}
}
label{
  /* fix vertical align issues */
	display: inline-block;
	vertical-align: top;
	margin-top: 10px;
}
<input type="radio" name="aa" value="1" id="aa" checked /> 
<label for="aa">Radio 1</label>
<br />
<input type="radio" name="aa" value="2" id="bb" /> 
<label for="bb">Radio 2</label>

<br /><br />

<input  type="checkbox" name="optiona" id="cc" checked /> 
<label for="cc">Checkbox 1</label>
<br />
<input  type="checkbox" name="optiona" id="dd" /> 
<label for="dd">Checkbox 1</label>


Zoom có ​​vẻ như nó hoạt động tốt trên FQ. Có thể coi chừng các phiên bản cũ của Gecko?
Neil Chowdhury

27

Tôi vừa ra mắt với điều này:

input[type="checkbox"] {display:none;}
input[type="checkbox"] + label:before {content:"☐";}
input:checked + label:before {content:"☑";}
label:hover {color:blue;}
<input id="check" type="checkbox" /><label for="check">Checkbox</label>

Tất nhiên, nhờ điều này, bạn có thể thay đổi giá trị của content theo nhu cầu của mình và sử dụng một hình ảnh nếu bạn muốn hoặc sử dụng phông chữ khác ...

Sự quan tâm chính ở đây là:

  1. Kích thước hộp kiểm vẫn tỷ lệ thuận với kích thước văn bản

  2. Bạn có thể kiểm soát khía cạnh, màu sắc, kích thước của hộp kiểm

  3. Không cần thêm HTML!

  4. Chỉ cần 3 dòng CSS (cái cuối cùng là để cung cấp cho bạn ý tưởng)

Chỉnh sửa : Như đã chỉ ra trong nhận xét, hộp kiểm sẽ không thể truy cập bằng điều hướng chính. Bạn có thể nên thêm tabindex=0như một tài sản cho nhãn của bạn để làm cho nó có thể tập trung.


2
Thật không may, cài đặt display:nonetrên đầu vào sẽ ngăn không cho nó được chọn bằng tabkhóa vì vậy tôi không nghĩ rằng đây là một ý tưởng hay.
Har Phườngk

2
Nhận xét tốt. Bạn có thể thêm tabindex = 0 vào đầu vào để sửa lỗi này.
Sharcoux

26

Xem trước:
http://jsfiddle.net/h4qka9td/

*,*:after,*:before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

.switch {
  margin: 50px auto;
  position: relative;
}

.switch label {
  width: 100%;
  height: 100%;
  position: relative;
  display: block;
}

.switch input {
  top: 0; 
  right: 0; 
  bottom: 0; 
  left: 0;
  opacity: 0;
  z-index: 100;
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

/* DEMO 3 */

.switch.demo3 {
  width: 180px;
  height: 50px;
}

.switch.demo3 label {
  display: block;
  width: 100%;
  height: 100%;
  background: #a5a39d;
  border-radius: 40px;
  box-shadow:
      inset 0 3px 8px 1px rgba(0,0,0,0.2),
      0 1px 0 rgba(255,255,255,0.5);
}

.switch.demo3 label:after {
  content: "";
  position: absolute;
  z-index: -1;
  top: -8px; right: -8px; bottom: -8px; left: -8px;
  border-radius: inherit;
  background: #ababab;
  background: -moz-linear-gradient(#f2f2f2, #ababab);
  background: -ms-linear-gradient(#f2f2f2, #ababab);
  background: -o-linear-gradient(#f2f2f2, #ababab);
  background: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ababab));
  background: -webkit-linear-gradient(#f2f2f2, #ababab);
  background: linear-gradient(#f2f2f2, #ababab);
  box-shadow: 0 0 10px rgba(0,0,0,0.3),
        0 1px 1px rgba(0,0,0,0.25);
}

.switch.demo3 label:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -18px; right: -18px; bottom: -18px; left: -18px;
  border-radius: inherit;
  background: #eee;
  background: -moz-linear-gradient(#e5e7e6, #eee);
  background: -ms-linear-gradient(#e5e7e6, #eee);
  background: -o-linear-gradient(#e5e7e6, #eee);
  background: -webkit-gradient(linear, 0 0, 0 100%, from(#e5e7e6), to(#eee));
  background: -webkit-linear-gradient(#e5e7e6, #eee);
  background: linear-gradient(#e5e7e6, #eee);
  box-shadow:
      0 1px 0 rgba(255,255,255,0.5);
  -webkit-filter: blur(1px);
  -moz-filter: blur(1px);
  -ms-filter: blur(1px);
  -o-filter: blur(1px);
  filter: blur(1px);
}

.switch.demo3 label i {
  display: block;
  height: 100%;
  width: 60%;
  border-radius: inherit;
  background: silver;
  position: absolute;
  z-index: 2;
  right: 40%;
  top: 0;
  background: #b2ac9e;
  background: -moz-linear-gradient(#f7f2f6, #b2ac9e);
  background: -ms-linear-gradient(#f7f2f6, #b2ac9e);
  background: -o-linear-gradient(#f7f2f6, #b2ac9e);
  background: -webkit-gradient(linear, 0 0, 0 100%, from(#f7f2f6), to(#b2ac9e));
  background: -webkit-linear-gradient(#f7f2f6, #b2ac9e);
  background: linear-gradient(#f7f2f6, #b2ac9e);
  box-shadow:
      inset 0 1px 0 white,
      0 0 8px rgba(0,0,0,0.3),
      0 5px 5px rgba(0,0,0,0.2);
}

.switch.demo3 label i:after {
  content: "";
  position: absolute;
  left: 15%;
  top: 25%;
  width: 70%;
  height: 50%;
  background: #d2cbc3;
  background: -moz-linear-gradient(#cbc7bc, #d2cbc3);
  background: -ms-linear-gradient(#cbc7bc, #d2cbc3);
  background: -o-linear-gradient(#cbc7bc, #d2cbc3);
  background: -webkit-gradient(linear, 0 0, 0 100%, from(#cbc7bc), to(#d2cbc3));
  background: -webkit-linear-gradient(#cbc7bc, #d2cbc3);
  background: linear-gradient(#cbc7bc, #d2cbc3);
  border-radius: inherit;
}

.switch.demo3 label i:before {
  content: "off";
  text-transform: uppercase;
  font-style: normal;
  font-weight: bold;
  color: rgba(0,0,0,0.4);
  text-shadow: 0 1px 0 #bcb8ae, 0 -1px 0 #97958e;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 24px;
  position: absolute;
  top: 50%;
  margin-top: -12px;
  right: -50%;
}

.switch.demo3 input:checked ~ label {
  background: #9abb82;
}

.switch.demo3 input:checked ~ label i {
  right: -1%;
}

.switch.demo3 input:checked ~ label i:before {
  content: "on";
  right: 115%;
  color: #82a06a;
  text-shadow: 
    0 1px 0 #afcb9b,
    0 -1px 0 #6b8659;
}
<div class="switch demo3">
  <input type="checkbox">
  <label><i></i>
  </label>
</div>

<div class="switch demo3">
  <input type="checkbox" checked>
  <label><i></i>
  </label>
</div>


@robertjd đồng ý, đã bối rối về lý do tại sao điều này lại cần thiết cho một biến đổi đơn giản
Neil Chowdhury

@robertjd Những hộp kiểm không đều; họ đang bật
TylerH

14

Sự xuất hiện của các hộp kiểm dường như được cố định theo mặc định. Nhưng như Worthy7 đã chỉ ra, điều này có thể được khắc phục bằng cách sử dụng thuộc appearancetính CSS . Nó sẽ làm cho các hộp kiểm hoàn toàn trống rỗng, vì vậy bạn có thể xác định diện mạo của riêng bạn. Điều gì là tốt đẹp về điều này: Bạn có thể sử dụng mã HTML hiện tại của mình. Nhược điểm: Đó là công nghệ thử nghiệm . Edge và IE không sử dụng kiểu tùy chỉnh.

Dưới đây là các kiểu CSS cần thiết:

input[type=checkbox] {
    width: 14mm;
    -webkit-appearance: none;
    -moz-appearance: none;
    height: 14mm;
    border: 0.1mm solid black;
}

input[type=checkbox]:checked {
    background-color: lightblue;
}

input[type=checkbox]:checked:after {
    margin-left: 4.3mm;
    margin-top: -0.4mm;
    width: 3mm;
    height: 10mm;
    border: solid white;
    border-width: 0 2mm 2mm 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    content: "";
    display: inline-block;
}
<label><input type="checkbox"> Test</label>

Ảnh chụp màn hình:

Trình duyệt Chrome: nhập mô tả hình ảnh ở đây

Firefox: nhập mô tả hình ảnh ở đây

Cạnh: nhập mô tả hình ảnh ở đây

I E: nhập mô tả hình ảnh ở đây


8

Tôi đang tìm cách tạo một hộp kiểm chỉ lớn hơn một chút và xem mã nguồn của Basecamp 37Signals để tìm giải pháp sau đây-

Bạn có thể thay đổi kích thước phông chữ để làm cho hộp kiểm lớn hơn một chút:

font-size: x-large;

Sau đó, bạn có thể căn chỉnh hộp kiểm đúng cách bằng cách thực hiện:

vertical-align: top;
margin-top: 3px; /* change to center it */

3
cỡ chữ dường như không ảnh hưởng đến kích thước của hộp kiểm thực tế
Michael

Không làm việc cho tôi
Amirhossein Tarmast

6

Bạn có thể làm cho các hộp kiểm lớn hơn trong Safari - thường chống lại các cách tiếp cận thông thường - với thuộc tính này: -webkit-transform: scale(1.3, 1.3);

Nguồn


6

Tôi nghĩ rằng giải pháp đơn giản nhất là định kiểu lại hộp kiểm như một số người dùng đề xuất. CSS bên dưới đang hoạt động với tôi, chỉ yêu cầu một vài dòng CSS và trả lời câu hỏi OP:

input[type=checkbox] {
    -webkit-appearance: none;
    -moz-appearance: none;
    vertical-align: middle;
    width: 14px; 
    height: 14px;
    font-size: 14px;
    background-color: #eee;
}

input[type=checkbox]:checked:after {
    position: relative;
    bottom: 3px;
    left: 1px;
    color: blue;
    content: "\2713"; /* check mark */
}

Như đã đề cập trong bài đăng này, thuộc tính thu phóng dường như không hoạt động trên Firefox và các biến đổi có thể gây ra các hiệu ứng không mong muốn.

Đã thử nghiệm trên Chrome và Firefox, nên hoạt động cho tất cả các trình duyệt hiện đại. Chỉ cần thay đổi các thuộc tính (màu sắc, kích thước, dưới cùng, bên trái, v.v.) theo nhu cầu của bạn. Hy vọng nó giúp!


5

Tôi hiểu rằng điều này không dễ chút nào để làm trình duyệt chéo. Thay vì cố gắng thao túng kiểm soát hộp kiểm, bạn luôn có thể xây dựng triển khai của riêng mình bằng cách sử dụng hình ảnh, javascript và các trường nhập ẩn. Tôi cho rằng điều này tương tự với những điều tốt đẹp là gì (từ câu trả lời của Stomsu lovy ở trên), nhưng sẽ không đặc biệt khó thực hiện. Tôi tin rằng jQuery cũng có một plugin để cho phép hành vi tùy chỉnh này (sẽ tìm liên kết và đăng ở đây nếu tôi có thể tìm thấy nó).


3

Tôi thấy thư viện chỉ dành cho CSS này rất hữu ích: https://lokesh-coder.github.io/pretty-checkbox/

Hoặc, bạn có thể tự cuộn với khái niệm cơ bản tương tự, tương tự như những gì @Sharcoux đã đăng. Về cơ bản là:

  • Ẩn hộp kiểm bình thường (độ mờ 0 và đặt nơi nó sẽ đi)
  • Thêm hộp kiểm giả dựa trên css
  • Sử dụng input:checked~div labelcho phong cách đã kiểm tra
  • hãy chắc chắn rằng bạn <label>có thể nhấpfor=yourinputID

.pretty {
  position: relative;
  margin: 1em;
}
.pretty input {
  position: absolute;
  left: 0;
  top: 0;
  min-width: 1em;
  width: 100%;
  height: 100%;
  z-index: 2;
  opacity: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.pretty-inner {
  box-sizing: border-box;
  position: relative;
}
.pretty-inner label {
  position: initial;
  display: inline-block;
  font-weight: 400;
  margin: 0;
  text-indent: 1.5em;
  min-width: calc(1em + 2px);
}
.pretty-inner label:after,
.pretty-inner label:before {
  content: '';
  width: calc(1em + 2px);
  height: calc(1em + 2px);
  display: block;
  box-sizing: border-box;
  border-radius: 0;
  border: 1px solid transparent;
  z-index: 0;
  position: absolute;
  left: 0;
  top: 0;
  background-color: transparent;
}
.pretty-inner label:before {
  border-color: #bdc3c7;
}
.pretty input:checked~.pretty-inner label:after {
  background-color: #00bb82;
  width: calc(1em - 6px);
  height: calc(1em - 6px);
  top: 4px;
  left: 4px;
}


/* Add checkmark character style */
.pretty input:checked~.pretty-inner.checkmark:after {
  content: '\2713';
  color: #fff;
  position: absolute;
  font-size: 0.65em;
  left: 6px;
  top: 3px;
}



body {
  font-size: 20px;
  font-family: sans-serif;
}
<div class="pretty">
	<input type="checkbox" id="demo" name="demo">
	<div class="pretty-inner"><label for="demo">I agree.</label></div>
</div>

<div class="pretty">
	<input type="checkbox" id="demo" name="demo">
	<div class="pretty-inner checkmark"><label for="demo">Please check the box.</label></div>
</div>


3

Vấn đề là Firefox không nghe chiều rộng và chiều cao. Vô hiệu hóa điều đó và tốt của bạn để đi.

input[type=checkbox] {
    width: 25px;
    height: 25px;
    -moz-appearance: none;
}
<label><input type="checkbox"> Test</label>


3

Các câu trả lời khác cho thấy một hộp kiểm pixel, trong khi tôi muốn một cái gì đó đẹp. Kết quả trông như thế này: xem trước hộp kiểm

Mặc dù phiên bản này phức tạp hơn nhưng tôi nghĩ nó đáng để thử.

.checkbox-list__item {
  position: relative;
  padding: 10px 0;
  display: block;
  cursor: pointer;
  margin: 0 0 0 34px;
  border-bottom: 1px solid #b4bcc2;
}
.checkbox-list__item:last-of-type {
  border-bottom: 0;
}

.checkbox-list__check {
  width: 18px;
  height: 18px;
  border: 3px solid #b4bcc2;
  position: absolute;
  left: -34px;
  top: 50%;
  margin-top: -12px;
  transition: border .3s ease;
  border-radius: 5px;
}
.checkbox-list__check:before {
  position: absolute;
  display: block;
  width: 18px;
  height: 22px;
  top: -2px;
  left: 0px;
  padding-left: 2px;
  background-color: transparent;
  transition: background-color .3s ease;
  content: '\2713';
  font-family: initial;
  font-size: 19px;
  color: white;
}

input[type="checkbox"]:checked ~ .checkbox-list__check {
  border-color: #5bc0de;
}
input[type="checkbox"]:checked ~ .checkbox-list__check:before {
  background-color: #5bc0de;
}
<label class="checkbox-list__item">
  <input class="checkbox_buttons" type="checkbox" checked="checked" style="display: none;">
  <div class="checkbox-list__check"></div>
</label>

Mã thông báo: https://jsfiddle.net/asbd4hpr/


0

bạn có thể đo chiều cao và chiều rộng trong đoạn mã dưới đây

.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 20px;
    width: 20px;
    border-radius:5px;
    border:1px solid #ff7e02;
}
<div class="check">

     <label class="container1">Architecture/Landscape
										  

    <input type="checkbox" checked="checked">
										  

    <span class="checkmark"></span>
								 

	</label>
</div>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.