2010-08-01 12 views
49

Ho utilizzato il pulsante dell'interfaccia utente jQuery su tutta la pagina, tuttavia non ho trovato il modo di aggirare quello che sembra essere un problema semplice. Voglio un po 'dei miei pulsanti per essere più piccolo rispetto agli altri, questo dovrebbe essere semplice come l'impostazione del CSS del testo del pulsante a qualcosa di simile, font: .8em; Tuttavia jQuery UI prende il vostro elemento DOM e lo avvolge:Modifica delle dimensioni del pulsante dell'interfaccia utente jQuery?

<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"> 
    <span class="ui-button-text">Button Label</span> 
</button> 

Così se ho un <button class="small-button">Small button!</button> jQuery posizionerà il testo in un intervallo figlio. Qualsiasi dimensione di carattere data alla classe small-button verrà ignorata.

Ci deve essere un modo per aggirare questo senza aver hackerato il modo in cui jQuery fa i suoi pulsanti. Qualche idea?

risposta

35

Se è in stile ui-button-text con font-size direttamente, è possibile sovrascriverlo a un livello superiore applicando! Importante. Come ad esempio:

.small-button { 
    font-size: .8em !important; 
} 

EDIT: provate ad impostare uno stile CSS direttamente sul .ui-button-text ereditare:

.ui-button-text { 
    font-size: inherit !important; 
} 

Questo dovrebbe anche fare l'importante sulla .small-button irrilevante!.

+0

questo non ha funzionato, purtroppo. La classe dei piccoli pulsanti è appesa all'elemento del pulsante e non sovrascrive l'intervallo interno. –

+0

Dai un'occhiata alla mia modifica, che potrebbe aiutarvi. Sarebbe utile vedere il tuo esempio completo in azione (con tutti i CSS ad esso applicati). Im andando a raccogliere che probabilmente stai usando un file CSS UI jQuery per il pulsante, questo potrebbe essere risolto modificando i CSS che direttamente per ottenere le vostre esigenze desiderati. – rickp

13

questo ha aiutato diminuire l'altezza del pulsante per me (scorrevolezza tema di default è line-height di 1.4):

.ui-button .ui-button-text 
{ 
line-height: 1.0; 
} 
5

È possibile creare diversi pulsanti di dimensioni modificando il padding dell'elemento arco che è contenuto all'interno del markup genera jQuery, come suggerisce Tim.

Questo markup/JavaScript ...

$(document).ready(function(){ 
    $("button").button(); 
}); 

<button id="some-id" class="some-class">Some Button</button> 

I risultati in questo markup trasformato ...

<button class="some-class ui-button ui-widget ui-state-default ui-corner-all 
      ui-button-text-only" id="some-id" role="button" aria-disabled="false"> 
<span class="ui-button-text">some button</span> 
</button> 

che comprende certamente il id e class tag che sono stati originariamente forniti. È possibile modificare le dimensioni dei pulsanti aggiungendo più padding all'elemento span.ui-button-text.

Come Quindi ..

button#some-id .ui-button-text { 
    /* padding values here to your liking */ 
} 
3

Basta cambiare il pulsante di font-size;).

<asp:Button ID="btn2" runat="server" Text="Button" style="font-size:10px" /> 

Ora aggiungere uno script jquery al pulsante

<script type="text/javascript" language="javascript"> 
     $(document).ready(function() { 
      $('input:submit, #btn2').button(); 
     }); 
    </script> 

Good Luck. ;)

+0

Quando si utilizza ID univoco elemento, il 'ingresso: Selettore submit' è in testa solo inutili .. –

3

Ho utilizzato una combinazione di due suggerimenti sopra. È abbastanza facile modificare l'interfaccia utente proprio come piace a me.

Per foglio di stile di pagina Aggiungi:

.ui-button .ui-button-text 
{ 
    padding: 0px 11px 0px 21px !important; 
    font-size: .72em !important; 
} 
6

Ecco quello che uso nei miei siti web per impostare i caratteri-dimensioni in modo che le mie dimensioni dei pulsanti sono le stesse sul jQuery UI website.Funziona perché è esattamente come lo fa lo jQuery UI website!

/* percentage to px scale (very simple) 
80% = 8px 
100% = 10px 
120% = 12px 
140% = 14px 
180% = 18px 
240% = 24px 
260% = 26px 
*/ 

body 
{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size:10px; 
} 

Impostando le proprietà font-size così per l'elemento di corpo, impostando la font-size per tutto il resto diventa banale come 100% = 10px.

Basta guardare fuori per l'effetto a cascata quando si utilizza percentuali - di un elemento figlio al 100% sarà pari al dell'elemento genitore font-size.

1

La mia soluzione necessaria per lavorare attraverso le nuove voci di menu, nonché

Il primo per selezionare gli elementi di corrispondenza sia per menu e il tasto

.menu>.ui-button-icon-only, 
.ui-button{ 
font-size:0.8em !important; 
} 

e il secondo come sopra per forzare inheiritance

.ui-button-text { 
font-size: inherit !important; 
} 
0

utilizzare jQuery in fase di esecuzione, senza modificare i CSS. Questo ti dà molta più flessibilità.

$(function() { 
    $("input[type=button]").css("font-size", "0.8em"); 
}); 
1

Ho fatto questo e funziona bene.

$("button").button("font-size", "0.8em"); 
+0

non credo che funzionerà. Ho provato con jQuery 1.11.2 e non è riuscito. Questo dovrebbe essere il modo corretto:. $ ("Bottone") apri un() css ("font-size", "0.8em"); –

0

<input type="submit" value="Mostrar imágenes">

e il mio css:

input[type="submit"] { 
color: #000; 
border: 0 none; 
cursor: pointer; 
height: 30px; 
width: 150px; } 
Problemi correlati