Wie schreibt sich auf HTML ein einfaches "Hintergrund Streifen"?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt mehrere Möglichkeiten dafür. Am besten fügst du ein div Element hinzu:

<div id="blackStripe"></div>

Dieses positionierst du und stylst du mit CSS:

#blackStripe {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 30px;
  background-color: #000;
}

Live-Beispiel: https://jsfiddle.net/thwf0f88/

Eine weitere Möglichkeit ist die Nutzung von CSS Gradients:

body {
  background: linear-gradient(to bottom, #fff, #fff calc(100vh - 30px), #000 calc(100vh - 30px)) fixed;
}

Live-Beispiel: https://jsfiddle.net/b5qvdxst/

Ich bevorzuge aus diversen Gründen die erste Variante.


Minilexikon  11.02.2018, 03:41

"Aus diversen Gründen"

Welche wären das beispielsweise?

Ich würde eher die zweite Variante empfehlen. Das ist die aktuell gebräuchlichere. Absolute Positionierung ist nicht mehr state of the art und absolut positionierte Elemente brechen aus dem Layout aus, was nicht immer hilfreich ist. Außerdem vermeidest du so auch, ein Element nur des Stylings wegen in den DOM zu packen, wo es keinen inhaltlichen Zweck erfüllt und leer ist.

0

Ich würde ein Bild mit der gewünschten Farbe und Höhe erstellen und dann mit

background-repeat: repeat-x

waagrecht eine Zeile ausfüllen.

  • repeat
  • , Voreinstellung, das Hintergrundbild wird in x- und y-Richtung wiederholt
  • repeat-x
  • , das Hintergrundbild wird nur horizontal wiederholt
  • repeat-y
  • , das Hintergrundbild wird nur vertikal wiederholt
  • no-repeat
  • , keine Wiederholung des Hintergrundbildes

Diese Angaben entstammen https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/Hintergrundfarben_und_-bilder/background-repeat

Ich hoffe dir damit geholfen zu haben

Klaus

auch wenn sie aus der mode kommen, ich würde das einfach mit einer tabelle machen. in dem fall einer einzelligen. setz den zellenrand auf 0 und die hintergrundfarbe auf schwarz. breite und höhe kannst du unabhänig von einander auf eine genaue pixelzahl oder einen prozentualen wert einstellen.

möchtest du, dass der streifen links und rechts einen festen abstand zum seitenrand hat, der um x pixel größer ist, als der eigendliche seitenrand, legst du einfach eine dreizellige tabelle an ebenfalls ohne rahmenbreite, text und zellenabstand und machst eben nur die mittlere zelle schwarz.

lg, Anna


QMillion 
Fragesteller
 10.02.2018, 18:26

Wood das ist eine geniale Lösung, gefällt mir sehr gut, könnte man eventuell einen Script dazu verlinken? Dem dürfte ich sehr dankbar sein

0
regex9  11.02.2018, 01:32
@QMillion

Das ist keine geniale Lösung, sondern einfach nur ein Beweis, dass man nicht verstanden hat, wozu Tabellen genutzt werden und welche Elemente es noch gibt. Schau dir die anderen Antworten an.

0
Peppie85  11.02.2018, 05:37
@regex9

es ist vielleicht nicht die beste lösung, aber eine probate, wenn man wegen eines einzelnenen elementes sich nicht gleich in die CSS welt stürzen will.

0
tavkomann  10.02.2018, 18:40
auch wenn sie aus der mode kommen, ich würde das einfach mit einer tabelle machen.
Nein, auf keinen Fall eine Tabelle benutzen!

CSS ist für das Layout zuständig und nicht HTML. Außerdem bekommt man damit erhebliche Accessibility-Probleme. Tabellen sollten wirklich nur für tabellarische Daten verwendet werden und niemals fürs Layout!

4
Steffile  11.02.2018, 10:21

Wenn schon Tabelle, dann besser display: table, nicht das html table element!

2

Nur mit HTML geht das garnicht, du brauchst dazu noch css.

Erstelle z.B. einen div-Block der die entsprechende hintergundfarbe haben soll. Diesem weist du dann mit css die entsprechenden Atribute zu, z.B. so:

div{
  background-color: #000000;
  weight: 100%;
  height: 30px;
}