Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery mobile checkboxes grouped in 2 vertical columns?

I need to group checkbox together but in 2 columns. In the image below ive created 2 different fieldsets. I know this isnt very semantic but it displays the layout I want to achieve.

enter image description here

Is there a standard jQuery Mobile way to do this?

I want the checkboxes to look like they belong in one section. I could remove the rounded corder of green top left, pink bottom left and blue bottom right. Do I need to use standard CSS overrides for this or is there a more elegant way? Thanks

like image 636
Evanss Avatar asked Apr 26 '12 11:04

Evanss


2 Answers

I think you want to look at Layout Grids: http://jquerymobile.com/test/docs/content/content-grids.html

<div class="ui-grid-a">
    <div class="ui-block-a">
             <label><input type="checkbox" name="checkbox-1" /> Any</label>
             <label><input type="checkbox" name="checkbox-1" /> Red </label>
        </div>
    <div class="ui-block-b">
             <label><input type="checkbox" name="checkbox-1" /> Green </label>
             <label><input type="checkbox" name="checkbox-1" /> Black </label>
        </div>
</div><!-- /grid-a -->

UPDATE

Based on your comment, no you cannot have two separate columns grouped into one fieldset.

The data-role="controlgroup" on a fieldset removes the margins and padding to give the grouped effect, but what you end up with is something like this: http://jsfiddle.net/shanabus/qNYPh/1/

However, if you are ok with one parent fieldset and two nested, grouped, fieldsets... then you can end up with a solution like this: http://jsfiddle.net/shanabus/hcyfK/1/

like image 134
shanabus Avatar answered Oct 12 '22 07:10

shanabus


shanabus gave a good answer with his nested grouped solution: http://jsfiddle.net/shanabus/hcyfK/1/

You can take that one step further by setting/overriding the appropriate css 'border radius' values to zero for any corner you need to in order to get rid of the touching rounded corners and achieve a more consistent appearance.

As per the example:

<label for="radio-choice-1" style="border-top-right-radius: 0">Cat</label>
<label for="radio-choice-2" style="border-bottom-right-radius: 0">Dog</label>
<label for="radio-choice-3" style="border-top-left-radius: 0">Hamster</label>
<label for="radio-choice-4" style="border-bottom-left-radius: 0">Lizard</label>

Yes, I am a bad person because I didn't separate html & css but it's an example. :-)

like image 41
TK71 Avatar answered Oct 12 '22 08:10

TK71