IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Objet button arrondi [CSS 2]


Sujet :

CSS

  1. #1
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 296
    Points
    7 296
    Par défaut Objet button arrondi
    Bonjour

    J'ai des objets buttons qui me serve à avoir la fonction submit sur les navigateurs.

    Ces objets buttons sont entouré de deux images qui servent a les arrondir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <img src="/img/green-btn-left.png" class="btn_left">
    <button type="submit" id="btn-user-submit" name="btn-user-submit" class="green-btn-content " onclick="">
      Save changes
    </button>
    <img src="/img/green-btn-right.png" class="btn_right">
    Seul problème, lorsque je clique sur les images, rien ne se passe.
    Existerait il un moyen pour les inclure dans le bouton ?
    J'ai essayer de les insérer et de réglere les marges pour les sortir de part et d'autre du bouton, mais alors ils redeviennent non cliquable.

    Je ne peux pas définir la taille des boutons puisque le texte varie à l'intérieur.
    Je ne vois pas vraiment comment faire autrement.
    Une idée ?

    Je ne trouve que des solutions à base de balise <a> sur internet et j'ai cette contrainte d'utiliser un objet <button>.

    Merci
    Pierre
    PS : compatible IE7 et supérieur.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Points : 349
    Points
    349
    Par défaut
    Salut,

    hum tu aurais une capture commenté ? parce que là j'ai du mal à visualiser l'ensemble

  3. #3
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 296
    Points
    7 296
    Par défaut
    Déjà voila le code CSS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    .btn_left { display: inline; float:left; }
    .btn_right { display: inline; float:left; }
     
    .grey-btn-content { 
        display: inline; 
        height:28px; 
        background:transparent url(/img/grey-btn-middle.png) repeat-x; 
        float:left; 
        padding: 0px; 
        margin: 0; 
        border:0 none;
        color:#666666;
        cursor: pointer;
    }
    .green-btn-content { 
        display: inline; 
        height:28px; 
        background:transparent url(/img/green-btn-middle.png) repeat-x; 
        float:left; 
        padding: 0px; 
        color:#FFF;
        border:0 none;
        cursor: pointer;
        margin:0px;
    }
    .button a{
        text-decoration:none;
        padding-top:8px;
    }
    .button a.cancel_btn{
        padding:0px;
        margin-top:9px;
        color:#336699;
        position:absolute;
    }
    .button{
        float: left;
        height: 28px;
        margin: 2px;
        cursor: pointer;
    }
    pour le rendu que j'ai voir la pièce jointe.

    Le problème est que ce bouton vert est composé de 2 images (droite et gauche) et d'un bouton central avec un background... je cherche un moyen de faire ca plus élégament, de facon a pouvoir cliquer sur les images aussi(et pas seulement sur le bouton comme actuellement)
    Images attachées Images attachées  

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    En CSS2 la solution la plus simple serait d'utiliser des boutons de taille fixe, et d'utiliser une seule et unique image...

    Mais je suppose que tu veux des boutons de taille variable. Dans ce cas il faudrait utiliser des span imbriqué :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <button type="submit"><span><span>Save changes</span></span></button>

    Avec un CSS de ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    button {
    	color: #fff;
    	background-color: green;
    	margin: 0; border: 0; padding: 0;
    	padding-right: 15px; /* largeur de l'image de droite */
    	background: <<<image de droite>>>
    }
    button span {
    	padding-left: 15px; /* largeur de l'image de gauche */
    	background: <<<image de gauche>>>
    }
    button span span {
    	background: <<<image du centre >>>
    }
    Certains utilise également seulement 2 images, avec une image très large afin de s'adapter à toutes les tailles... mais cela revient un peu au même...




    Sinon tu peux faire cela de façons très simple en CSS3 avec border-radius mais ce n'est pas encore supporté par IE.

    Toutefois tu peux très bien proposer une dégradation "propre".
    Par exemple avec ce CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    button {
    	background-color: #94C861;
    	border: 1px solid #699B37;
    	padding: 0.5em 1em;
    	color: #fff;
     
    	-moz-border-radius: 8px;
    	-webkit-border-radius: 8px;
    	border-radius: 8px;
    }
    On obtient quelque chose d'assez proche de ce que tu cherches à faire (il faudrait adapter les tailles et éventuellement utiliser une image dégradé en background pour avoir la même chose).

    Sous IE on perd seulement les arrondis...


    Sinon on pourrait même utiliser border-image mais je crois que c'est encore moins bien supporté...

    a++

  5. #5
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 296
    Points
    7 296
    Par défaut
    Hello
    Merci pour ta réponse(et désolé pour la réponse tardive, j'ai eu d'autres ticket, donc aps eu le temps de me remettre sur le design...)

    Donc, ta solution est presque parfaite, j'ai du néanmoins changer quelques petites trucs, je met mon code à la suite.

    En gros :
    - ajout d'un niveau de span de plus
    - definition du height des span
    - display block pour le span
    - no wrap pour IE(autrement pour les textes long, il passe a la ligne, pas joli...)

    c'est a peu pret tout.

    Html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <button type="button" id="select_targets" name="select_targets" class="grey-btn-content " onclick="">
      <span>
        <span>
          <span>
             Select WordPress Blog(s)
          </span>
        </span>
      </span>
    </button>
    CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    .grey-btn-content { 
        color:#666666;
    }
    .green-btn-content { 
        color:#FFF;
    }
    .button{
        float: left;
        height: 28px;
        margin: 2px;
        cursor: pointer;
    }
    .button button{
     /* astuce IE pour ne pas avoir des boutons demesurés*/
        width:auto;
        overflow:visible;
    }
    .button button{
       display: block; 
       height:28px; 
       background:transparent; 
       float:left; 
       padding: 0px; 
       margin: 0; 
       border:0 none;
       cursor: pointer;
    }
    .button button span {
        display:block;
        height:28px;
        margin: 0; 
        border: 0; 
        padding: 0;
        padding-right: 11px;
    }
    .button button span span {
        padding:0px;
        padding-left: 11px;
    }
    .button button span span span {
        white-space:nowrap;
        padding:8px 0px 0px 0px;
    }
    button.grey-btn-content span {
        background:transparent url(/img/grey-btn-right.png) no-repeat right;
    }
    button.grey-btn-content span span {
        background:transparent url(/img/grey-btn-left.png) no-repeat;
    }
    button.grey-btn-content span span span {
        background:transparent url(/img/grey-btn-middle.png) repeat-x; 
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XNA] Fonction Clic sur un objet de type button
    Par Katsuhiko dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 23/04/2011, 16h49
  2. [XNA] Fonction Clic sur un objet de type button
    Par Katsuhiko dans le forum C#
    Réponses: 0
    Dernier message: 14/04/2011, 17h11
  3. Detection d'évênement sur objet "Button"
    Par baptchr55 dans le forum C#
    Réponses: 3
    Dernier message: 06/04/2011, 08h22
  4. [HTML] Objet Button
    Par Delphi-ne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/11/2005, 12h14
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo