{"id":115,"date":"2019-02-14T10:05:35","date_gmt":"2019-02-14T10:05:35","guid":{"rendered":"https:\/\/math-brownies.de\/?p=115"},"modified":"2024-04-08T11:35:36","modified_gmt":"2024-04-08T11:35:36","slug":"webseitenlayout-flex-grid-und-float","status":"publish","type":"post","link":"https:\/\/math-brownies.de\/index.php\/2019\/02\/14\/webseitenlayout-flex-grid-und-float\/","title":{"rendered":"Webseitenlayout (Flex, Grid und Float)"},"content":{"rendered":"\n<p>In der heutigen Unterrichtsstunde haben wir uns mit CSS besch\u00e4ftigt und sind auf die Frage gesto\u00dfen, wie man Elemente nebeneinander positioniert. Da ich bisher immer mit Bootstrap gearbeitet habe, war mir es gar nicht bewusst, dass die Breite eines Div-Containers gar nicht \u00e4ndert, ob er unter oder neben dem n\u00e4chsten Container gezeigt wird &#8211; per default sind die Elemente immer untereinander. <\/p>\n\n\n\n<p>Mit ein wenig Recherche auf W3Schools und selfhtml habe ich folgende Unterscheidungen gefunden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Die Css-Eigenschaft &#8222;float&#8220;: wird verwendet, um Elemente relativ zu anderen zu positionieren &#8211; am ehesten f\u00fcr Text-Bild Kombinationen<\/li>\n\n\n\n<li>Flexbox-Design: wird verwendet, wenn man die gesamte Seite entweder in Spalten <strong>oder<\/strong> Zeilen unterteilen will<\/li>\n\n\n\n<li>Grid-Design: wird verwendet, wenn man die gesamte Seite in Spalten <strong>und<\/strong> Zeilen aufteilen will.<\/li>\n<\/ul>\n\n\n\n<p>Der Nachteil von float ist, dass float nicht immer responsiv ist &#8211; ich verliere also eher mal mein gutes Aussehen bei anderen Bildschirmgr\u00f6\u00dfen &#8211; und dass es eben nur ein oder zwei Elemente zueinander positioniert, aber nicht ein klares Layout der gesamten Seite anbietet. Daf\u00fcr ist es am einfachsten zu verstehen. Ich kann den float-Wert auf right, left, none oder inherit setzen, also ist zB. der Text rechts oder links neben dem Bild oder es gibt keinen Textumlauf (Dann steht trotzdem eine Zeile Text neben dem Bild, in Office w\u00e4re das die Eigenschaft &#8222;als Zeichen&#8220;!) Inherit bedeutet, dass der Float-Wert der Elternelements geerbt wird. Man kann eine Box &#8222;\u00fcber&#8220; eine andere legen, wenn die erste links oder rechtsb\u00fcndig ist und die zweite keine Angabe hat &#8211; will man das nicht, nutzt man die Eigenschaft &#8222;clear&#8220;. (<a href=\"https:\/\/www.w3schools.com\/css\/css_float.asp\">Float-Artikel auf w3schools<\/a>)<\/p>\n\n\n\n<p>Flexbox und Griddesign legen Eigenschaften f\u00fcr das gesamte Body-Element fest. Die gesamte Seite wird dann (bei Flex) ein Container, dessen Ausrichtung (Flie\u00dfrichtung) man mit dem Befehl &#8222;direktion&#8220; beeinflusst. (<a href=\"https:\/\/wiki.selfhtml.org\/wiki\/CSS\/Tutorials\/Flexbox\/Flex-Container\">Selfthtml-Artikel zu Flex-Containern<\/a> und <a href=\"https:\/\/www.mediaevent.de\/css\/display-flex.html\">Artikel zur CSS-Eigenschaft Flex<\/a>). Flexbox beh\u00e4lt ein Layout nicht ganz so gut bei flexiblen viewports &#8211; was auf dem einen Display nach 2 Boxen nebeneinander aussieht, kann auf dem n\u00e4chsten Display drei Boxen nebeneinander oder mehr sein. Aber Flexbox ist leicht umzusetzen.<\/p>\n\n\n\n<p>Bei Grid &#8211; also auch bei Bootstrap, das ist ein Gridlayout &#8211; wird die Seite komplett in ein Raster unterteilt. (<a href=\"https:\/\/wiki.selfhtml.org\/wiki\/CSS\/Tutorials\/Grid\/Einf%C3%BChrung\">Sehr verst\u00e4ndlicher \u00dcberblick zu Rasterbegriffen<\/a>) Man stellt das Display auf &#8222;grid&#8220; und kann die Breite der Spalten definieren: Entweder absolut oder mit der Einheit fr (Also Bruchteil), em oder vh &#8211; oder man w\u00e4hlt den Wert &#8222;auto&#8220;. (1em ist in etwa die Breite des jeweils angezeigten Buchstaben M, vh steht f\u00fcr viewport und referenziert prozentual auf die gesamte Breite der Seite\/ des druckbaren Bereichs.)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">body {display:grid;       <br>      grid-template-columns: 1fr 2fr 1fr ; <br>}<\/pre>\n\n\n\n<p><br>In dem obigen Beispiel werden 3 Spalten erzeugt, die mittlere ist doppelt so gro\u00df wie die beiden \u00e4u\u00dferen. Prozentangaben wie bei &#8222;width&#8220; gehen nicht. Auch die H\u00f6he der Zeilen kann man vorher festlegen, mit grid-template-rows. Das macht Sinn, wenn man etwa eine feste H\u00f6he f\u00fcr Header und Footer will. Bei einer Wiederholung derselben Gr\u00f6\u00dfe nutzt man eine &#8222;repeat&#8220;-Anweisung, zB grid-template-columns:repeat(4, 1fr);<\/p>\n\n\n\n<p>F\u00fcr die einzelnen Elemente legt man hinterher mit den Befehlen grid-column und grid-row fest, \u00fcber welche der Rasterzellen sie sich erstrecken sollen. Die <a href=\"https:\/\/wiki.selfhtml.org\/wiki\/CSS\/Tutorials\/Grid\/Grid-Items#Anfangs-_und_Endlinien_festlegen\">Anleitung dazu<\/a> ist auf Deutsch verst\u00e4ndlicher, finde ich.<\/p>\n\n\n\n<p>Man kann noch verschiedene Variationen vornehmen, um das Design noch reponsiver zu machen, etwa mit auto-fill, aber f\u00fcr unser Projekt gen\u00fcgt das erstmal. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der heutigen Unterrichtsstunde haben wir uns mit CSS besch\u00e4ftigt und sind auf die Frage gesto\u00dfen, wie man Elemente nebeneinander positioniert. Da ich bisher immer mit Bootstrap gearbeitet habe, war mir es gar nicht bewusst, dass die Breite eines Div-Containers gar nicht \u00e4ndert, ob er unter oder neben dem n\u00e4chsten Container gezeigt wird &#8211; per [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":120,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[12,3,10],"tags":[20,23,22,21],"class_list":["post-115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css","category-informatik","category-webseitenpflege","tag-css","tag-grid","tag-layout","tag-webseitendesign"],"_links":{"self":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/comments?post=115"}],"version-history":[{"count":5,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/115\/revisions"}],"predecessor-version":[{"id":252,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/posts\/115\/revisions\/252"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/media\/120"}],"wp:attachment":[{"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/media?parent=115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/categories?post=115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/math-brownies.de\/index.php\/wp-json\/wp\/v2\/tags?post=115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}