views:

24

answers:

1

I have a button set, and would like to set the width of each button so they can be the same size (i.e. if I have 4 buttons of 25% each of the element)

Basically the site has a table on the left, and within that table I have 4 options. The way it is right now is it's not using 100% of the left column, so it looks bad. I'm looking to make the button set take 100% of the column, and each button to share 25% of the fixed space.

I've tried to .css('width') each button element but it's not making a difference.

My code looks like something like this:

 <script type='text/javascript'>
  $( function() { $("#task-sort").buttonset();   } );
 </script>

 <div id='task-sort'>
  <input type='radio' name='task-sort' id='sort_all' checked><label for='sort_all'>All</label>
  <input type='radio' name='task-sort' id='sort_inc'><label for='sort_inc'>Incomplete</label>
  <input type='radio' name='task-sort' id='sort_com'><label for='sort_com'>Completed</label>
 </div>
+1  A: 

You can do it like this:

$("#task-sort").buttonset().find('label').css('width', '25%');​​​​​​​​​​​​​​​​

After .buttonset() your html looks like this:

<div id="task-sort" class="ui-buttonset">
  <input type="radio" name="task-sort" id="sort_all" checked="" class="ui-helper-hidden-accessible">
  <label for="sort_all" class="ui-state-active ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left" aria-pressed="true" role="button" aria-disabled="false"><span class="ui-button-text">All</span></label>
  <input type="radio" name="task-sort" id="sort_inc" class="ui-helper-hidden-accessible">
  <label for="sort_inc" aria-pressed="false" class="ui-button ui-widget ui-state-default ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Incomplete</span></label>
  <input type="radio" name="task-sort" id="sort_com" class="ui-helper-hidden-accessible">
  <label for="sort_com" aria-pressed="false" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right" role="button" aria-disabled="false"><span class="ui-button-text">Completed</span></label>
 </div>

Then you just need to set the width on those newly created <label> elements to get the effect you want, you can try out a demo here.

Nick Craver
Thanks Nick, I doubt any answer can be better than this one. Short and sweet, does exactly what I wanted!
ruinernix