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 :

display:block sur <legend/> [CSS 2]


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut display:block sur <legend/>
    Bonsoir.

    J'ai un petit souci. J'ai une page dont le contenu semble être plus logique à faire avec des <fieldset/>s (pas de formulaires). Graphiquement avec CSS, ça va donner des jolies zones avec bordure, arrière plan et, en haut, le nom de la zone en question.

    J'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <fieldset>
      <legend>Zone 1</legend>
      <!--Contenu de la zone 1-->
    </fieldset>
    et au niveau du CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fieldset legend{display:block;background:#eee url(...) repeat-x left top;color:#444;line-height:30px;}
    Problème : malgré mon très beau display:block, le <legend/> reste comme s'il était display:inline.

    Note : en cherchant sur internet, j'ai vu que IE affichait ça sur toute la ligne (la version n'étant pas indiquée, je présume qu'il s'agissait du IE6, en tout cas IE8 affiche également le bloc en inline). En tout cas aucune solution n'a été donnée pour afficher ça sur toute la ligne dans les navigateurs normaux, si ce n'est de passer par un assemblage <div/> à la place de <fieldset/> et <legend/>, ce que je trouve un peu dommage de faire en l'espèce.


    Quelqu'un sait-il, déjà, pourquoi ça fait ça, et ensuite comment faire pour afficher le bloc sur toute la ligne ?

    Merci d'avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    tu as essayé un simple

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    tu as essayé un simple

    A+
    Yep. Pareil, n'importe d'ailleurs si display:block; est présent ou pas.

    Petite demo :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>Test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
      <div>
        <fieldset>
          <legend style="display:block;width:100%;background:yellow;">Hello</legend>
          World
        </fieldset>
      </div>
    </body>
    </html>
    EDIT:
    À noter que avec width:100%, ça marche impec' sous IE8. Mais toujours rien sous FF3.

  4. #4
    Membre chevronné
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Par défaut
    bonjour,

    Pouvoir styler "legend" est un "mythe" .

    Insere un <span> dans legend et style celui-ci , tu aura de meilleur résultats .

    Cordialement
    GC

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    Citation Envoyé par CCyrillus Voir le message
    bonjour,

    Pouvoir styler "legend" est un "mythe" .

    Insere un <span> dans legend et style celui-ci , tu aura de meilleur résultats .

    Cordialement
    GC
    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <fieldset>
      <legend>
        <span style="display:block;float:left;width:100%;background:yellow;">Hello</span>
      </legend>
      World
    </fieldset>
    Exactement le même résultat. Par contre c'est pas moi qui déconne ? Je vois que pour certains, ça marche : V. Cannot style legend tag with css

    Certes c'est toujours possible de placer en absolu le <span/>, mais bon, j'aimerai éviter (autant revenir à la solution classique des <div/>).

  6. #6
    Membre chevronné
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Par défaut
    okay

    ce que tu peut faire aussi :
    c'est de na pas utiliser de fieldset ni de legend et de remplacer ceux-ci par un div et un titre (ou un section et un titre par exemple si tu code en html 5) .

    Ces élément ne te poserons aucun problème pour les styles , ils vont aussi structurer ton formulaire . ... et tu éviteras aussi un bug d'impression dans certaines version de firefox avec des fieldset si les contenus doivent être imprimer sur plusieurs pages .

    GC

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

Discussions similaires

  1. Display block et inline sur un lien
    Par Phenomenium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/05/2006, 21h38
  2. [CSS][Firefox] prob de display:block sur un TR
    Par cyberzoide dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/05/2006, 11h37
  3. [CSS]Display:block sur un lien
    Par Phenomenium dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 22/04/2006, 15h42
  4. [CSS] Pb avec les display:block ..
    Par sokette dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 10/12/2005, 13h17
  5. [html+css] problème menu avec liens display:block
    Par Cypselos dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 28/08/2005, 09h39

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