Bildet Gruppen und jede Gruppe befasst sich mit einem dieser CSS-Selektor.
❓ Was bewirkt die CSS-Regel? Welche Elemente werden selektiert? Wie heisst der eingesetzte Selektor? Erkläre am Beispielcode.
<h1 class="datenschutz">Datenschutz und Co.</h1>
<h2>Bemerkung</h2>
<p>
Klare Definition der Begriffe nicht möglich.
</p>
<h3>Thema <em class="datenschutz">Datenschutz</em></h3>
<p>
Bei dem <em class="datenschutz">Datenschutz</em> geht es um den
Schutz der Privatsphäre eines jeden Menschen.
</p>
<p>
Datenschutz garantiert jedem Bürger ein Recht auf informationelle Selbst-
bestimmung und schützt ihn vor missbräuchlicher Verwendung seiner Daten,
z.B. bei <a href="https://google.com" target="_blank">Google</a>.
</p>
<p id="copyright"> © <a href="https://drdatenschutz.de">Dr. Datenschutz</a> </p>
#copyright { background-color: cyan; }
.datenschutz { background-color: skyblue; }
#copyright a { color: black; }
p em { color: green; }
p { padding: 10px; }
h1 { margin-bottom: 45px; }
a:hover { color: red; }
h2, h3, em { text-decoration: underline; }
em.datenschutz { font-weight: bold; }
h3 + p { color: darkblue; font-style: italic; }
Box-Modell: Für CSS ist alles eine Box.
CSS kennt zwei Arten, wie ein HTML-Element in der Seite positioniert werden kann:
display
kann man den Typ ändern.
DO WHILE
(es kommen euch noch weitere Tags in den Sinn) ➡ Demo: https://jsfiddle.net/8r0f12jp/
<h1>
<h2>
<h6>
<strong>
<em>
<u>
<s>
<p>
<img>
<a>
<ul>
<ol>
<li>
<blockquote>
<table>
<td>
<tr>
<code>
<tt>
<br/>
<hr/>
<sup>
<sub>
➡ Demo: https://jsfiddle.net/8r0f12jp/
Block-Elemente | Inline-Elemente |
---|---|
<h1> , <h2> , ..., <h6> <p> <br/> <hr/> <li> , <ul> , <ol> <blockquote> <tr> , <table> |
<strong> <em> <u> <s> <code> , <tt> <sup> , <sub> <img> <a> <td> |
<div>
|
<span>
|
Warnung: Die beiden Tags <div>
und <span>
agieren als zu gestaltende, "leere Hülle" für irgendeinen Inhalt und haben keinerlei semantischen Nutzen.
display
Block-Elemente haben die CSS-Eigenschaft display:block;
und Inline-Elemente display:inline;
Block-Elemente, z.B.
p { display: block; }
Inline-Elemente, z.B.
strong { display: inline; }
💡 Es ist möglich, die Eigenschaft zu ändern, sodass aus einem (standardmässigen) Block-Element ein Inline- wird, z.B.
li { display: inline; background-color: yellow; }
❓ Was passiert, wann man die Abstände (padding
oder margin
) vergrössert?
Inline-Block kombiniert die beiden bisherigen Eigenschaften und ermöglich, dass Inline-Elemente besser "gestylt" werden können.
li {
display: inline-block;
margin: 4px 10px;
padding: 8px;
background-color: yellow;
border: 1px solid black;
}
➡ Try It
display
➡ https://www.w3schools.com/css/tryit.asp?filename=trycss_inline-block_span1
Bemerkung: Nebst diesen drei Typen gibt es noch weitere, z.B. flex
, mit dem sich ebenfalls Navigationen realisieren lassen (siehe später).
<header> |
Kopfbereich |
<nav> |
Navigationsmenü |
<main> |
Hauptteil |
<article> |
Artikel im Hauptteil |
<section> |
Unterkapitel im Hauptteil |
<footer> |
Fusszeile |
<aside> |
Inhalt "am Rande" |
<header>
ist ein HTML5-Strukturelement im
<body>
, während <head>
für den Benutzer nicht sichtbare Informationen enthält.
Auf diese HTML5-Strukturelemente kann man ganz einfach via Typen-Selektor zugreifen:
header { background-color: red; }
nav { background-color: yellowgreen; }
main { background-color: yellow2; }
article { background-color: orange; padding: 5px; }
section { background-color: tan; }
aside { background-color: magenta; padding: 5px; }
footer { background-color: cyan; }
➡ Try It
➡➡
margin: auto;
header { margin: auto; }
<header>
, usw.)
sind standardmässig 100% breit (Block-Elemente)!
header { margin: auto; width: 80%; }
➡ Try It
Wie können alle Seitenelemente auf einmal horizontal zentriert werden?
header { margin: auto; width: 80%; }
nav { margin: auto; width: 80%; }
main { margin: auto; width: 80%; }
footer { margin: auto; width: 80%; }
header, nav, main, footer { margin: auto; width: 80%; }
➡ Try It
#wrapper { margin: auto; width: 80%; }
Füge einen unsichtbaren Container (= <div>
) ein,
der alle umschliesst/einwickelt (engl. to wrap), die zentriert werden sollen.
HTML:
<body>
<div id="wrapper">
<header> ... </header>
<nav> ... </nav>
<main> ... </main>
<footer> ... </footer>
</div>
</body>
CSS:
#wrapper { margin: auto; width: 80%; }
display: inline-block
:
https://www.w3schools.com/css/tryit.asp?filename=trycss_inline-block_span1