2012-04-27 22 views
8

Por supuesto que sé que los elementos del formulario SELECT son difíciles de modificar y/o modificar más allá de los conceptos básicos.selección más pequeña y más bonita con bootstrap.css

Solo por curiosidad, ¿alguien sabe de una solución de arranque único (la de Twitter) que me permitiría afectar el tamaño del SELECT y tal vez incluso aplicar un degradado que se parece más a un botón de arranque (que la superficie áspera que tienen ahora).

No me importa curiosear con el CSS, pero pensé en preguntar antes de reinventar la rueda.

Cualquier puntero, enlace o sugerencia sería muy apreciada.

Respuesta

33

Puede usar mi jQuery plugin:

http://silviomoreto.github.com/bootstrap-select/

Es a su vez su selecto en un botón desplegable de arranque

+1

** Hola silvio, eso es realmente genial. ** Ese es el tipo de cosas que estoy buscando, muchas gracias. Si conoce algún otro elemento o adición de TWITTER-BOOTSTRAP-LIKE, hágamelo saber. ¡Muchas gracias! – Ace

+0

Ace, utilicé [timepicker] (http://jdewit.github.com/bootstrap-timepicker/) y [datepicker] (http://www.eyecon.ro/bootstrap-datepicker/) – silviomoreto

+0

Acabo de solucionar este problema y tengo una pregunta. Si compruebas tu DOM después de tener las CSS y JS necesarias y, por supuesto, aplicando la clase "selectpicker" en tu selección, verás que lo que hace este complemento es duplicar tus opciones de selector en una nueva DIV y luego se oculta su etiqueta de selección original ... ¿debería ser esto preocupante en algún momento? – Daniel

0
jQuery(function($){ 
     $('select').each(function(i, e){ 
      if (!($(e).data('convert') == 'no')) { 
       //$(e).hide().wrap('<div class="btn-group" id="select-group-' + i + '" />'); 
       $(e).after('<div class="btn-group" id="select-group-' + i + '" />'); 
       var select = $('#select-group-' + i); 
       var current = ($(e).val()) ? $(e).val(): '&nbsp;'; 
       select.html('<input type="hidden" value="' + $(e).val() + '" name="' + $(e).attr('name') + '" id="' + $(e).attr('id') + '" class="' + $(e).attr('class') + '" /><a class="btn" href="javascript:;">' + current + '</a><a class="btn dropdown-toggle" data-toggle="dropdown" href="javascript:;"><span class="caret"></span></a><ul class="dropdown-menu"></ul>'); 
       $(e).find('option').each(function(o,q) { 
        select.find('.dropdown-menu').append('<li><a href="javascript:;" data-value="' + $(q).attr('value') + '">' + $(q).text() + '</a></li>'); 
        if ($(q).attr('selected')) select.find('.dropdown-menu li:eq(' + o + ')').click(); 
       }); 
       select.find('.dropdown-menu a').click(function() { 
        select.find('input[type=hidden]').val($(this).data('value')).change(); 
        select.find('.btn:eq(0)').text($(this).text()); 
       }); 
       $(e).remove(); 
      } 
     }); 
    }); 
+4

Alguna explicación de su código ayudaría a los futuros usuarios – acattle

Cuestiones relacionadas