class
wird für optische Anpassungen genutztid
wird zur eindeutigen Identifizierung benutzt#ziel
navigieren zu IDsblock
- und inline
-Elementeblock
-Elemente beginnen im Layout auf einer neuen Zeile und nehmen die ganze Seitenbreite eininline
-Elemente betten sich in den Textfluss ein um so wenig Platz wie möglich zu beanspruchenblock
-Elemente mit div
<div class="game-card artifact" id="black-lotus">
<h1>Black Lotus</h1>
<img src="/assets/photos/black-lotus.jpg"
alt="black-lotus">
<p class="rules">
Adds 3 mana of any single colour of your choice
to your mana pool, then is discarded. Tapping
this artifact can be played as an interrupt.
</p>
</div>
<div class="game-card black" id="thoughtseize">
<h1>Thoughtseize</h1>
<img src="/assets/photos/thoughtseize.jpg"
alt="thoughtseize">
<p class="rules">
Target player reveals his or her hand. You choose
a nonland card from it. That player discards that
card. You lose 2 life.
</p>
<p class="flavour">
Any dream is a robust harvest. Still, I prefer the
timeworn dreams, heavy with import, that haunt the
obsessive mind.
</p>
</div>
inline
-Elemente mit span
<div class="game-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>
<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
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; }
nth-child
zur “Abwechslung”nth-child
lassen sich Selektoren auf nur jedes n
-te Kind der Trefferliste eingrenzeneven
) und ungerade (odd
)<ul>
<li>Ho</li>
<li>Ho</li>
<li>Ho</li>
<li>Ho</li>
</ul>
ul > li:nth-child(even) {
background-color: red;
}
ul > li:nth-child(odd) {
background-color: blue;
}
<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
) 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 |
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;
}
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;
}
CSS
-Eigenschaften findet sich zum Beispiel im Mozilla Developer Network.
font-size
: Größe des Textestext-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;
}
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>
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 }}
CSS
CSS
-Eigenschaften werden nicht unmittelbar angewendet, sondern zeitabhängig verändertall
möglichtransition-timing-function
<!-- Vorsicht: Dies ist keine Handlebars-Syntax -->
{% for i in (1..5) %}
<div class="bar">
Bar {{ i }}
</div>
{% endfor %}
.bar {
width: 20%;
background-color: red;
text-align: right;
transition: width 2s;
}
.bar:hover {
width: 100%;
}
{% for i in (1..5) %}
<div class="bar">
Bar {{ i }}
</div>
{% endfor %}
.bar {
width: 20%;
background-color: red;
text-align: right;
transition: width 2s, background-color 0.5s;
}
.bar:hover {
width: 100%;
background-color: green;
}
{% for i in (1..5) %}
<div class="bar">
Bar {{ i }}
</div>
{% endfor %}
.bar {
width: 20%;
background-color: red;
border: 2px solid red;
text-align: right;
transition: all 2s;
}
.bar:hover {
width: 90%;
background-color: green;
margin-left: 10%;
border: 2px solid yellow;
}
MInf
und nicht CGT
steps(number, direction)
number
Ganzzahl für die Anzahl der Schrittedirection
ist start
oder end
und bestimmt ob am Anfang oder am Ende keine Zeit vergehen sollframes(number)
number
Ganzzahl für die Anzahl der Schritte<div class="parent">
{% for func in page.transitions %}
<div class="bar"
style="transition-timing-function: {{ func }};">
<code>{{ func }}</code>
</div>
{% endfor %}
</div>
.bar {
width: 25%;
background-color: rgba(255, 0, 0, 0.2);
border: 1px solid black;
margin: 2px;
text-align: right;
transition: width 3s;
}
.parent:hover .bar {
width: 100%;
}
CSS
-Eigenschaften durchlaufen eine Liste von Zuständen (“Keyframe”)animation-name
für die zu verwendende Keyframe-Listeanimation-duration
für die Dauer der Animationanimation-iteration-count
für die Anzahl der Wiederholungen<div class="rainbow">
Rainbow
</div>
@keyframes colorRotate {
from { color: rgb(255, 0, 0); }
16.6% { color: rgb(255, 0, 255); }
33.3% { color: rgb( 0, 0, 255); }
50% { color: rgb( 0, 255, 255); }
66.6% { color: rgb( 0, 255, 0); }
83.3% { color: rgb(255, 255, 0); }
to { color: rgb(255, 0, 0); }
}
.rainbow {
font-size: 15vw;
font-family: monospace;
text-align: center;
animation: colorRotate 3s linear 0s infinite;
}