2012-06-07 12 views
7

sto usando jquery mobile per fare una demo ... voglio lasciare che la larghezza di localnav sia 100% ... ma non so come farlo ... codice qui ...come lasciare jquery mobile controlgroup larghezza 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> 

aiuto me pls ... ti ringrazio ...

risposta

1

Non certo perché si sta cercando di avvolgere una <ul> come controllo alimentati. Ma si può avere un controllo alimentati a tutta larghezza con il seguente approccio:

<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> 

E in CSS, dividere la larghezza equamente tra il numero di <a> elementi:

a{width:33%;} 

Esempio jsfiddle: http://jsfiddle.net/pAuqm/1/

Se si desidera continuare con la struttura basata su <ul>; si potrebbe avere pieno controllo alimentati con larghezza seguente CSS:

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

Esempio jsfiddle: http://jsfiddle.net/pAuqm/3/

+0

ringraziamento, è un lavoro – RogerWu

+0

felice di essere di aiuto. potresti contrassegnare la risposta come accettata? –

+0

Non molto elegante, funziona con schermi larghi ma non pixel perfetti. –

1

Sto utilizzando una griglia per fare questo, e una regola CSS in più:

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

La ragione Sto facendo questo è che il markup in questo modo:

<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> 

Viene trasformato da jquery in m arkup come questo (esaminarlo in Chrome o 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> 

Come si può vedere, la .ui-btn vogliamo essere larga 100% è dentro ui-block-a (o ui-block-b, ui-block-c, ecc), e il nostro controllo orizzontale gruppo ha guadagnato la classe .ui-controlgroup-horizontal, quindi la regola: .ui-btn figli di divs bambini di .ui-controlgroup-horizontal sono fatti (quasi) al 100%. Mi fermo al 100% perché questo mi riduce gli angoli arrotondati sul pulsante destro. Utilizzando .ui-controlgroup-horizontal sulla prima classe, e non (per esempio) ui-grid-a, questa regola funziona con diverse dimensioni della griglia.

5

Date un'occhiata a JQuery Mobile's navbar Anche se normalmente viene utilizzato in un'intestazione/piè di pagina, può essere utilizzato altrove. Produrrà una barra a larghezza piena contenente i pulsanti.

 <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

Ecco cosa ho fatto. Ha funzionato bene

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> 

Risultato: enter image description here

+1

Se hai bisogno che tutti i tuoi link abbiano la stessa larghezza, puoi impostarlo (in percentuale) con un target come '.ui-controlgroup-controls a' (probabilmente dovrai dare più specificità a seconda del tuo markup) e aggiungi 'dimensionamento della scatola: border-box' per evitare problemi con le larghezze di ciascun elemento. –