Menu qui ne veut pas se fixer.

Menu qui ne veut pas se fixer. - HTML/CSS - Programmation

Marsh Posté le 12-12-2018 à 11:47:41    

Bonjour,
 
Je cherche à créer une page web perso mais je rencontre un petit soucis avec mon menu et mon entête.
Malgré les tutos trouvés ici et là, je n'arrive pas à fixer mon entête et mon menu et que la partie du dessous ne passe pas au delà. Le "position: fixed;" ne fonctionne pas et je ne comprend pas pourquoi.
Je l'ai enlevé après avoir testé puis échoué.
 
Merci par avance si vous arrivez à me venir en aide ;)  
 
Code HTML :
 

Code :
  1. <!DOCTYPE html>
  2. <html lang="fr" >
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <title>demo</title>
  6.  
  7.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
  8.  
  9.       <link rel="stylesheet" href="css/style.css">
  10.  
  11. </head>
  12. <body>
  13.   <!-- header -->
  14. <h1><b>Juste un petit essai </b><img src="https://i.imgur.com/SKN67qN.png" width="40" height="40"></h1>
  15. <!-- menu container -->
  16. <ul class="container">
  17.     <li class="item item-1"><a href="#demo1">demo1</a></li>
  18.     <li class="item item-2"><a href="#demo2">demo2</a></li>
  19.     <li class="item item-3"><a href="#demo3">demo3</a></li>
  20.     <li class="item item-4"><a href="#demo4">demo4</a></li>
  21.     <li class="item item-5"><a href="#demo5">demo5</a></li>
  22.     <li class="item item-6"><a href="#demo6">demo6</a></li>
  23. </ul>
  24.  
  25.   <!--<div class="overlay"></div> -->
  26.              
  27.                   <div class="card">
  28.                   <section id="Accueil" class="main-section">
  29.                      <header>Juste un petit essai 2</header>
  30.                      <article>
  31.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  32.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  33.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  34.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  35.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  36.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  37.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  38.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  39.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  40.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  41.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  42.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  43.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  44.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  45.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  46.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  47.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  48.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  49.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  50.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  51.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  52.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  53.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  54.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  55.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  56.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  57.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  58.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  59.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  60.                         <p>demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo demo</p>
  61.                      </article>
  62.                      </div>
  63.                   </section>
  64.                  
  65.        
  66.       </div>
  67.    </main>
  68.   <script src='https://code.jquery.com/jquery-3.1.1.min.js'></script>
  69.  
  70.     <script  src="js/index.js"></script>
  71. </body>
  72. </html>


 
Code CSS :
 

Code :
  1. /* variables */
  2. /* colours */
  3. /* fonts */
  4. .transition, .container .item a {
  5.   transition: all 0.25s ease-in-out;
  6. }
  7. body {
  8.   height: 100%;
  9.   -webkit-perspective: 900;
  10.           perspective: 900;
  11.   background-color: rgba(220, 231, 235, 0.25);
  12.   font-family: "Ubuntu", sans-serif;
  13.   font-weight: 400;
  14.   text-align: center;
  15. }
  16. h1 {
  17.   color: #22bec6;
  18.   font-family: "Source Sans Pro", sans-serif;
  19.   font-weight: 700;
  20.   font-size: 1.75em;
  21.   text-transform: uppercase;
  22.   line-height: 1;
  23.   display: inline-block;
  24.   padding: 0.5em 0.5em;
  25.   border-bottom: 1px solid rgba(48, 69, 92, 0.2);
  26. }
  27. .container {
  28.   list-style: none;
  29.   padding: 0;
  30.   margin: 0 5%;
  31.   width: auto;
  32.   display: flex;
  33.   flex-flow: row nowrap;
  34.   justify-content: center;
  35. }
  36. .container .item {
  37.   font-family: "Ubuntu", sans-serif;
  38.   border-left: 1px solid #dce7eb;
  39. }
  40. .container .item a {
  41.   text-transform: uppercase;
  42.   font-size: 0.7em;
  43.   background: #fefffa;
  44.   color: rgba(48, 69, 92, 0.8);
  45.   padding: 1em 1em;
  46.   display: block;
  47.   text-decoration: none;
  48. }
  49. .container .item a:hover {
  50.   background: #22bec6;
  51.   color: #fefffa;
  52. }
  53. .container .item-1 {
  54.   border: none;
  55. }
  56. @media (max-width: 600px) {
  57.   .container {
  58.     flex-flow: column nowrap;
  59.   }
  60.   .container .item {
  61.     border-left: none;
  62.     border-bottom: 1px solid #dce7eb;
  63.   }
  64.   .container .item a {
  65.     padding: 1.5em 1em;
  66.   }
  67. }
  68. .card {
  69.       background: #fff;
  70.       width: 80%;
  71.       box-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);
  72.       border-radius: 4px;
  73.       margin-top: 5%;
  74.       margin-bottom: 5%;
  75.       margin-right: 5%;
  76.       margin-left: 5%;
  77.     }


Message édité par snowden le 12-12-2018 à 11:48:07

---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 12-12-2018 à 11:47:41   

Reply

Marsh Posté le 12-12-2018 à 14:18:36    

Je crois que tu ne comprend pas vraiment comment fonctionne le position:fixed
J’ai fait un codepen de ton code avec un position fixed sur le header.top_fixed, à partir de là, qu'est ce qui te déranges :
https://codepen.io/anon/pen/wRKBRN
 
Je supposes que "que la partie du dessous ne passe pas au delà" signifie que tu ne voudrais pas voir le contenu scroller sous ton menu, pour ça tu n'as qu'a mettre une couleur de fond à ton header ou organiser tes divs autrement...
 
...dans tous les cas position absolute et fixed sortent les blocs html du flux, à partir de là il rentreront forcement en conflit d'une manière ou d'une autre avec les blocs statiques (à moins de réserver de la place avec des padding / margin) [:airforceone].


---------------
D3
Reply

Marsh Posté le 12-12-2018 à 14:23:00    

Bonjour mechkurt et merci d'essayer de me venir en aide.
 
Oui en effet, c'est ce que je voudrais en résultat. Qu'il y est par exemple en permanence deux ou trois cm de réservé en haut pour laisser afficher le header et le menu et sans que le contenu dessous ne viennent par dessus ou par dessous.
 
Je viens de tester ton codepen et c'est ce que j'avais déjà tenté.
 
Sur Firefox : fonctionne sauf la partie du contenu qui va dans le menu au moment du scroll
 
Sur Chrome : fonctionne pas du tout et donne ça dès le départ.
 
https://i.imgur.com/jRrvB3Z.png


Message édité par snowden le 12-12-2018 à 14:23:08

---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 12-12-2018 à 15:43:00    

Le bug sur chrome c'est à cause de ces règles :

Code :
  1. -webkit-perspective: 900;
  2.           perspective: 900;


sur le body, si tu les vires, ça donnes la même chose sur chrome et firefox...
 
Et sinon, ben comme je te le dit c'est le fonctionnement normal de fixed que le contenu passes dessous, si tu veux des especes de frame, tu peut mettre un wrapper sur ton contenu avec une height définis et un oveflow scroll, mais à mon avis tu as meilleur temps de mettre un fond (pourquoi pas semi transparent) et à conserver un ascenseur global !


---------------
D3
Reply

Marsh Posté le 12-12-2018 à 15:44:38    

Merci pour le cours de chinois  :lol:  
 
Je vais voir tout ce que tu me dis voir si j'arrive à le mettre en place.
 
Merci en tout cas pour ton aide.


---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 13-12-2018 à 09:50:02    

Un truc du genre quoi :

Code :
  1. header.top {
  2.   position:absolute;
  3.   top:0;
  4.   left:0;
  5.   right:0;
  6. }
  7. div.main {
  8.   position:relative;
  9.   box-sizing:border-box;
  10.   height:100vh;
  11.   padding-top:160px;
  12. }
  13. div.card {
  14.   height:100%;
  15.   overflow:scroll;
  16.   margin:0 auto;
  17. }


https://codepen.io/anon/pen/wRKBRN


---------------
D3
Reply

Marsh Posté le 13-12-2018 à 10:36:17    

Merci pour ton attention mais j'y vois un soucis. C'est qu'il y a la barre de scroll. Je voudrais plutôt que la fenêtre scroll normalement et que .card scroll mais à partir de là ou il est placé.
 
Je sais pas si je suis clair dans mon propos, je n'arrive pas à préciser correctement.


---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 13-12-2018 à 10:59:03    

Je ne comprends pas ce que tu veux faire...
 
Ben mon premier codepen avec un couleur de fond identique au body sur ton header ?


---------------
D3
Reply

Marsh Posté le 13-12-2018 à 12:13:11    

Sur le premier codepen, il y avait un soucis :
 
fonctionne sauf la partie du contenu qui va dans le menu au moment du scroll  
 
Si je reprends ton dernier codepen, c'est exactement ça pour le "juste un petit essai avec l'image" et le "menu". Sauf qu'en dessous, il faudrait que le cadre ".card" n'est pas de scroll et que ça prenne la taille que ça doit prendre.
 
Je me doute bien que ça va ensuite scroller sous le menu mais normalement, ça ne se verra pas. Je me trompe ?
 
EDIT : voici un petit exemple de ce que je cherche à avoir :
 
https://i.imgur.com/6HOkyqO.png


Message édité par snowden le 13-12-2018 à 12:29:14

---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 13-12-2018 à 14:31:35    

Je ne comprends toujours pas, fais moi un autre visuel avec le contenu scrollé, si y'a pas d'ascenseur ils va ou ton contenu ?
 
Si quelqu'un d'autre à une idée...


---------------
D3
Reply

Marsh Posté le 13-12-2018 à 14:31:35   

Reply

Marsh Posté le 13-12-2018 à 14:39:23    

Est-ce que c'est plus compréhensible là stp ?
 
Il y a un ascenseur mais invisible. Il faut un écart entre le menu et .card et en scrollant, il s'enlève dans cet écart.
 
https://i.imgur.com/W22CqA5.png


Message édité par snowden le 13-12-2018 à 14:40:29

---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Marsh Posté le 13-12-2018 à 15:21:20    

Reply

Marsh Posté le 13-12-2018 à 15:41:29    

Merci beaucoup mechkurt pour m'avoir sorti du pétrin, c'est super sympa :hello:


---------------
« A l’origine de toute erreur attribuée à l’ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l’erreur à l’ordinateur. »
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed