2012-06-07 11 views
7

estoy usando jquery mobile para hacer una demostración ... quiero dejar que el ancho de localnav sea 100% ... pero no sé cómo hacer eso ... código aquí ...cómo dejar que 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> 

ayuda pls me ... gracias ...

Respuesta

1

No sé por qué usted está tratando de envolver una <ul> como grupo control. Sin embargo, se puede tener un grupo control de ancho completo con el siguiente enfoque:

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

Y en CSS, dividir el ancho en partes iguales entre el número de <a> elementos: jsFiddle

a{width:33%;} 

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

Si desea continuar con la estructura basada en <ul>; usted podría tener grupo control de ancho total con CSS siguiente: jsFiddle

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

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

+0

gracias, es un trabajo – RogerWu

+0

encantados de ser de ayuda. ¿podría marcar la respuesta como aceptada? –

+0

No es muy elegante, funciona con pantallas anchas, pero no tiene un píxel perfecto. –

1

estoy usando una cuadrícula para hacer esto, y una regla CSS extra:

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

La razón Estoy haciendo esto es que el marcado de esta manera:

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

Es transformado por jquery en m arkup como esto (inspeccionarlo en 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> 

Como se puede ver, el .ui-btn queremos ser 100% ancha es el interior ui-block-a (o ui-block-b, ui-block-c, etc.), y nuestro control horizontal grupo ha ganado la clase .ui-controlgroup-horizontal, de ahí la regla: .ui-btn hijos de divs hijos de .ui-controlgroup-horizontal están hechos (casi) 100%. Me detengo a menos del 100% porque esto corta las esquinas redondeadas en el botón de la derecha para mí. Al usar .ui-controlgroup-horizontal en la clase superior y no (por ejemplo) ui-grid-a, esta regla funciona para diferentes tamaños de cuadrícula.

5

Eche un vistazo a JQuery Mobile's navbar Aunque normalmente se usa en un encabezado/pie de página, se puede usar en cualquier otro lugar. Producirá una barra de ancho completo que contiene tus botones.

 <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

Esto es lo que hice. Funcionado bien.

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> 

Resultado: enter image description here

+1

Si necesita que todos sus enlaces tengan el mismo ancho, puede configurarlo (en porcentaje) con un objetivo como '.ui-controlgroup-controls a' (probablemente tendrá que dar más especificidad dependiendo de su marcado) y agregue 'box-sizing: border-box' para evitar jugar con los anchos de cada elemento. –

Cuestiones relacionadas