HTML: Wie kann ich einen oben fixierten Header erstellen?

PeterP58  11.05.2024, 15:39

Muss es HTML sein oder geht auch CSS?

1chbinnichtdu 
Fragesteller
 11.05.2024, 16:04

es muss html sein

3 Antworten

Alleine mit HTML wirst du es nicht umsetzen können, da mit CSS sowohl das Aussehen von Elementen als auch dessen Position und Verhalten festgelegt wird. Um einen „Sticky-Header” zu erstellen, den gleichnamigen Positionswert verwendest.

HTML:

<header class="page-header">
  <!-- header content... -->
</header>

CSS:

.page-header {
  width: 100%;
  height: 72px;
  position: sticky;
  top: 0;
}

Der <header> bleibt nun am oberen Viewport-Rand kleben und auch das Angeben von padding und margin insofern wegfällt, da der nachfolgende Inhalt erst unter dem <header> beginnt. Letzteres wäre z.B. nötig, wenn du statt sticky mit fixed arbeitest.

Woher ich das weiß:Berufserfahrung – UI/UX Designer, Full-Stack Developer

Wurde hier schon mal gefragt:

https://www.gutefrage.net/frage/element-immer-im-bildschirm-haben-mit-css

Der häufigste Anwendungsfall ist eine Navigationsleiste - dazu gibt Google jede Menge Treffer aus.

Bei manchen der Lösungen wird auch darauf hingewiesen, dass man dann dem <body> einen oberen margin geben sollte, der so hoch ist wie das fixierte Element.

Besser, aber weniger elegant, wäre direkt danach ein weiteres gleichartiges Element, das denselben Inhalt hat, aber visibility: hidden;. Außerdem sollte das fixierte Element opacity: 1; und background-color: white; haben, damit der gescrollte Inhalt nicht durchscheint.

Weitere Treffer der Suche verweisen auf weitere Methoden, das Gewünschte zu erreichen.


1chbinnichtdu 
Fragesteller
 11.05.2024, 19:07

Danke für die Antwort, ich werd gleich schauen wie ich das mache:)

0

dafür nutzt man css. html ist nur eine layoutsprache. empfehle dir erstmal nen Grundkurs zum Thema Html und Css. lernst du relativ schnell.

Woher ich das weiß:Berufserfahrung – Backend Developer