L4: CSS Responsive Design - GitHub Pages

1y ago
9 Views
1 Downloads
1.02 MB
20 Pages
Last View : 15d ago
Last Download : 3m ago
Upload by : Joao Adcock
Transcription

L4: CSS Responsive Design Web Engineering 188.951 2VU SS20 Jürgen Cito

L4: CSS Responsive Design Media Queries Responsive and Adaptive Images and Fonts Flexible Box Layouts (Flexbox) Grid Layouts

Learning Goals Differentiate between different options to achieve responsive layouts Understand how images and fonts can be made responsive Properly use media queries for responsive design Understand the role of Flexbox and Grid layouts

Responsive Design is a way of implementing web layouts based on current standards, HTML5 and CSS3. Web Layout Approaches Graceful degradation Interface A Interface B Mobile-first / Progressive enhancement Interface A Interface B Responsive design Interface A Interface B Slides by Michael Nebeling and the work by Michael Nebeling and Moira C. Norrie: Responsive Design and Development: Methods, Technologies and Current Issues, In: Proc. 13th Intl. Conf. on Web Engineering (ICWE 2013), LNCS, vol. 7977, pp. 510-513. Springer, 2013.

Responsive Design Let content fill the container and define min/max constraints Use relative units to specify position and size of text and media Techniques Media Queries Fluid, Grid-based Layout Responsive Images Font Scaling Required Reading: n/

Media Queries Previously only media types (screen, print, braille, handheld ) @media rule Additional features color aspect-ratio max-width orientation resolution scan Build complex queries using logical operators (not, and, only) @media only screen and (max-width: 500px) { } @media tv and (min-width: 700px) and (orientation: landscape) { } !-- comma acts as 'or' -- @media (min-width: 700px), handheld and (orientation: landscape) { }

Viewport The virtual “window” Viewport Visible area of webpage Size content to viewport Avoid horizontal scrolling Avoid necessity to zoom meta name "viewport" content "width device-width, initial-scale 1.0, maximum-scale 3, minimum-scale 0.5" / Control viewport in HTML5 Through meta-element Consider mobile Sometimes narrower/wider Prevent default shrinking tation/ theViewport/

Media Queries #header { height: 200px; } #navigation { width: 300px; } #content { width: 900px; } #footer { height: 200px; } @media screen and (max-width: 768px) { #header { width: 80px; height: 120px; display: inline; } #navigation { width: 560px; height: 120px; } #content { width: 640px; height: 760px; } #footer { height: 80px; } } @media screen and (max-width: 1024px) { . 8

Media Queries and Fluid Layouts Use of CSS3 media queries for defining breakpoints and style switches @media screen and (max-width: 680px) { . } However No linear progression between fix-sized designs Snaps at break points Horizontal scrolling may be required in-between Doesn't allow styling for future or unknown devices Fluid Layout: Deal with the "grey area" between breakpoints Use relative values for sizes to resize Consider maximum width for content #info { width: 50%; } #container { max-width: 960px; }

Fluid Images Scale images like content using relative values Problems Browser needs to scale Large download img { width: 50%; max-width: 100%; } ntent.html#adaptive-images

Responsive and Adaptive Images Detect visitor screen size, resolution, and pixel density Fetch respective image, size or version (additional download!) Use JavaScript, CSS media queries, and/or HTML5 markup picture source src "pic-mobile.jpg" media "(max-width: 720px)" / source src "pic-tablet.jpg" media "(max-width: 1280px)" / source src "pic-desktop.jpg" / img src "default.png" / !–- User Agent not supporting picture element -- /picture ntent.html#adaptive-images

Scaling Fonts Scaling Fonts Use media queries and relative values for your fonts Font scales according to viewport and stays readable @media screen and (min-width: 481px) and (max-width: 768px) { p { font-size: 0.9em; } } @media screen and (max-width: 480px) { p { font-size: 0.7em; } } What's wrong with pixels? Dependent on screen resolution Resolution increase àfont size decrease Many modern mobile devices have high-density screens àdifficult to read

CSS Layout Modes Layouts Block, Inline, Table, Positioned, Grid, Flexible, Not all CSS properties apply to all modes Support for layouts still vary display: mode ; Check with: http://caniuse.com p Lorem ipsum dolor sit amet, consectetuer adipiscing elit. /p -webkit-column-count: 3; -moz-column-count: 3; column-count: 3;

Layout Modes - Flexbox display: flex; Flexbox enables aligning and distributing elements within a container Expands items to fill available free space Shrinks items to prevent overflow Flex container: Contains flex items Flex items: Define properties on how the element should align and flow within the container W3C: https://www.w3.org/TR/css3-flexbox/ Image credit: SS Flexible Box Layout/Using CSS flexible boxes

Layout Modes - Flexbox Container Properties flex-direction, flex-wrap, flex-flow, justify-content, align-items, align-content Item Properties order, flex-grow, flex-shrink, flex-basis, align-self

“Holy Grail Layout” with Flexbox Holy Grail Layout Header, Footer Fluid content, fixed sides 2 equal height columns Content before remaining columns “order” property only for visual ordering header nav article footer Flexible Box Layout main main main main { display: flex; } article { order: 2; min-width: 12em; flex: 1; } nav { order: 1; width: 200px; } !DOCTYPE html aside { order: 3; width: 200px; } . header . /header @media all and (max-width: 600px) { main main { flex-flow: column; } article . /article main article, main nav, main aside { nav . /nav order: 0; width: auto; aside . /aside } /main } footer . /footer ility header article nav aside footer aside

Layout Modes - Grid display: grid; Grid layout enables control of sizing and positioning of boxes within a grid system Grid Line: Horizontal and vertical dividing line within a grid Grid Track: Space between two adjacent grid lines — columns or rows of the grid Grid Cell: Single unit of the grid Grid Area: Adjacent grid cells that form a rectangle Example: Defining tracks in a grid (2 rows and 3 columns) display: grid; grid-template-rows: 100px 100px; grid-template-columns: 400px 200px 100px; Name individual lines to reference later grid-template-columns: [first] 400px [main] 200px [side] 100px [last]; W3C: https://drafts.csswg.org/css-grid/ Image credit: -layout-module-for-the-web/

Layout Modes - Grid Placement of child elements in the grid grid-row, grid-column Element in one particular grid cell Element spanning a grid area Horizontal and vertical alignment support Content distribution — align within the container justify-content — align horizontally align-content — align vertically Aligning elements within grid cell justify-self align-self grid-row: 3; grid-row: 2 / 5; grid-column: 3 / span 2;

Layout Modes - Grid Fractional Unit “fr” One part of the available space Can be mixed with other units when defining grid areas Examples of 4 column grid layout All 4 columns each taking the same amount of space grid-template-columns: 1fr 1fr 1fr 1fr; 3rd column has fixed size and 4th column is relative to container size grid-template-columns: 1fr 1fr 20px 20%; Multiple fractions are the sum of single fractions (in this example, the 4th column is the same size as column 1 and 2) grid-template-columns: 1fr 1fr 20px 2fr;

Layout Modes - Flexbox vs Grid One-dimensional vs Two-dimensional layout Flexbox (1D) - Content first Enable existing content to align and adapt Rules decided by children .wrapper { width: 500px; display: flex; flex-wrap: wrap; } .wrapper div { flex: 1 1 150px; } Grid (2D) - Layout first Specific rigid layout in mind children are placed in Declaratively control specifically where elements end up — Rules decided by parent div class “wrapper” div One /div div Two /div div Three /div div Four /div div Five /div /div .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); } Layout modes are not defined for entire page but for a specific container. Flexbox and Grid are not mutually exclusive within a page. Mix and match as you see fit SS Grid Layout/Relationship of Grid Layout

Technologies and Current Issues, In: Proc. 13th Intl. Conf. on Web Engineering (ICWE 2013), LNCS, vol. 7977, pp. 510-513. Springer, 2013. Mobile-first / Progressive enhancement Interface B Responsive design Interface A Interface B Interface A Interface A Graceful degradation Interface B Responsive Design is a way of implementing web layouts

Related Documents:

CSS Colorvalues CSS Colornames CSS Tutorial « W3Schools Home Next Chapter » Save a lot of work with CSS! In our CSS tutorial you will learn how to use CSS to control the style and layout of multiple Web pages all at once. CSS Example body {background-color:#d0e4fe;} h1 {color:orange; text-align:center;} p {font-family:"Times New Roman"; font .

Mar 03, 2010 · Tantek Çelik's CSS Examples CSS mastery: advanced web standards solu tions by Andy Budd "CSS Mastery" is available online from Harvard University Libraries . Examples are used from Tantek Çelik's CSS Examples by permission under a Creative Commons License CSS only for "modern" browsers: @import "null.css?\"\{"; @import "for_current_browsers.css";

Exercises SUMMARY Chapter 18—Styling XML with CSS The Rise and Fall of the Style Language Cascading Style Sheets XML, CSS, and Web Browsers XML, CSS, and Internet Explorer XML, CSS, and Mozilla Getting Mozilla Displaying XML Code in Mozilla Cheating Embedding CSS in XSL CSS Style Sheet Properties Units Specifying CSS Properties Classes

A brief history of CSS CSS 3 is divided into several separate documents called "modules" and its notes are posted on W3C: css3-background CSS Backgrounds and Borders Module Level 3 Candidate Rec. Oct 2017 css3-box CSS basic box model Working Draft Jul 2018 css-cascade-3 CSS Cascading and Inheritance Level 3 Candidate Rec. May 2016

alization, visualization authoring, and responsive web design. Responsive Web Design While responsive visualization is still a nascent area, respon-sive web design has received more attention. Patterns and principles of responsive web design have been studied [15, 16]. HTML5 and CSS3 are popular standards to implement responsive designs [9].

5 CSS Essentials, Part 2 CSS Essentials, Part 2 6 Managing Text Flow by Using CSS CSS 7 Managing the Graphical Interface by Using CSS Interface by Using CSS 8 Understanding JavaScript and Coding Essentials Understanding JavaScript and Coding Essentials 9 Creating Animations, Working with Graphics, and Accessing Data Creating Animations,

Tags:css media query, css media query examples, css media query for ipad, css media query for mobile, css media query value defined in the query. max-width Rules applied for any browser width below the value defined in the query. min-height Rules applied for any browser height over the value defined in the query. max-height Rules applied for any

CSS 2.1 represents a "snapshot" of CSS usage: it consists of all CSS features that are implemented interoperably at the date of publication of the Recommendation. CSS 2.1 is derived from and is intended to replace CSS2. Some parts of CSS2 are unchanged in CSS 2.1, some parts have been altered, and some parts removed.