Je ne parviens pas à déplacer le contenu principal vers la gauche. Le code ci-dessous fait bouger le contenu du corps vers la droite lorsque je clique sur le bouton Ouvrir :
function openNav() { document.getElementById("mySidebar").style.width = "250px"; document.getElementById("main").style.marginLeft = "250px"; } function closeNav() { document.getElementById("mySidebar").style.width = "0"; document.getElementById("main").style.marginLeft = "0"; }
body { font-family: "Lato", sans-serif; } .sidebar { height: 100%; width: 0; position: fixed; z-index: 1; top: 0; right: 0; background-color: #111; overflow-x: hidden; transition: 0.5s; padding-top: 60px; } .sidebar a { padding: 8px 8px 8px 32px; text-decoration: none; font-size: 25px; color: #818181; display: block; transition: 0.3s; } .sidebar a:hover { color: #f1f1f1; } .sidebar .closebtn { position: absolute; top: 0; right: 25px; font-size: 36px; margin-left: 50px; } .openbtn { font-size: 20px; cursor: pointer; background-color: #111; color: white; padding: 10px 15px; border: none; margin-left: 1600px; } .openbtn:hover { background-color: #444; } #main { transition: margin-left .5s; padding: 16px; } /* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */ @media screen and (max-height: 450px) { .sidebar { padding-top: 15px; } .sidebar a { font-size: 18px; } }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div id="mySidebar" class="sidebar"> <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a> <a href="#">About</a> <a href="#">Services</a> <a href="#">Clients</a> <a href="#">Contact</a> </div> <div id="main"> <button class="openbtn" onclick="openNav()">☰ Open Sidebar</button> <h2>Collapsed Sidebar</h2> <p>Click on the hamburger menu/bar icon to open the sidebar, and push this content to the right.</p> </div> </body> </html>
Comme vous pouvez le voir, si j'essaie de changer .style.marginRight = "250px" ; cela augmente la marge mais ne déplace pas le contenu vers la gauche. Je veux pouvoir déplacer le contenu vers la gauche.
Je ne suis pas sûr de bien comprendre votre question. Mais je pense que tu l'as fait exprès
Envisagez d'utiliser
transform:translateX()
来代替。它的性能也更高,因为浏览器不必像使用margin
pour effectuer des calculs de mise en page à chaque image d'animation (60 images par seconde, mesurées en 1/16ème de seconde).