2012-06-07 10 views
7

Używam jquery mobile do zrobienia demo ... Chcę pozwolić szerokości localnav być 100% ... , ale nie wiem jak to zrobić ... kod tutaj ...jak zezwolić na jquery mobile controlgroup width 100%?

<ul data-role="controlgroup" data-type="horizontal" class="localnav"> 
    <li><a href="#" data-role="button" data-transition="fade" class="ui-btn-active">111</a></li> 
    <li><a href="#" data-role="button" data-transition="fade">222</a></li> 
    <li><a href="#" data-role="button" data-transition="fade">333</a></li> 
</ul> 

help me pls ... dziękuję ...

Odpowiedz

1

Nie wiem, dlaczego próbujesz zawinąć <ul> jako controlgroup. Ale można mieć pełnej szerokości ControlGroup z następującym podejściu:

<div data-role="controlgroup" data-type="horizontal" class="localnav"> 
    <a href="#" data-role="button" data-transition="fade" class="ui-btn-active">111</a> 
    <a href="#" data-role="button" data-transition="fade">222</a> 
    <a href="#" data-role="button" data-transition="fade">333</a> 
</div> 

A w CSS, podzielić szerokość równo między liczbą <a> elementów: jsfiddle

a{width:33%;} 

Próbka: http://jsfiddle.net/pAuqm/1/

Jeśli chcesz kontynuować ze strukturą opartą na <ul>; można mieć całą szerokość controlgroup z następującym CSS: jsfiddle

li{ 
    display: inline; 
} 
a{width:33%;} 

Próbka: http://jsfiddle.net/pAuqm/3/

+0

dziękuję, to praca – RogerWu

+0

rad być pomocne. czy możesz oznaczyć odpowiedź jako zaakceptowaną? –

+0

Niezbyt elegancki, działa z szerokimi ekranami, ale nie jest idealny w pikselach. –

1

używam siatki, aby to zrobić, i jedna dodatkowa reguła CSS:

.ui-controlgroup-horizontal > div > .ui-btn { 
    width: 99% 
}​​​​​​​​​ 

Powód Robię to tak, że znaczniki takie jak to:

<div class="ui-grid-a" data-role="controlgroup" data-type="horizontal"> 
    <div class="ui-block-a"> 
     <button type="submit" data-theme="c">Cancel</button> 
    </div> 
    <!-- etc --> 
</div> 

Jest przekształcany przez jquery na m arkup tak (sprawdzać go w Chrome lub Firebug):

<div class="ui-grid-a ui-corner-all 
     ui-controlgroup ui-controlgroup-horizontal" 
     data-role="controlgroup" data-type="horizontal"> 
     <div class="ui-block-a"> 
      <div data-corners="true" data-shadow="true" 
      data-iconshadow="true" data-inline="null" 
      data-wrapperels="span" data-icon="null" data-iconpos="null" 
      data-theme="c" data-mini="false" 
      class="ui-btn ui-btn-up-c ui-corner-left" 
      aria-disabled="false"> 
       <span class="ui-btn-inner ui-corner-left"> 
        <span class="ui-btn-text">Cancel</span> 
       </span> 
       <button type="submit" data-theme="c" class="ui-btn-hidden" aria-disabled="false">Cancel</button> 
      </div> 
     </div> 
     <!-- etc --> 
    </div> 

Jak widać, .ui-btn chcemy mieć 100% szerokości jest wewnątrz ui-block-a (lub ui-block-b, ui-block-c, itd.), a nasza kontrola pozioma grupa zyskała klasę .ui-controlgroup-horizontal, stąd zasada: .ui-btn dzieci divs dzieci .ui-controlgroup-horizontal są wykonane (prawie) 100%. Zatrzymuję się na poziomie 100%, ponieważ powoduje to przesuwanie zaokrąglonych rogów po prawej stronie przycisku. Korzystając z klasy .ui-controlgroup-horizontal w najwyższej klasie, a nie (powiedzmy) ui-grid-a, ta zasada działa dla różnych rozmiarów siatki.

5

Spójrz na JQuery Mobile's navbar Chociaż zwykle jest używany w nagłówku/stopce, może być używany gdzie indziej. Wytworzy pasek o pełnej szerokości zawierający twoje przyciski.

 <div data-role="navbar"> 
      <ul> 
       <li><a href="#" data-icon="plus" data-role="button">Button1</a></li> 
       <li><a href="#" data-icon="minus" data-role="button">Button2</a></li> 
       <li><a href="#" data-icon="check" data-role="button">Button3</a></li> 
      </ul> 
     </div> 
5

Oto co zrobiłem. Działało dobrze.

CSS:

<style> 
    .ui-grid-a, .ui-grid-a .ui-controlgroup-controls {width: 100%} 
    #homePageButton {width:49%;float:left;margin-left:1%} 
    #logOutButton {width:49%} 
    #footer {height:45px} 
</style> 

HTML:

<div data-role="footer" data-position="fixed" id="footer"> 
    <div data-role="controlgroup" data-type="horizontal" class="ui-grid-a"> 
     <a href="#" data-role="button" data-icon="home" id="homePageButton">Home Page</a> 
     <a href="#" data-role="button" data-icon="forward" data-iconpos="right" id="logOutButton">Log Out</a> 
    </div> 
</div> 

Wynik: enter image description here

+1

Jeśli potrzebujesz, aby wszystkie twoje linki miały tę samą szerokość, możesz ustawić (w procentach) cel, taki jak '.ui-controlgroup-kontroluje a' (będziesz prawdopodobnie musiał podać więcej specyficzności w zależności od twojego znacznika) i dodaj 'box-sizing: border-box', aby uniknąć bałaganu przy szerokości każdego elementu. –

Powiązane problemy