J'ai utilisé le bouton de l'interface utilisateur jQuery sur toute ma page, mais je n'ai pas trouvé de moyen de contourner ce qui semble être un problème simple. Je veux que certains de mes boutons soient plus petits que les autres, ce qui devrait être aussi simple que de définir le CSS du texte du bouton à quelque chose comme, font: .8em;
<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>
Donc, si j’ai un <button class="small-button">Small button!</button>
, jQuery placera le texte dans un span enfant. Toute taille de police donnée à la classe small-button
sera ignorée.
Il doit y avoir un moyen de contourner ce problème sans s'interroger sur la façon dont jQuery fabrique ses boutons. Des idées?
Si vous appelez directement ui-button-text
avec font-size
, vous pouvez le remplacer à un niveau supérieur en appliquant! Important. Tel que:
.small-button {
font-size: .8em !important;
}
EDIT: essayez de définir un style CSS directement sur .ui-button-text
pour hériter:
.ui-button-text {
font-size: inherit !important;
}
Cela devrait également rendre le! Important sur le .small-button
non pertinent.
Cela a contribué à réduire la hauteur du bouton pour moi (le thème par défaut de Smoothhness est line-height de 1,4):
.ui-button .ui-button-text
{
line-height: 1.0;
}
Voici ce que j'utilise dans mes sites Web pour configurer les tailles de police de manière à ce que la taille de mes boutons soit identique à celle du site Web jQuery UI . Cela fonctionne parce que c'est exactement comme le site Web jQuery UI le fait!
/* 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;
}
En définissant les propriétés de taille de police comme pour l'élément body, définir la taille de police pour tout le reste devient trivial comme 100% = 10px.
Faites attention à l'effet de cascade lorsque vous utilisez des pourcentages - le 100% d'un élément enfant sera égal à la taille de la police de l'élément parent.
Vous pouvez créer des boutons de tailles différentes en modifiant le remplissage de l'élément span contenu dans le balisage généré par jQuery, comme le suggère Tim.
Ce balisage/JavaScript ...
$(document).ready(function(){
$("button").button();
});
<button id="some-id" class="some-class">Some Button</button>
Résultats dans ce balisage transformé ...
<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>
Ce qui inclut très certainement les balises id
et class
fournies à l'origine. Vous pouvez modifier la taille de vos boutons en ajoutant davantage de remplissage à l'élément span.ui-button-text
.
Ainsi..
button#some-id .ui-button-text {
/* padding values here to your liking */
}
Il suffit de changer le bouton taille de police;).
<asp:Button ID="btn2" runat="server" Text="Button" style="font-size:10px" />
Maintenant, ajoutez un script jQuery au bouton
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('input:submit, #btn2').button();
});
</script>
Bonne chance. ;)
J'ai utilisé une combinaison de deux suggestions ci-dessus. Il est assez facile de modifier l'interface utilisateur comme je l'aime.
Dans la feuille de style de la page, ajoutez:
.ui-button .ui-button-text
{
padding: 0px 11px 0px 21px !important;
font-size: .72em !important;
}
Ma solution devait également fonctionner avec les nouveaux éléments de menu.
Le premier à sélectionner les éléments correspondants pour le menu et le bouton
.menu>.ui-button-icon-only,
.ui-button{
font-size:0.8em !important;
}
Et le second comme ci-dessus pour forcer l'héritage
.ui-button-text {
font-size: inherit !important;
}
J'ai fait ça et ça marche bien.
$( "button" ).button("font-size", "0.8em");
<input type="submit" value="Mostrar imágenes">
et mon css:
input[type="submit"] {
color: #000;
border: 0 none;
cursor: pointer;
height: 30px;
width: 150px; }
Utilisez jQuery au moment de l'exécution, sans modifier CSS. Cela vous donne beaucoup plus de flexibilité.
$(function() {
$("input[type=button]").css("font-size", "0.8em");
});