<html>
<head>
<title>Eingebettetes Stylesheet</title>
</head>
<body>
<h1 style="color: red;">Hello direct Style</h1>
</body>
</html>
<style>
-Elements im Kopfteil des HTML-DokumentesMIME
-Typ)<html>
<head>
<title>Eingebettetes Stylesheet</title>
<style type="text/css">
h1 {
color: red;
}
</style>
</head>
<body>
<h1>Hello embedded Style</h1>
</body>
</html>
<link>
-Elements im Kopfteil des HTML-Dokumenteshref
type
-Attribut<html>
<head>
<title>Externes Stylesheet</title>
<link rel="stylesheet" type="text/css" href="linked.css"/>
</head>
<body>
<h1>Hello external Style</h1>
</body>
</html>
h1 {
color: red;
}
CSS
-Anweisungen in verschiedenen Dokumenten<head>
, aber auf Basis welcher Daten?<link>
-Elements im Wurzel-TemplateJSON
-Liste<ruleset> ::= { <rule> }
<rule> ::= <selector> '{' { <declaration> } '}'
<declaration> ::= <property> ':' <expr>;
*
)DOM
zu tun haben<p>Ein Absatz</p>
<ul>
<li>
<p>Noch ein Absatz</p>
</li>
<li>
Kein Absatz
</li>
</ul>
*
<h1>Überschrift</h1>
<p>
<time>Heute</time> ist ein <em>schöner</em> Tag.
</p>
h1 { color: red; }
p { color: green; }
time { color: blue; }
p
<ul>
<li>Minsc</li>
<li>Boo</li>
</ul>
<ol>
<li>Link</li>
<li>Epona</li>
</ol>
ul li { color: red }
ol li { color: blue }
ul li
>
<p>Ein Absatz</p>
<ul>
<li>
<p>Noch ein Absatz</p>
</li>
<li>
Kein Absatz
</li>
</ul>
body > p { color: blue }
body > p
ul li
ul > li
+
<h1>Dramatis Personæ</h1>
<p>Lateinisch für "Personen der Handlung"</p>
<dl>
<dt>Perry</dt>
<dd>Ein Schnabeltier</dd>
<dd>Ein Geheimagent</dd>
</dl>
dt + *
~
<h1>Dramatis Personæ</h1>
<p>Lateinisch für "Personen der Handlung"</p>
<dl>
<dt>Perry</dt>
<dd>Ein Schnabeltier</dd>
<dd>Ein Geheimagent</dd>
</dl>
dt ~ *
h1 + dl
h1 ~ dl
dt + dd
dt ~ dd
[name="wert"]
[name]
name
angegeben ist[name="wert"]
wert
angegeben ist[name~="wert"]
wert
vorkommt.[name^="wert"]
oder [name$="wert"]
wert
entweder ein Präfix (^
) oder ein Suffix ($
) des konkreten Attributes ist.<ul>
<li><a href="http://www.fh-wedel.de">Ein Link zur FH Wedel</a></li>
<li><a href="https://www.tuhh.de/">Kein Link zur FH Wedel</a></li>
<li>Eine wichtige Abkürzung: <abbr title="Wichtig">DVA</abbr></li>
</ul>
a { color: red; }
[href="http://www.fh-wedel.de"] { color: green; }
[title="Wichtig"] { color: blue; }
class
-Attribut und der .
-Selektor.<klassenname>
statt [class~="<klassenname>"]
<element>.<klassenname>
<div class="card artifact" id="black-lotus">
<h1>Black Lotus <span class="mana">0</span></h1>
<img src="/assets/photos/black-lotus.jpg"
alt="black-lotus">
<p class="rules">
Adds <span class="mana">3</span> mana of any
single colour of your choice to your mana pool,
then is discarded. <span class="tap">Tapping</span>
this artifact can be played as an
<span class="interrupt">interrupt</span>.
</p>
</div>
.card {
background-color: lightgray;
}
.card .tap, .card .interrupt {
background-color: yellow;
}
.card .tap { color: red; }
.card .mana { color: blue; }
.card .interrupt { color: green; }
Was ändert sich, wenn in dem Beispiel statt des Nachfahren-Selektors ein Kind-Selektor verwendet wird?
Da zwischen .card
und den jeweiligen anderen Klassen noch p
- bzw. h1
-Elemente im Weg sind, werden nun keine Elemente mehr selektiert.
#
-Selektor#id
id
muss einzigartig sein:<pseudoklasse>
, typischerweise in Kombination mit einem weiteren Selektorhover
hover
gilt ausgehend vom speziellsten Kind bis zur Wurzel<div>
Hover Me,and everything is alright
</div>
<div>
I'll be the one to show you in at the DOM
</div>
div:hover { color: red; }
visited
<a href="http://www.tentakelvilla.de">tentakelvilla.de</a>
<a href="http://www.penisland.net">penisland.net</a>
<a href="http://trumpdonald.org/">trumpdonald.org</a>
<a href="http://www.hackertyper.com/">hackertyper.com</a>
a:visited { color: red; }
target
id
zum aktuellen Fragment der Browser-URL
passtp:target {
background-color: yellow;
}
<ul>
<li><a href="#blue">Blue</a></li>
<li><a href="#red">Red</a></li>
<li><a href="#indigo">Indigo</a></li>
<li><a href="#gold">Gold</a></li>
<li><a href="#silver">Silver</a></li>
<li><a href="#pink">Pink</a></li>
</ul>
<p id="blue">
Blue Tide - the Tide linked to reason, wisdom, enlightenment, and
mysticism. People influenced by this tide seek to expand their
consciousness and spirit forces, acquire great knowledge, and have
an in-depth insight about the world around them.
</p>
<p id="red">
Red Tide - represents passion, emotion, action, pathos, and zeal.
It's a path for people who want to live their life to the fullest,
and base their worldview on their own feelings. Such characters
always strive to be free, and follow the voice of their hearts.
</p>
{{ page.remaining_tides }}
DOM
-NavigationDOM
, teilweise parametrisiertfirst-child
, last-child
bzw nth-child(x)
um nur einen bestimmten Kind-Treffer zu selektierenfirst-of-type
, last-of-type
bzw nth-of-type(x)
um nur bestimmte Kind-Treffer eines bestimmten Selektors zu selektieren<dl>
<dt>Perry</dt>
<dt>Agent P</dt>
<dd>Schnabeltier</dd>
</dl>
dl dt:first-child {
color: red;
}
dl dt:nth-child(2) {
color: yellow;
}
dl dd:first-of-type {
color: green;
}
::first-letter
und ::first-line
: Schränken den Treffer gemäß dem Textfluss ein::before
und ::after
: Ergänzen den DOM
-Baum um weitere Elementecontent
-Wert um einen Text anzugeben<p>
Meine Planung für die weitere Woche:
</p>
<ol>
<li class="done">Vorlesung vorbereiten</li>
<li>???</li>
<li>Weltherrschaft</li>
</ol>
p::first-letter {
color: red;
}
li.done::after {
content: "✓ ";
}
<h1>DONE</h1>
<h1 class="todo">TODO</h1>
<h1 class="todo" id="progress">IN PROGRESS</h1>
#progress { color: rebeccapurple; }
h1 { background-color: lime; }
.todo { color: yellow; }
h1 { color: lime; }
h1:hover { background-color: white; }
#progress { background-color: gray; }
p
) oder Pseudo-Elemente (::before
).beispiel
), Attribut-Selektoren ([href="/"]
) und Pseudo-Klassen (:hover
)#beispiel
)<dl class="desc">
<dt class="term">Muggel</dt>
<dd class="definition">
<p class="text" id="no-wizard">Ein Muggel ist ein Mensch ohne magische Begabung,
der nicht in der Welt der Zauberer und Hexen geboren wurde.</p>
</dd>
</dl>
dl dd p { color: red; }
.desc .definition .text { color: yellow; }
#no-wizard { color: blue; }
dl #no-wizard { color: green; }
.definition #no-wizard { color: fuchsia; }
Regel | 1 | 2 | 3 |
---|---|---|---|
dl dd p |
3 | 0 | 0 |
.desc .definition .text |
0 | 3 | 0 |
#no-wizard |
0 | 0 | 1 |
dl #no-wizard |
1 | 0 | 1 |
.definition #no-wizard |
0 | 1 | 1 |
ul > li
ul > li > ul > li
color
für die Farbe des Vordergrundsbackground-color
für die Farbe des Hintergrundsblack
, blue
, yellow
, …RGB
-Farbmodell#FF0033
oder #ff0033
rgb(255, 0, 51)
rgb(100%, 0%, 20%)
HSL
-Farbmodellhsl(0, 100%, 50%)
px
)mm
), Zentimeter (cm
), Zoll (in
)<div class="millimeter">10x2 cm</div>
.millimeter {
width: 100mm;
height: 20mm;
background-color: red;
font-size: 20mm;
}
em
& ex
: Größenangaben die sich auf die aktuell genutzten Font beziehenem
font-size
des Elementes. Falls ein em
-Wert zur Angabe des font-size
-Attributes genutzt werden soll, wird der ererbte Wert modifiziert.rem
font-size
des Wurzelements. Wenn dieses Attribut an der Wurzel (<html>
) genutzt wird, wird damit der Wert festgelegt.<h1>Primal</h1>
<h2>Druid</h2>
<h3>Circle of the Moon</h3>
<h3>Circle of the Unspeakable</h3>
<h2>Barbarian</h2>
<h3>Path of the Colossus</h3>
<h3>Path of the Wolfsblood</h3>
html { font-size: 12px; }
h1 { font-size: 3rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1rem; }
vh
und vw
<p class="half-screen">Oben</p>
<p class="half-screen">Unten</p>
body {
background-color: yellow;
}
.half-screen {
background-color: blue;
height: 30vh;
}
text-align
: Ausrichtung des Textesleft
, right
, center
, justify
(Blocksatz)hyphens
: Automatische Silbentrennungnone
(Standard) oder auto
lang
text-transform
: Beinflussung der Groß- und Kleinschreibungcapitalize
: Erster Buchstabe eines Wortes großuppercase
: Alle Buchstaben großlowercase
: Alle Buchstaben klein<p lang="de">
Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte,
fand er sich in seinem Bett zu einem ungeheueren Ungeziefer
verwandelt. Er lag auf seinem panzerartig harten Rücken und
sah, wenn er den Kopf ein wenig hob, seinen gewölbten, braunen,
von bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe
sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum
noch erhalten konnte. Seine vielen, im Vergleich zu seinem
sonstigen Umfang kläglich dünnen Beine flimmerten ihm hilflos
vor den Augen.
</p>
p {
text-align: justify;
hyphens: auto;
}
inline
- und block
-Elementediv
, p
, ul
, h1
, …)span
, em
, q
, …)auto
is replaced by some suitable value, e.g. it can be used for centering of blocks.” (s. MDN).width
-Angaben: Unproblematischheight
-Angaben: Problematischbody
-Element hat keine absolute Höhevh
-Angabepadding
und margin
<div class="first">First</div>
<div class="second">Second</div>
<div class="third">Third</div>
.first {
margin: 2em;
background-color: red;
}
.second {
margin: 1em;
padding: 1em;
background-color: blue;
}
.third {
padding: 2em;
background-color: green;
}
padding
und margin
<div class="first">First</div>
.first {
margin-left: 4em;
margin-right: 10%;
margin-bottom: 2rem;
padding-left: 20vh; /* Don't try this at home! */
padding-bottom: 10px;
background-color: red;
}
left
, right
, top
und bottom
margin-or-padding: <x>
Identischer Wert für alle Seitenmargin-or-padding: <vert>, <horz>
Vertikaler Abstand, dann horizontaler Abstandmargin-or-padding: <up>, <horz>, <down>
margin-or-padding: <up>, <right>, <down>, <left>
margin: auto;
auto
den Wert 0
.<div>
Ich spiele eine zentrale Rolle
</div>
div {
width: 50%;
background-color: green;
margin: 0 auto;
}
<div id="ex1">
width: 100px + 2 * 2px + 2 * 3px + 2 * 10px
</div>
<div id="ex2">
width: 40px + 10px + 2px + 4px
</div>
div {
background-color: yellow;
}
#ex1 {
margin: 10px;
padding: 2px;
border: 3px solid black;
width: 100px;
}
#ex2 {
margin-left: 10px;
padding-left: 2px;
padding-right: 4px;
width: 40px;
height: 20px;
}
calc()
CSS
calc()
-Funktionsaufrufs notiert werden<h1>Test</h1>
<div class="calc">1</div>
<div class="calc">2</div>
<div class="calc">3</div>
<div class="abs">1</div>
<div class="abs">2</div>
<div class="abs">3</div>
h1 {
width: calc(100% - 80px);
text-align: center;
background-color: green;
}
.calc {
float: left;
width: calc(100% / 3);
background: red;
}
.abs {
float: left;
width: 33.3%;
background: blue;
}
border
none
, hidden
, dotted
, dashed
, solid
, double
, …)<div class="box" id="box1">
#box1
</div>
<div class="box" id="box2">
#box2
</div>
.box {
width: 100px;
height: 100px;
}
#box1 { border: 1px solid black; }
#box2 { border: 5px dashed fuchsia; }
border-radius
als Kurzschreibweise für alle vier Werteborder-top-left-radius
, border-top-right-radius
, border-bottom-right-radius
& border-bottom-left-radius
..box {
width: 100px;
height: 100px;
}
#box1 {
border: 1px dotted black;
border-radius: 15px;
}
#box2 {
border: 5px double fuchsia;
border-radius: 10% 30% 10% 30%;
}
#box2:hover {
border-radius: 10%;
}
#box3 {
border: 2px solid green;
border-radius: 200px;
}
<div class="box" id="box1">#box1</div>
<div class="box" id="box2">#box2</div>
<div class="box" id="box3">#box3</div>
box-shadow
box-shadow: <Versatz X-Achse> <Versatz Y-Achse> <Farbe>
blur
) ist die Distanz zu den Rändern an denen der Schatten “ausfasert”spread-radius
.box {
width: 100px;
height: 100px;
}
#box1 {
border: 3px solid red;
box-shadow: 25px 25px black;
}
#box1:hover {
box-shadow: 25px 25px 10px black;
}
#box2 {
border: 5px double fuchsia;
border-radius: 10% 30% 10% 30%;
box-shadow: 10px 10px blue;
}
#box2:hover {
box-shadow: 10px 10px 0px 10px blue;
}
<div class="box" id="box1">
#box1
</div>
<p>Ich bin ein Text zwischen den Boxen</p>
<div class="box" id="box2">
#box2
</div>
:hover
beinflusst werdenCSS
-Eigenschaftenborder
: Eignet sich sehr gut zur Hervorhebung.box {
width: 50vw;
height: 20vh;
background-color: LightGoldenRodYellow;
}
div.box:hover {
border: 5px double black;
}
.box.smart {
border: 5px solid transparent;
width: calc(50vw - 10px);
}
<div class="box">
Not Smart <!-- (Clever?) -->
</div>
<div class="box smart">
.smart <!-- (Clever & Smart?) -->
</div>
<div class="box">
Not Smart <!-- (Clever?) -->
</div>
float
text
- und inline
-Elementen um entsprechende Elemente herumzufließenfloat
-Kindern verschwindet möglicherweiseleft
oder right
none
figure {
float: right;
width: 100px;
border: 1px solid black;
}
<figure>
<img src="/assets/photos/sherlock-holmes-portrait-paget.jpg">
<figcaption>
Sherlock Holmes,
Urheber: <a rel="author"
href="https://de.wikipedia.org/wiki/Sidney_Paget">
Signey Paget
</a>
</figcaption>
</figure>
{{ page.flavour_text }}
Quelle: selfhtml-Wiki
margin
des body
-Elements nötigdiv {
width: calc(25vw - 2px);
height: calc(10vh - 2px);
font-size: 2rem;
text-align: center;
border: 1px solid black;
}
div.l {
float: left;
background-color: rgba(255, 0, 0, 0.5);
}
div.r {
float: right;
background-color: rgba(0, 0, 255, 0.5);
}
<div class="l">1</div>
<div class="r">2</div>
<div class="r">3</div>
<div class="r">4</div>
<div class="r">5</div>
<div class="r">6</div>
<div class="r">7</div>
<div class="r">8</div>
<div class="r">9</div>
<div class="r">10</div>
<div class="l">11</div>
<div class="l">12</div>
div {
width: 98px;
height: 48px;
font-size: 2rem;
text-align: center;
border: 1px solid black;
}
div.l {
float: left;
background-color: rgba(255, 0, 0, 0.5);
}
div.huge{
font-size: 4rem;
height: 80px;
}
div.r {
float: right;
background-color: rgba(0, 0, 255, 0.5);
}
<div class="l">1</div>
<div class="l huge">2</div>
<div class="r">3</div>
<div class="l">4</div>
<div class="l">5</div>
<div class="r">6</div>
<div class="l">7</div>
<div class="l">8</div>
<div class="r">9</div>
<div class="l">10</div>
<div class="l">11</div>
float
-Bildes unberücksichtigt<h1>
Travel through Light and Dark Worlds
</h1>
<img src="/assets/photos/lttp-worlds.png">
<p>
{{ page.long_text }}
</p>
<footer>
This is a footer
</footer>
img {
float: left;
}
footer {
border-top: 3px dashed black;
text-align: center;
}
clear
<h1>
Travel through Light and Dark Worlds
</h1>
<img src="/assets/photos/lttp-worlds.png">
<p>
{{ page.long_text }}
</p>
<footer class="clearboth">
This is a footer
</footer>
img {
float: left;
}
footer {
border-top: 3px dashed black;
text-align: center;
}
.clearboth {
clear: both;
}
float
-Elemente enthält, ist die Höhe 0<div class="image-gallery">
{% for i in (1..12) %}
<img src="/assets/icons/squirrel.svg">
{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
}
.image-gallery img {
float: left;
width: calc(25% - 10px);
margin: 5px;
}
<div class="image-gallery">
{% for i in (1..12) %}
<img src="/assets/icons/squirrel.svg">
{% endfor %}
<div style="clear: both;"></div>
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
}
.image-gallery img {
float: left;
width: calc(25% - 10px);
margin: 5px;
}
clear
-fix<div class="image-gallery clearfix">
{% for i in (1..12) %}
<img src="/assets/icons/squirrel.svg">
{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
}
.clearfix::after {
visibility: hidden; /* Versteckter Hack ... */
height: 0; /* ... der nichts vertikal verschiebt ... */
content: " "; /* ... technisch gesehen Inhalt hat */
display: block; /* ... immer ein Block ist ... */
clear: both; /* ... und clear erzwingt! */
}
.image-gallery img {
float: left;
width: calc(25% - 10px);
margin: 5px;
}
display: inline-block
(ohne float
)inline-block
erlaubt die Angabe von Dimensionen ohne Zeilenumbrüche zu erzwingeninline
-Elemente, von links nach rechts positioniert<div class="image-gallery">
{% for i in (1..12) %}
<img src="/assets/icons/squirrel.svg">
{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
}
.image-gallery img {
display: inline-block;
width: calc(25% - 10px);
margin: 5px;
}
display: inline-block
(ohne float
)font-size
des Eltern-Containers auf 0
setzen<div class="image-gallery">
{% for i in (1..12) %}<img src="/assets/icons/squirrel.svg">{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
width: 100%;
}
.image-gallery img {
display: inline-block;
width: calc(25% - 10px);
margin: 5px;
}
calc
-Ausdrücke um von der Breite die Innenabstände abzuziehenbox-sizing: content-box
: “Klassisches” Modell, Breite und Höhe stehen für sich selbstbox-sizing: border-box
: “Alternatives” Modell, Innenabstände und Rahmen werden von der Breite oder Höhe abgezogen.parent {
width: 400px;
border: 10px solid SaddleBrown;
}
.parent > div {
width: 100%;
}
#content-box {
box-sizing: content-box; /* Redundant */
border: 10px solid red;
}
#content-box-calc {
box-sizing: content-box; /* Redundant */
width: calc(100% - 20px);
border: 10px solid green;
}
#border-box {
box-sizing: border-box;
border: 10px solid blue;
}
<div class="parent">
<div id="content-box">#content-box</div>
<div id="content-box-calc">#content-box-calc</div>
<div id="border-box">#border-box</div>
</div>
inline
-Elemente) noch vertikale (block
-Elemente) Ausrichtungen werden bevorzugtflex-wrap: nowrap | wrap | wrap-reverse;
flex-direction: row | row-reverse | column | column-reverse;
justify-content: flex-start | flex-end | center | space-between | space-around;
<div class="image-gallery">
{% for i in (1..24) %}
<div>{{ i }}</div>
{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
display: flex;
}
.image-gallery div {
border: 1px solid black;
background-color: lime;
width: 25px;
margin: 5px;
}
flex-grow
flex-grow
auf 0
.flex-grow
flex-grow
/ Summe aller Verhältnisse
ergibt Gewichtungwidth
und height
flex-basis
um allgemeinere width
& height
zu überschreiben<div class="flex-parent">
<p>Laaaaaang</p>
<p>Kurz</p>
<p>Laaaaaang</p>
</div>
<div class="flex-parent">
<p style="flex-grow: 1">1</p>
<p>Kurz</p>
<p style="flex-grow: 1">1</p>
</div>
<div class="flex-parent">
<p style="flex-grow: 3">3</p>
<p style="flex-grow: 2">2</p>
<p style="flex-grow: 1">1</p>
</div>
<div class="flex-parent">
<p style="flex-grow: 3">3</p>
<p style="width: 200px">200px</p>
<p style="flex-grow: 2">2</p>
<p style="flex-grow: 1">1</p>
</div>
.flex-parent {
border: 1px solid red;
background-color: yellow;
display: flex;
flex-wrap: wrap;
flex-direction: row;
}
.flex-parent > * {
border: 1px solid black;
background-color: lime;
}
flex
statt float
<div class="image-gallery">
{% for i in (1..12) %}
<img src="/assets/icons/squirrel.svg">
{% endfor %}
</div>
.image-gallery {
border: 1px solid red;
background-color: yellow;
display: flex;
flex-wrap: wrap;
}
img {
margin: 5px;
width: calc(25% - 10px);
}
<header>
Wenn ich groß bin, werde ich ein dreispaltiges Layout
</header>
<nav>nav</nav>
<main>main</main>
<aside>aside</aside>
<footer>footer</footer>
body {
background-color: yellow;
}
header, nav, main, aside, footer {
background: lightgray;
border: 1px solid black;
padding: 10px;
}
nav, main, aside {
min-height: 100px;
}
float
/* Wird in der Vorlesung erarbeitet */
flex
<header>
Drei Spalten mit Flex
</header>
<div id="flex">
<nav>nav</nav>
<main>main</main>
<aside>aside</aside>
</div>
<footer>footer</footer>
/* Wird in der Vorlesung erarbeitet */
left
, right
, top
und bottom
position
-Eigenschaftz-index
CSS
-Eigenschaft z-index
erlaubt Eingriff in die Zeichenreihenfolgeposition: relative
<div>Un</div>
<div>ord</div>
<div>nung</div>
div {
float: left;
position: relative;
border: 1px solid black;
text-align: center;
width: calc(33% - 2px);
height: 40px;
}
div:nth-child(1) {
top: 10px;
}
div:nth-child(2) {
top: 25px;
left: -20px;
}
div:nth-child(3) {
top: 5px;
right: 60px;
}
position: absolute
left
, right
, top
oder bottom
sinnvollposition: relative
genutzt<div class="bureau-parent">
<img src="/assets/photos/bureau.jpg" alt="Büro mri">
<div class="bureau-box">
</div>
</div>
.bureau-parent {
position: relative;
}
img {
width: 100%;
}
.bureau-box {
position: absolute;
border: 15px solid white;
width: 20%;
height: 12%;
top: 48%;
left: 30%;
}
position: fixed
<h1 id="top">Weise Worte</h1>
<a class="back-to-top" href="#top">Zurück zum Start</a>
{% for quote in page.quotes %}
<div>
<blockquote>{{ quote.text }}</blockquote>
{{ quote.author }} ‐
<a href="{{ quote.url }}" rel="author">{{ quote.title}}</a>
</div>
{% endfor %}
.back-to-top {
position: fixed;
bottom: 0px;
right: 0px;
background-color: yellow;
}
position: fixed
und ungewollte Überdeckung<header>Header</header>
<main>{{ page.main }}</main>
<footer>Footer</footer>
main {
margin-top: 0px; /* FIXME */
margin-bottom: 0px; /* FIXME */
}
footer, header {
position: fixed;
height: 50px;
width: 100%;
background-color: yellow;
}
footer { bottom: 0px; }
header { top: 0px; }
position: sticky
relative
)<dl>
<dt>A</dt>
<dd>Andrew W.K.</dd>
<dd>Apparat</dd>
<dd>Arcade Fire</dd>
<dd>At The Drive-In</dd>
<dd>Aziz Ansari</dd>
<dt>C</dt>
<dd>Chromeo</dd>
<dd>Common</dd>
<dd>Converge</dd>
<dd>Crystal Castles</dd>
<dd>Cursive</dd>
<dt>E</dt>
<dd>Explosions In The Sky</dd>
<dt>T</dt>
<dd>Ted Leo & The Pharmacists</dd>
<dd>T-Pain</dd>
<dd>Thrice</dd>
<dd>TV On The Radio</dd>
<dd>Two Gallants</dd>
</dl>
* {
font-size: 2rem;
}
dt {
background-color: red;
position: sticky;
top: 0px;
text-align: center;
}
z-index
<div class="stack">
<img class="first" src="/assets/screenshot/party-low.png">
<img class="second" src="/assets/screenshot/party-high.png">
</div>
.stack {
position: relative;
}
.stack img {
width: 100%;
position: absolute;
top: 0px;
}
.stack img.first, .stack img.second:hover {
z-index: 1;
}
.stack img.second, .stack img.first:hover {
z-index: 0;
}