Co to jest Flexbox, zalety Wsparcie dla przeglądarek, wady Dostępność a Flexbox Przykłady, zastosowanie Test

Podobne dokumenty
GRID LAYOUT. Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

Nazwa implementacji: CSS i box model. Autor: Opis implementacji: Poznajemy podstawy CSS oraz dowiadujemy się o rozmieszczaniu elementów na stronie.

Podstawy (X)HTML i CSS

Wprowadzenie do FlexBox

Powtórzenie materiału: CSS3 Spis treści

Laboratorium 1: Szablon strony w HTML5

Przegląd technologii

Sass Rewolucja w CSS +

Dokument hipertekstowy

HTML cd. Ramki, tabelki

Załącznik Nr 2 do Uchwały Nr XXIX/181/2014 Rady Gminy Bojszowy z dnia 17 stycznia 2014 r.

Zadanie utworzenie szablonu kalkulatora

HTML (HyperText Markup Language) hipertekstowy język znaczników

plansoft.org Zmiany w Plansoft.org

Podstawy pozycjonowania CSS

Tworzenie stron internetowych w kodzie HTML Cz 5

Szybko, prosto i tanio - ale czy na pewno?

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Mailingi HTML. Specyfikacja techniczna

Języki programowania wysokiego poziomu. HTML cz.2.

Parafia. Zakres dat: Piątek, 11 Stycznia Dzienne zestawienie oglądalności strony Parafii Maryi Matki Kościoła w Sulejówku

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Wykorzystano fragmenty wykładów dra inż. J. Kuchty ARKUSZE STYLÓW CSS. Dokumenty cyfrowe KASK ETI Politechnika Gdańska.

media Blitz wydajne sytemy szablonów

Camspot 4.4 Camspot 4.5

Zaawansowane projektowanie stron w CSS

Specyfikacja techniczna dot. mailingów HTML

Box model: Content. Content - obszar zawartości określany jest za pomocą deklaracji wysokości i szerokości.

Wykład 5_2 Arkusze stylów dziedziczenie. Technologie internetowe Zofia Kruczkiewicz

Content Security Policy jako ochrona przed skutkami ataków XSS.

CSS & SASS / SCSS - Wprowadzenie do stylów, techniki zaawansowane oraz preprocesory

Responsywne strony WWW

ANIMACJE W CSS3. Czyli po co płacić podatek o Javy Script i JQuery

Dwie perspektywy responsive web design: user experience i front-end developer

APEX zaawansowany raport

Parafia. Zakres dat: Czwartek, 4 Stycznia Dzienne zestawienie oglądalności strony Parafii Maryi Matki Kościoła w Sulejówku

Norton Sec.3.0 STD PL CARD 1U 1Dvc 1Y Model : Norton Sec.3.0 STD PL CARD 1U 1Dvc 1Y ram sp. j.

Elementarz HTML i CSS

HTML (HyperText Markup Language)

LESS - CSS dla leniwych

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Parafia. Zakres dat: Wtorek, 2 Stycznia Dzienne zestawienie oglądalności strony Parafii Maryi Matki Kościoła w Sulejówku

Parafia. Zakres dat: Niedziela, 15 Października Dzienne zestawienie oglądalności strony Parafii Maryi Matki Kościoła w Sulejówku

RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub

Alfabetyczna lista stylów

SPECYFIKACJA FORM REKLAMOWYCH

używane skróty: HTTP - protokół do transferu tekstu, hipertekstu, zbiorów binarnych URL - jednolity lokalizator zasobów

Wprowadzenie do języka HTML

Laboratorium 1: Pierwszy projekt w Angular

Sierpień 2015 rozwiązanie plik: index.htlm

Zawartość specyfikacji:

Tworzenie Stron Internetowych. odcinek 8

Wyświetlanie publikacji w formacie DjVu. Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby:

Systemy internetowe Wykład 2 CSS

Projektowanie aplikacji internetowych. CSS w akcji

RESPONSYWNE INTERFEJSY. Klasy urządzeń klienckich Responsywne style CSS. Waldemar Korłub

Kaskadowość stylów określa pierwszeństwo w oddziaływaniu na te same elementy strony różnych stylów.

Szczegółowe informacje na temat serwisu gemiusranking PL znajdują się w zakładce Metodologia.

Spis treści. 1. Szerokość witryny WWW

Spis treści. Konwencje zastosowane w książce...5. Dodawanie stylów do dokumentów HTML oraz XHTML...6. Struktura reguł...9. Pierwszeństwo stylów...

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

ĆWICZENIE Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect).

Elementy div i style CSS w praktyce

SPECYFIKACJA OPAKOWANIA/ BAGS SPECIFICATION TYP/TYPE: SASZETKA TYPU DOYPACK/ SACHET TYPE DOYPACK MATERIAŁ/ MATERIAL: "ALUMINIUM" PET12/AL8/PE...

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

DOM (Document Object Model)

Z CSS3 szybciej i przyjemniej

Oczywiście występują także znaczniki, bez ich odpowiednika kończącego, np. <BR>

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

Instrukcja obsługi Routera 4G

Cascading Style Sheets

MAGLE NIECKOWE - MURAL ROLLER IRONERS. 180 Elektryczne / Electric PE-18/100 M PE-18/120 M -

Drukarka laserowa monochromatyczna Xerox Phaser 3052 V_NI drukowanie sieciowe Wi-Fi / LAN

XML Path Language (XPath)

Co już można, a co będzie można zrobić w e-podręczniku technologicznie?

Responsive Web Design

Kompresja stron internetowych

Układy witryn internetowych

1. Nazwa (firma), adres Zamawiającego oraz nazwa i adres jednostki wnioskującej:

CSS - layout strony internetowej

Lecture 18 Review for Exam 1

Atrybuty znaczników HTML

Metaprogramowanie w Ruby

Zrozumieć CSS. Co To Jest Styl?

2. Prezentacja wizualna

HTML. Tim Berners-Lee

Paweł Rajba

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Studia Podyplomowe Grafika komputerowa i Techniki Multimedialne, 2015, semestr II, dr inż. Robert Banasiak Projektowanie Stron WWW.

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Ulotka. Wersja

HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.

Bootstrap. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

Installation of EuroCert software for qualified electronic signature

Zaawansowany kurs języka Python

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Zapytanie ofertowe. Przystosowanie strony zsz.com.pl na urządzenia mobilne

I. Formatowanie tekstu i wygląd strony

Transkrypt:

FLEXBOX

Co to jest Flexbox, zalety Wsparcie dla przeglądarek, wady Dostępność a Flexbox Przykłady, zastosowanie Test

FLEXBOX W3C Last Call Working Draft model pozycjonowania elementów blokowych kolejna wartość parametru display (display: block, display: inline, display: flex etc.) opisuje zachowanie kontenera i jego elementów

ZALETY FLEXBOXA ustalanie kolejności elementu ustalanie kierunku ułożenia elementów powiększanie lub zmniejszanie elementów ułożenie względem kontenera lub siebie nawzajem odcięcie się od jednostek kolumny równej wysokości założenie nieznanego lub dynamicznego rozmiaru elementów wydajność -> responsywność

WSPARCIE PRZEGLĄDAREK PROBLEM 1 BROWSERS THAT DON T SUPPORT FLEXBOX Desktop: Old versions of IE (9-) and Opera (12-) Touch: Opera Mini (7-) BROWSERS THAT SUPPORT THE OLD SYNTAX All of these desktop and touch browsers require the -webkitvendor prefix (except for Firefox, which needs the -mozprefix). Desktop: Firefox 2 21, Chrome 4 20, Safari 3.1 6 Touch: Android 2.1 4.3, ios 3.2 6.1, UC browser 9.9 on Android, BlackBerry 7 BROWSERS THAT SUPPORT THE TWEENER SYNTAX Desktop and touch: IE 10 (with -ms- vendor prefix)

WSPARCIE PRZEGLĄDAREK PROBLEM 1 BROWSERS THAT SUPPORT THE NEW SYNTAX Desktop: Unprefixed: Chrome 29+, Firefox 28+, IE 11+, Opera 17+ Prefixed: -webkit- prefix for Chrome 21+, Safari 6.1+, Opera 15+ Note: Old versions of Firefox (22 to 27) support the new syntax minus the flex-wrap and flex-flow properties. Opera (12.1+ and 17+) supports flexbox without vendor prefixes, but intermediate versions 15 and 16 require vendor prefixes. Touch: Unprefixed: Android 4.4+, Opera mobile 12.1+, BlackBerry 10+, Chrome for Android 39+, Firefox for Android 33+, IE 11+ mobile Prefixed: -webkit- prefix for ios 7.1+

.flex-container { display: -webkit-box; /* OLD - Safari 3.1-6, Chrome 20-, ios, Android */ display: -moz-box; /* OLD - Firefox 2-27 (buggy but mostly works) */ display: -ms-flexbox; /* TWEENER - IE 10 */ display: -webkit-flex; /* NEW Safari 6.1-8, Chrome 21+, Blackberry 10+, Android 4.3-, */ display: flex; /* NEW - Safari 9+, Edge 12+, Opera 12.1+, Firefox 28+, Opera Mini 8+ */ }

@mixin flexbox() { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; } @mixin flex($values) { -webkit-box-flex: $values; -moz-box-flex: $values; -webkit-flex: $values; -ms-flex: $values; flex: $values; } @mixin order($val) { -webkit-box-ordinal-group: $v; -moz-box-ordinal-group: $v; -ms-flex-order: $v; -webkit-order: $v; order: $v; }.container { @include flexbox(); }.item { @include flex(1 200px); @include order(2); }

WSPARCIE PRZEGLĄDAREK Sass mixins http://smarchal.com/sass-flexbox/ https://gist.github.com/cimmanon/4461470 https://github.com/mastastealth/sass-flex-mixin https://github.com/igosuki/compassmixins/blob/master/lib/compass/css3/_flexbox.scss Plugin https://github.com/postcss/autoprefixer

WSPARCIE PRZEGLĄDAREK PROBLEM 2 IE11 przy zdefiniowanej min-height kontenera, pozycjonowanie pionowe dla items nie działa flexbox nie zadziała dla pseudoelementów (np.: ::before, ::after) długie paragrafy nie są zawijane wymaga jednostki dla flex-basis IE10 -ms-flex-flow: row wrap zadziała tylko wtedy, gdy items będą miały display: inline-block domyślna wartość dla flex to 0 0 auto, zamiast 0 1 auto https://github.com/philipwalton/flexbugs

Flexbox vs. dostępność <div style="display: flex;"> <a href="/" style="order: 3;">One</a> <a href="/" style="order: 2;">Two</a> <a href="/" style="order: 1;">Three</a> </div>

aria-flowto (attribute) + wprowadza alternatywną nawigację dla czytników - nie wspierana przez wszystkie czytniki - komplikacja kodu aria-flowto="i3 <div style="display: flex;"> <a href="/" style="order: 3;" id="i1">one</a> <a href="/" style="order: 2;" id="i2" aria-flowto="i1">two</a> <a href="/" style="order: 1;" id="i3" aria-flowto="i2">three</a> </div>

tabindex (attribute) + ustala pozycję danego elementu przy nawigacji klawiaturą - zakresem jest cały dokument! (element z tabindex= 1 będzie pierwszym odczytanym elementem niezależnie od położenia na stronie) <div style="display: flex;"> <a href="/" style="order: 3;" tabindex="3">one</a> <a href="/" style="order: 2;" tabindex="2">two</a> <a href="/" style="order: 1;" tabindex="1">three</a> </div>

przeglądarka Firefox mechanizm nawigujący w kolejności wyświetlającej się na stronie -> zgłoszony błąd w implementacji, przeciwnej specyfikacji flexboxa

HTML: <div class="inputcontainer"> <span class="inputitem"> </span> <input class=" inputitem-field"></input> <button class="inputitem"> </button> </div> CSS:.inputContainer { display: flex; }.inputitem-field { flex: 1; }.inputitem { /* item styles */ }

flex: none [<'flex-grow'> <'flex-shrink'>? <'flex-basis'>] flex-grow - proporcja względem wszystkich elementów, jak bardzo item urośnie względem innych elementów, w przypadku wolnej powierzchni flex-shrink - za stopień "kompresji" elementu, czyli o ile razy zmniejszyć dany element flex-basis - bazowa szerokość elementu, inaczej mówiąc minimalna szerokość elementu

flex-grow.flex-container{ width: 600px; }.flex-item-1{ flex-basis: 200px; flex-grow: 3; }.flex-item-2{ flex-basis: 200px; flex-grow: 1; } Available space = (container size - basis-total) container size(600) - basis total (400) = 200 Grow unit = (Available space / grow-total) 200 / 4 = 50 Flex item size = (Flex basis + (Grow Unit * num)) Item 1: 200px + (50*3) = 350px Item 2: 200px + (50*1) = 250px

flex-shrink.flex-container {width: 600px;}.flex-item-1 {flex-basis: 100px; flex-shrink: 1;}.flex-item-2 {flex-basis: 400px; flex-shrink: 1;}.flex-item-3 {flex-basis: 400px; flex-shrink: 1;} Space remaining = (container size basis-total) container size(600) - basis total (900) = -300 Flex item size = (Flex basis + (Flex basis* num/ basis-total)) Item 1: 100px + (100*1/900) which is 66px Item 2: 400px + (400*1/900) which is 266px Item 3: 400px + (400*1/900) which is 266px

p { display: flex; } input, select { flex-grow: 1; }

body { display: flex; min-height: 100vh; flex-direction: column; }.content { flex: 1; }

flex-direction

.box { display: flex; align-items: center; justify-content: center; }

justifycontent MAIN AXIS

align-items CROSS AXIS

aligncontent CROSS AXIS

flex-wrap.container{ } flex-wrap: nowrap wrap wrap-reverse;

CONTAINER ITEM flex-direction flex-wrap justify-content align-content align-items flex-flow flex flex-grow flex-shrink flex-basis align-self order

- the end -