2010-11-09 11 views

Respuesta

86

En caso de que esto pueda ayudar a cualquiera, aquí está el simple CSS como punto de partida. Lo convierte en un cuadrado redondeado básico lo suficientemente grande para los pulgares con un color de fondo alternado.

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; 
} 
+2

Niza - Pero Chorme/Safari solamente - ¿no? – CodeBrauer

+0

@GabrielW Sí. Solo use el equivalente para los demás – taylorcressy

+0

@taylorcressy Excepto IE (también IE 11) http://caniuse.com/# search = Apariencia - pero funcionó bien para otros navegadores. ¡Gracias! – CodeBrauer

22

probar este CSS

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

No es totalmente entre navegadores (es mejor establecer una clase en HTML y usar el selector de clase en CSS), pero esta podría ser una solución mejor que la mía.+1 – Harmen

+0

Tenga en cuenta que esto hace que los controles de aspecto difusos en algunos navegadores como el control nativo que se escala es una imagen de tamaño fijo. – jball

+1

Estaba usando ancho y alto por ejemplo. Probablemente, una combinación de Harmen y mi solución es el camino a seguir, ya que es posible que necesite más estilo del que CSS puede proporcionar de forma razonable. –

2

Cambiar el tamaño de la casilla de verificación usando CSS produce resultados inconsistentes a través de navegadores y sistemas operativos. Realmente no puedes hacerlo más grande.

Puede cambiar el estilo de ellos, sin embargo: http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

+0

el enlace ya no funciona. –

1

Aquí hay un truco que funciona en la mayoría de los navegadores recientes (IE9 +) como CSS única solución que puede ser mejorada con javascript para apoyar IE8 y por debajo.

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

Estilo del label con lo que quiere la casilla de verificación para que parezca

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

JavaScript, usted será capaz de añadir clases a la etiqueta para mostrar el estado. Asimismo, sería aconsejable utilizar la siguiente función:

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

EDITAR para modificar #checkboxID estilos

+0

ver http://stackoverflow.com/a/3772914/190135 para un enlace al código fuente completo para esta técnica – AlexChaffee

0

estoy aplicación PhoneGap writtinga y casillas de verificación varían en tamaño, aspecto, etc. Así que hizo que mi propia simple casilla:

En primer lugar el código HTML:

<span role="checkbox"/> 

A continuación, el 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); 
} 

para alternar el estado casilla de verificación, he usado jQuery:

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

pero puede hacerse fácilmente sin ella ...

esperan que los pueda ayudar!

25

En realidad no es una manera de hacerlos más grandes, casillas de verificación al igual que cualquier otra cosa (incluso un iframe como un botón de Facebook).

envolverlos en un elemento de "zoom":

.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; 
    -webkit-transform-origin:0 0; 
} 

<div class="double"> 
    <input type="checkbox" name="hello" value="1"> 
</div> 

Puede parecer un poco "reescalado" pero funciona.

Por supuesto puede hacer que div flote: a la izquierda y coloque su etiqueta al lado, flote: a la izquierda también.

+0

Funciona bien, pero no en IE8 - IE9 + funciona;) – CodeBrauer

+0

Tenga en cuenta que en Firefox (a partir de la versión 36), esto da como resultado una apariencia muy borrosa. Sin embargo, se escala bien en Chrome. Demostración: http://jsfiddle.net/tzp858j3/ – Kat

+0

¿no hay una solución mejor que NO se vea a escala? – basZero

Cuestiones relacionadas