2012-06-07 3 views
7

Ich benutze Jquery Mobile, um eine Demo zu machen ... Ich möchte die Breite von Localnav 100% sein lassen ... aber ich weiß nicht, wie das geht ... Code hier ...Wie lassen Sie Jquery Mobile Controlgroup Breite 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> 

mir helfen, pls ... danke ...

Antwort

1

nicht sicher, warum Sie eine <ul> als Kontrollgruppe zu wickeln versuchen. Aber Sie können eine volle Breite Kontrollgruppe mit folgendem Ansatz:

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

Und in CSS, spaltete die Breite gleichmäßig auf die Anzahl der <a> Elemente:

a{width:33%;} 

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

Wenn Sie mit <ul> basierte Struktur fortfahren möchten; könnten Sie mit folgenden CSS voller Breite haben Kontrollgruppe:

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

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

+0

danke, es ist Arbeit – RogerWu

+0

froh, Hilfe zu sein. Könnten Sie die Antwort als akzeptiert markieren? –

+0

Nicht sehr elegant, funktioniert mit großen Bildschirmen, aber nicht pixelgenau. –

1

ich ein Gitter bin mit, dies zu tun, und eine zusätzliche CSS-Regel:

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

Der Grund Ich mache das ist, dass das Markup wie folgt ist:

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

Wird von jquery in m umgewandelt arkup wie folgt aus (inspizieren es in Chrome oder 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> 

Wie Sie sehen können, die .ui-btn wir wollen innerhalb 100% breit sein ist ui-block-a (oder ui-block-b, ui-block-c, etc.), und unsere horizontalen Steuer Gruppe hat die Klasse .ui-controlgroup-horizontal gewonnen, daher die Regel: .ui-btn Kinder von divs Kinder von .ui-controlgroup-horizontal sind (fast) 100% gemacht. Ich höre kurz vor 100% auf, weil dies die abgerundeten Ecken auf der rechten Seite für mich hackt. Wenn Sie .ui-controlgroup-horizontal für die oberste Klasse und nicht (sagen wir) ui-grid-a verwenden, funktioniert diese Regel für verschiedene Rastergrößen.

5

Werfen Sie einen Blick auf JQuery Mobile's navbar Obwohl es normalerweise in einer Kopf-/Fußzeile verwendet wird, kann es an anderer Stelle verwendet werden. Es wird eine Leiste voller Breite mit den Schaltflächen erstellt.

 <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

Hier ist, was ich getan habe. Gut gearbeitet.

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> 

Ergebnis: enter image description here

+1

Wenn Sie möchten, dass alle Ihre Links die gleiche Breite haben, können Sie sie (in Prozent) mit einem Ziel wie '.ui-controlgroup-controls a' einstellen (Sie müssen wahrscheinlich mehr Spezifität abhängig von Ihrem Markup geben) und füge 'box-sizing: border-box' hinzu, um ein Durcheinander mit den Breiten jedes Elements zu vermeiden. –