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 :

Menu collé en haut et affichage des ancres


Sujet :

CSS

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut Menu collé en haut et affichage des ancres
    Bonjour,

    J'ai indiqué dans le sujet "menu collé" comme traduction de l'anglais "sticky header" mais n'hésitez pas à proposer une autre traduction parce que je pense qu'on peut faire un titre plus clair.

    Mon soucis concerne l'affichage des ancres dans le cas d'un menu de ce genre. On peut par exemple voir le soucis dans la documentation de PHP :
    http://php.net/manual/fr/language.op...arison.ternary
    L'ancre demandée est sur le titre "L'opérateur ternaire" mais ce titre est caché par le menu.

    Est ce qu'il est possible en CSS sans JavaScript, d'indiquer que la zone du haut est occupée par le menu et que l'affichage de l'ancre doit commencer en dessous ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- "menu fixe", puisqu'il est en position:fixed; !


    2- Les ancres se moquent bien d'un "menu fixe"...
    L'ancre se positionne en haut de la fenêtre, un point c'est tout.

    La seule solution CSS (à ma connaissance) est d'appliquer un padding-top aux éléments avec ancres.
    C'est la solution que j'ai adoptée sur mes sites.

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    c'est noté merci pour l'astuce du "padding-top" mais ça ne me plait qu'a moitié parce que suivant les contenus, ça n'aide pas trop à la lisibilité d'avoir des gros espaces comme ça.
    ou alors je n'ai pas compris ? c'est bien quelque chose comme ça que tu proposes ?
    https://codepen.io/anon/pen/mGgGaG

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oui, sauf que tu exagères !
    Un padding-top de 1.5em suffit dans ton cas.

    En CSS, je ne connais pas d'autre solution.
    Dernière modification par Invité ; 25/09/2018 à 11h34.

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    avec 1.5em plus de la moitié de "titre 2" est caché sous le menu avec Firefox, cela dépend peut-être du navigateur.

    j'ai essayé quelque chose qui me plait un peu plus, avec un élément invisible placé avant l'endroit à afficher et décalé à l'aide de "position : relative; top : -3.5em;"
    https://codepen.io/anon/pen/NLmOob

    reste à voir si ce bricolage fonctionne sur la plupart des navigateurs utilisés actuellement.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    tu peux également passer par la pseudo-classe :target pour augmenter le padding-top de ta cible, cela me semble un poil plus« propre ».

    exemple :
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>pseudo-classe target</title>
    <style>
    body {
      margin: 4em auto 0 auto;
      max-width: 60em;
      min-height: 100em;
    }
    nav {
      position: fixed;
      top: 0;
      right: 0;
      left: 0;
      padding: 1em;
      border: 2px solid #444;
      background: rgba(200, 200, 200, 0.9);
    }
    h2:target {
      padding-top: 2.5em;
      color: #069;
      background: #CDE;
    }
    </style>
    </head>
    <body>
    <nav>
      <a href="#titre1">Titre 1</a>
      <a href="#titre2">Titre 2</a>
      <a href="#titre3">Titre 3</a>
      <a href="#titre4">Titre 4</a>
    </nav>
    <div>
      <h2 id="titre1">Titre 1</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur id posuere ligula. Suspendisse ut ipsum ac enim vehicula lacinia ultricies scelerisque arcu. Curabitur ac ante vel odio tempor ornare. Nullam ut metus luctus, aliquet mi et, tristique quam. Suspendisse a ornare velit. Vivamus id quam dignissim, commodo felis vitae, ultrices purus. In posuere luctus dui id aliquam.</p>
      <h2 id="titre2">Titre 2</h2>
      <p>Morbi sodales interdum magna luctus maximus. Nunc tempus, risus at elementum finibus, dolor justo tincidunt augue, et semper quam purus nec nulla. Nulla metus elit, varius sed venenatis sed, pretium a lorem. Nulla facilisi. Etiam egestas neque at elit egestas congue. Morbi id eros lectus. Maecenas laoreet ultricies pulvinar. Donec elementum non sapien nec fermentum. Ut malesuada risus ac orci eleifend, eget blandit ante scelerisque. Phasellus laoreet ex non luctus ornare.</p>
      <h2 id="titre3">Titre 3</h2>
      <p>Integer eu leo faucibus, elementum odio ut, pharetra est. Praesent nec eros sed est tempor fermentum. Aenean quis nunc eu magna vulputate sagittis vitae id felis. Curabitur gravida commodo pellentesque. Ut vestibulum sollicitudin enim, at maximus lacus fermentum quis. Duis molestie ante in justo tempor, in malesuada odio placerat. Suspendisse nisl quam, porta vel lectus a, placerat cursus augue. Donec dignissim sodales bibendum. Nunc fermentum justo at nunc facilisis, ac convallis leo ultrices. Duis fermentum augue orci, in accumsan diam aliquet eu.</p>
      <h2 id="titre4">Titre 4</h2>
      <p>Sed eget dictum magna, ut ornare velit. Phasellus interdum dui magna, porttitor dictum nunc accumsan ac. Proin vel facilisis mauris. Nulla arcu ante, convallis id dolor at, congue mattis nulla. Donec nec tristique urna. Sed varius felis ut nibh molestie, ac consequat ex auctor. Nulla varius mattis magna. Nulla eros mauris, venenatis pharetra nibh sed, maximus scelerisque orci. Ut vitae pharetra ligula.</p>
    </div>
    </body>
    </html>

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Cela est aussi intéressant, ça évite de rajouter un élément invisible et en plus on peut mettre en avant l'élément concerné.

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

Discussions similaires

  1. [XL-2003] Affichage des menu contextuels
    Par patbold dans le forum Excel
    Réponses: 2
    Dernier message: 18/08/2009, 09h34
  2. [Joomla!] Affichage des élements de menu
    Par erman_yazid dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/03/2008, 08h15
  3. probleme d'affichage des sous menu! FF/IE7/IE6
    Par hybride1106 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/09/2007, 10h47
  4. affichage des liens d'un menu
    Par micknic dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/08/2006, 21h19
  5. Menu qui s'affiche en permanance en haut a gauche des images
    Par raphio000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 19
    Dernier message: 25/07/2006, 11h14

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