• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

CSS, automatyczny margin top

VPS Starter Arubacloud
0 głosów
159 wizyt
pytanie zadane 10 maja w HTML i CSS przez EmilB Obywatel (1,040 p.)
Witam, mam takie pytanie ,czy da się zastosować margin, który odrazu jest po wejściu na strone, to znaczy wchodzę na strone i odrazu po wejściu na stronie wyświetla mi się 130px niżej strona (odrazu poniżej menu) lub coś w stylu, jeśli ruszę scrollem w dół lub w góre to wtedy wyświetla się menu od góry 130px.

Pozdrawiam

4 odpowiedzi

0 głosów
odpowiedź 10 maja przez EmilB Obywatel (1,040 p.)
Może będzie łatwiej wytłumaczyć zdjęciami.

Chcę, żeby było tak https://imgur.com/rCtZhdD - czyli bez menu pierwszy widok strony.

https://imgur.com/e2uIJPI - np. po ruszeniu scrollem, żeby się pokazywało menu, albo z automatu po wejściu na stronę, żeby była obniżona do wersji jak w pierwszym screenshocie.
0 głosów
odpowiedź 10 maja przez Panelinio Stary wyjadacz (10,210 p.)
edycja 10 maja przez Panelinio

Tak, da się.
Jeśli chcesz mieć odgórnie margin ustawiony to statycznie ustawiasz margin w CSS'sie.

A menu pojawia się po scrollowaniu, bo taka reguła została napisana w JS'sie.
Zerknij tutaj: https://stackoverflow.com/questions/36448800/how-to-show-or-hide-a-menu-when-i-scroll-down-or-up

0 głosów
odpowiedź 10 maja przez Toxc Dyskutant (8,400 p.)
<!DOCTYPE html>
<html>
<style>
body {
  height: 1200px;
}
</style>

<body>
<h1>The Window Object</h1>
<h2>The scrollTo() Method</h2>




<script>
function scrollWin() {
  window.scrollTo(0, 130);
}
scrollWin()
</script>

</body>
</html>


 

0 głosów
odpowiedź 10 maja przez VBService Ekspert (255,840 p.)
edycja 10 maja przez VBService

... jeśli ruszę scrollem w dół lub w góre to wtedy wyświetla się menu ...

Możesz też użyć: window.scrollY

np.:

<style>
  :root {
    --header-height: 1.5rem;
    --header-padding: .5rem;
  }
  html {
    scroll-behavior: smooth;
  }
  body {
    margin-top: calc(130px + var(--header-height) + (var(--header-padding) * 2));
  }
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);    
    background-color: black;
    color: white;
    padding: var(--header-padding) 0;
    z-index: 9999;
    transition: top .3s ease-in-out;
  }
  .hide {
    top: -100px;
  }
  ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
  }
  li {
    margin-left: 1rem;
  }
  section {
    height: 100vh;
  }
  section h2 {
    display: block;
    padding-top: calc(var(--header-height) + (var(--header-padding) * 2));
  }
</style>

<header class="hide">
  <nav>
    <ul>
      <li><a href="#section1">Section 1</a></li>
      <li><a href="#section2">Section 2</a></li>
      <li><a href="#section3">Section 3</a></li>
    </ul>
  </nav>
</header>

<section id="section1">
  <h2>Section 1</h2>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id justo id elit blandit.</p>
</section>

<section id="section2">
  <h2>Section 2</h2>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id justo id elit blandit.</p>
</section>

<section id="section3">
  <h2>Section 3</h2>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id justo id elit blandit.</p>
</section>

<script>
  window.addEventListener("scroll", () => {
    const header = document.querySelector("header");
    if (window.scrollY > 0) 
      header.classList.remove("hide");
    else
      header.classList.add("hide");
    /*
    if (window.scrollY < 130) 
      header.classList.add("hide");
    else
      header.classList.remove("hide");
    */
  });
</script>

 

Podobne pytania

0 głosów
1 odpowiedź 908 wizyt
+1 głos
1 odpowiedź 297 wizyt
pytanie zadane 5 listopada 2021 w HTML i CSS przez Pico Obywatel (1,330 p.)
0 głosów
2 odpowiedzi 114 wizyt
pytanie zadane 31 stycznia 2020 w HTML i CSS przez Pamix Nowicjusz (160 p.)

93,032 zapytań

141,996 odpowiedzi

321,300 komentarzy

62,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...