Isso é difícil de executar em vários navegadores. Roger Johansson investigou isso bastante extensivamente.
Cristian Libardo
Lendo todos os comentários - existe uma maneira muito simples de fazer isso sem envolver CSS: <input type = "checkbox" name = "checkboxName" value = "on" style = "width: 110%; height: 110%">
É um pouco feio (devido à expansão), mas funciona na maioria dos navegadores mais recentes:
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;}
esta parece ser a resposta correta, pois a que está marcada como resposta não oferece soluções em muitos casos (nenhuma solução para o firefox no xp? nenhum chrome?), está desatualizada e contém apenas um link e um comentário de pouco valor.
Nurettin
4
@jdw +1 para esta resposta e até eu tive a necessidade de fazer isso e sua resposta foi útil. Mas, de alguma forma, acho que a caixa de seleção 'redimensionada' aparece um pouco distorcida. Não sei se isso é uma coisa do FF ou do meu sistema operacional (Ubuntu 12.04). Obrigado mesmo assim :)
itsols
1
a scale () precisa de 2 parâmetros para chrome, FF e IE, eu acho. Portanto, se você mudar todas as escalas para a escala (2,2), ele deverá funcionar em todos os navegadores.
Onur Topal
10
adicione transform: scale(2);também, para garantir mais por qualquer navegador
Adriano Resende
8
a escala parece horrível, na escala 2 você já vê os pixels individuais. Eu nunca escolheria esta solução para belas caixas de seleção de css grandes.
precisa saber é o seguinte
369
Solução de trabalho para todos os navegadores modernos.
@ Huangismo Não, o código acima não terá nenhum efeito no IE 8, que não suporta a transformpropriedade. O IE 9 suporta os -ms-transformquais você pode usar, no entanto, alguns dizem que é bastante pixelizado; portanto, é melhor deixar o IE 9 com o padrão.
Simon East
A abordagem acima não é ruim, porque há um limite de escala, pois faz com que a caixa de seleção seja pixelizada.
É meio interessante que a Mozilla o desanime, enquanto o Firefox é quase o único navegador que não suporta: caniuse.com/#feat=css-zoom
ndreisg
47
Versão 2020 - usando pseudoelementos, o tamanho depende do tamanho da fonte.
A caixa de seleção / rádio padrão é renderizada fora da tela, mas o CSS cria elementos virtuais muito semelhantes aos elementos padrão. Suporta todos os navegadores, sem desfoque. Tamanho depende do tamanho da fonte. Ações de teclado (espaço, guias) também são suportadas.
Obviamente, graças a isso, você pode alterar o valor de acordo contentcom as suas necessidades e usar uma imagem, se desejar ou usar outra fonte ...
O principal interesse aqui é que:
O tamanho da caixa de seleção permanece proporcional ao tamanho do texto
Você pode controlar o aspecto, a cor, o tamanho da caixa de seleção
Não é necessário HTML extra!
São necessárias apenas 3 linhas de CSS (a última é apenas para lhe dar ideias)
Editar : como indicado no comentário, a caixa de seleção não será acessível pela navegação por teclas. Você provavelmente deve adicionar tabindex=0como uma propriedade ao seu rótulo para torná-lo focável.
@robertjd concordou, estava confuso sobre por que isso seria necessário para um simples transformar
Neil Chowdhury
@robertjd Essas nem são caixas de seleção; eles são alternadores.
TylerH
14
A aparência das caixas de seleção parece estar corrigida por padrão. Mas, como apontado por Worthy7, isso pode ser corrigido usando a propriedade CSSappearance . Isso deixará as caixas de seleção completamente vazias, para que você possa definir sua própria aparência. O que é interessante sobre isso: você pode usar seu código HTML existente. Desvantagem: É uma tecnologia experimental . Edge e IE não usam o estilo personalizado.
font-size não parece afetar o tamanho da caixa de seleção real em tudo
Michael
Não funcionou para mim
Amirhossein Tarmast 30/12/19
6
Você pode aumentar as caixas de seleção no Safari - que geralmente é resistente às abordagens usuais - com este atributo: -webkit-transform: scale(1.3, 1.3);
Eu acho que a solução mais simples é mudar o estilo da caixa de seleção, como sugerem alguns usuários. O CSS abaixo está funcionando para mim, requer apenas algumas linhas de CSS e responde à pergunta do OP:
Conforme mencionado nesta postagem, a propriedade zoom parece não funcionar no Firefox e as transformações podem causar efeitos indesejados.
Testado no Chrome e Firefox, deve funcionar para todos os navegadores modernos. Basta alterar as propriedades (cores, tamanho, fundo, esquerda, etc.) de acordo com suas necessidades. Espero que ajude!
Meu entendimento é que isso não é nada fácil de executar em vários navegadores. Em vez de tentar manipular o controle da caixa de seleção, você sempre pode criar sua própria implementação usando imagens, javascript e campos de entrada ocultos. Estou assumindo que isso é semelhante ao que são boas formas (da resposta de Staicu lonut acima), mas não seria particularmente difícil de implementar. Acredito que o jQuery também tenha um plug-in para permitir esse comportamento personalizado (procurará o link e publicará aqui, se possível).
style=
tag é CSS ...Respostas:
É um pouco feio (devido à expansão), mas funciona na maioria dos navegadores mais recentes:
fonte
transform: scale(2);
também, para garantir mais por qualquer navegadorSolução de trabalho para todos os navegadores modernos.
Compatibilidade:
Aparência:
fonte
transform
propriedade. O IE 9 suporta os-ms-transform
quais você pode usar, no entanto, alguns dizem que é bastante pixelizado; portanto, é melhor deixar o IE 9 com o padrão.Uma solução fácil é usar a propriedade
zoom
:fonte
Versão 2020 - usando pseudoelementos, o tamanho depende do tamanho da fonte.
A caixa de seleção / rádio padrão é renderizada fora da tela, mas o CSS cria elementos virtuais muito semelhantes aos elementos padrão. Suporta todos os navegadores, sem desfoque. Tamanho depende do tamanho da fonte. Ações de teclado (espaço, guias) também são suportadas.
https://jsfiddle.net/ohf7nmzy/2/
Versão 2017 - usando zoom ou escala
O navegador usará o
zoom
recurso não padrão se for suportado (boa qualidade) ou padrãotransform: scale
(embaçado).O dimensionamento funciona em todos os navegadores, mas fica embaçado no Firefox e Safari .
https://jsfiddle.net/ksvx2txb/11/
fonte
Acabei de sair com isso:
Obviamente, graças a isso, você pode alterar o valor de acordo
content
com as suas necessidades e usar uma imagem, se desejar ou usar outra fonte ...O principal interesse aqui é que:
O tamanho da caixa de seleção permanece proporcional ao tamanho do texto
Você pode controlar o aspecto, a cor, o tamanho da caixa de seleção
Não é necessário HTML extra!
São necessárias apenas 3 linhas de CSS (a última é apenas para lhe dar ideias)
Editar : como indicado no comentário, a caixa de seleção não será acessível pela navegação por teclas. Você provavelmente deve adicionar
tabindex=0
como uma propriedade ao seu rótulo para torná-lo focável.fonte
display:none
a entrada impedirá que ela seja selecionada com atab
chave, então não acho que seja uma boa ideia.Visualização:
http://jsfiddle.net/h4qka9td/
fonte
A aparência das caixas de seleção parece estar corrigida por padrão. Mas, como apontado por Worthy7, isso pode ser corrigido usando a propriedade CSS
appearance
. Isso deixará as caixas de seleção completamente vazias, para que você possa definir sua própria aparência. O que é interessante sobre isso: você pode usar seu código HTML existente. Desvantagem: É uma tecnologia experimental . Edge e IE não usam o estilo personalizado.Aqui estão os estilos CSS necessários:
Imagens:
Cromada:
Raposa de fogo:
Beira:
IE:
fonte
Eu estava procurando fazer uma caixa de seleção um pouco maior e procurei o código-fonte do 37Signals Basecamp para encontrar a seguinte solução-
Você pode alterar o tamanho da fonte para tornar a caixa de seleção um pouco maior:
Em seguida, você pode alinhar a caixa de seleção corretamente, executando:
fonte
Você pode aumentar as caixas de seleção no Safari - que geralmente é resistente às abordagens usuais - com este atributo:
-webkit-transform: scale(1.3, 1.3);
Fonte
fonte
Eu acho que a solução mais simples é mudar o estilo da caixa de seleção, como sugerem alguns usuários. O CSS abaixo está funcionando para mim, requer apenas algumas linhas de CSS e responde à pergunta do OP:
Conforme mencionado nesta postagem, a propriedade zoom parece não funcionar no Firefox e as transformações podem causar efeitos indesejados.
Testado no Chrome e Firefox, deve funcionar para todos os navegadores modernos. Basta alterar as propriedades (cores, tamanho, fundo, esquerda, etc.) de acordo com suas necessidades. Espero que ajude!
fonte
Meu entendimento é que isso não é nada fácil de executar em vários navegadores. Em vez de tentar manipular o controle da caixa de seleção, você sempre pode criar sua própria implementação usando imagens, javascript e campos de entrada ocultos. Estou assumindo que isso é semelhante ao que são boas formas (da resposta de Staicu lonut acima), mas não seria particularmente difícil de implementar. Acredito que o jQuery também tenha um plug-in para permitir esse comportamento personalizado (procurará o link e publicará aqui, se possível).
fonte
Achei esta biblioteca somente CSS muito útil: https://lokesh-coder.github.io/pretty-checkbox/
Ou você pode criar o seu próprio com esse mesmo conceito básico, semelhante ao que o @Sharcoux postou. É basicamente:
input:checked~div label
para o estilo verificado<label>
clicável usandofor=yourinputID
fonte
O problema é que o Firefox não escuta largura e altura. Desative isso e você estará pronto.
fonte
As outras respostas mostraram uma caixa de seleção pixelizada, enquanto eu queria algo bonito. O resultado fica assim:
Embora esta versão seja mais complicada, acho que vale a pena tentar.
JSFiddle: https://jsfiddle.net/asbd4hpr/
fonte
você pode alterar a altura e a largura no código abaixo
fonte