2012-06-07 59 views
7

我正在使用jquery手機做一個演示... 我想讓寬度的localnav是100%... 但我不知道該怎麼做... 代碼在這裏...如何讓jquery mobile controlgroup的寬度達到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> 

幫我請...謝謝...

回答

1

不知道爲什麼你想換一個<ul>作爲controlgroup。但是你可以有一個全寬ControlGroup用下面的方法:

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

而且在CSS,分裂之中<a>元素的數量同樣寬度:

a{width:33%;} 

樣品的jsfiddle:http://jsfiddle.net/pAuqm/1/

如果您想繼續使用基於<ul>的結構;你可以有全寬controlgroup與下面的CSS:

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

樣品的jsfiddle:http://jsfiddle.net/pAuqm/3/

+0

謝謝你,它的工作 – RogerWu

+0

高興能有所幫助。你能將答案標記爲已接受嗎? –

+0

不是很優雅,適用於寬屏幕,但不是完美的像素。 –

1

我使用一個網格,做到這一點,和一個額外的CSS規則:

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

原因我這樣做是這樣的標記:

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

被jquery轉換成m arkup像這樣(檢查它在Chrome或螢火蟲):

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

正如你所看到的,我們希望成爲寬100%的.ui-btn裏面ui-block-a(或ui-block-bui-block-c等),和我們的水平控制組獲得.ui-controlgroup-horizontal,因此規則:.ui-btndivs子女.ui-controlgroup-horizontal的子女被製成(幾乎)100%。我停止了100%,因爲這爲我打了右手邊的圓角。通過在頂級類別上使用.ui-controlgroup-horizontal,而不是(比如)ui-grid-a,此規則適用於不同的網格大小。

5

看看JQuery Mobile's navbar 雖然它通常用在頁眉/頁腳中,但它可以在其他地方使用。它會生成一個包含按鈕的全寬條。

 <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

這就是我所做的。工作得很好。

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> 

結果: enter image description here

+1

如果你需要所有的鏈接寬度相同,你可以用'.ui-controlgroup-controls a'這樣的目標來設置它(以百分比形式)(你可能需要根據你的標記給出更多的特異性)和添加'box-sizing:border-box'來避免與每個元素的寬度相混淆。 –