HTML5 and CSS3 Aryo Pinandito.

Slides:



Advertisements
Similar presentations
Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
Advertisements

LIS650 lecture 4 Thomas Krichel today Advice CSS Properties –Box properties –List properties –Classification properties Fun with selectors.
Slice and Dice: From PSD Image to XHTML+CSS Svetlin Nakov Telerik Corporation
© 2010 Delmar, Cengage Learning Chapter 5 Positioning Objects with CSS and Tables.
XP Tutorial 4New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Designing a Web Page with Tables Tutorial 4 Creating a News Page.
Chapter 3 – Web Design Tables & Page Layout
1 Tables and Lists. 2 Are Tables still needed? Tables were once used to help structure and style our pages CSS now replaces most of the old uses for tables.
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Office 2003 Integration Integrating Office 2003 Applications and the World Wide Web.
HIGH LEVEL OVERVIEW: CSS CSS SYNTAX CONSISTS OF A SET OF RULES THAT HAVE 3 PARTS: A SELECTOR, A PROPERTY, AND A VALUE. IT’S NOT NECESSARY TO REMEMBER THIS.
MATA KULIAH :DESAIN WEB
DREAMWEAVER ‘ANATOMY’ EXPLAINED.
Dr. Alexandra I. Cristea CSS Dr. Alexandra I. Cristea Source:
Week 10 Creating Positioned Layouts
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Chapter 13 Web Page Design Studio
J ENWARE Chapters 14 & 15 Learning Web Design, Fourth Edition by Jennifer Niederst Robbins Copyright © 2012.
1 Cascading Style Sheets Continued Different kinds of selectors in a style sheet –Simple- Pseudo-Class –Contextual- Pseudo-Element –Class Image Styles.
CSS Layout Crash Course An Advance CSS Tutorial. Inline vs. Block Many HTML elements have a default display setting of Block. Block elements take up the.
Quiz #3 - CSS Lecture Code: Get Neighbors’ URLs for MP1
Cascading Style Sheets
Copyright © Terry Felke-Morris WEB DEVELOPMENT & DESIGN FOUNDATIONS WITH HTML5 Chapter 6 Key Concepts 1 Copyright © Terry Felke-Morris.
Today CSS HTML A project.
CSS. Intro to CSS Cascading Style Sheets – styles and enhances appearance of webpage.css extension.
Copyright © Terry Felke-Morris WEB DEVELOPMENT & DESIGN FOUNDATIONS WITH HTML5 Chapter 6 Key Concepts 1 Copyright © Terry Felke-Morris.
Part 5 Introduction to CSS. CSS Display - Block and Inline Elements A block element is an element that takes up the full width available, and has a line.
Cascading Style Sheets. CSS stands for Cascading Style Sheets and is a simple styling language which allows attaching style to HTML elements. CSS is a.
SM5312 week 11: CSS Menus & Navigation Bars1 An Introduction to Cascading Style Sheets CSS Menus and Navigation Bars Nick Foxall.
CIS 1310 – HTML & CSS 6 Layout. CIS 1310 – HTML & CSS Learning Outcomes  Describe & Apply the CSS Box Model  Configure Float with CSS  Designate Positioning.
Web Pages and Style Sheets Bert Wachsmuth. HTML versus XHTML XHTML is a stricter version of HTML: HTML + stricter rules = XHTML. XHTML Rule violations:
9-May-15 More CSS. 2 A different emphasis CSS is the same for XML as it is for HTML and XHTML, but-- XML contains no display information If you want your.
Today’s objectives Site performance Padding, Margins, Borders
Week 9 Using the Box Properties. 9-2 The CSS Visual Formatting Model Describes how the element content boxes should be displayed by the browser –Based.
Tutorial 5 Working with the Box Model. XP Objectives Understand the box model Create padding, margins, and borders Wrap text around an image Float a block-level.
An Introduction to Cascading Style Sheets CSS Layout, and the CSS Box Model Nick Foxall SM5312 week 9: CSS Layout.
MORE Cascading Style Sheets (The Positioning Model)
14-Jul-15 CSS Applications to XML. 2 A different emphasis CSS is the same for XML as it is for HTML, but-- HTML already does a pretty good job of layout.
CSS (Cascading Style Sheets): How the web is styled Create Rules that specify how the content of an HTML Element should appear. CSS controls how your web.
CSS The Definitive Guide Chapter 8.  Allows one to define borders for  paragraphs  headings  divs  anchors  images  and more.
 Remember that HTML is just text  Need to point to pictures  Use the img tag  alt: › screen reader › REQUIRED for this class and to validate.
Tutorial #6 – Creating Fixed Width Layouts. Tutorial #5 Review – Box Model Every html element is surround by a box Content, Padding, Border, Margin Can.
INTRODUCTORY Tutorial 4 Exploring Graphic Elements and Images.
Layout with Styles Castro Chapter 11. Tables vs. CSS You can produce “liquid layouts” (layouts that stretch as the browser is resized) using tables or.
INTRODUCTORY Tutorial 5 Using CSS for Layout and Printing.
CONTROLLING Page layout
Tutorial 4 Creating Page Layouts with CSS
Tutorial #5 Working with the Box Model. Tutorial #4 Review - CSS Create a homework page Final Project Discussion Exam on Blackboard Styling Lists (List-style-type,
Laying out Elements with CSS
Cascading Style Sheets Boxes
Cascading Style Sheets™ (CSS)
CSS Layouts: Grouping Elements
Webpage layout using CSS
>> The “Box” Model
Floating & Positioning
Advanced CSS BIS1523 – Lecture 20.
CSS Applications to XML 19-Sep-18.
Objectives Create a reset style sheet Explore page layout designs
Cascading Style Sheets
Styles and the Box Model
CSS Borders and Margins.
Second CSS Lecture Applications to XML
MORE Cascading Style Sheets (The Positioning Model)
Web Development & Design Foundations with H T M L 5
More CSS 22-Feb-19.
Floating and Positioning
Laying out Elements with CSS
CSS Boxes CS 1150 Fall 2016.
CSS Applications to XML 20-May-19.
CSc 337 Lecture 5: Grid layout.
CSS Applications to XML 3-Jul-19.
Cascading Style Sheets™ (CSS)
Presentation transcript:

HTML5 and CSS3 Aryo Pinandito

HTML Hypertext Markup Language Bare Minimum of HTML Structure <!DOCTYPE html> <html> <head> <title>Document Title</title> </head> <body> <p>Let’s rock the browser with HTML5</p> </body> </html>

More HTML Document type: HTML5 <!DOCTYPE html> XHTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">

More HTML (2) Language <html lang=“en”> Character Encoding in HTML5 <head> ... <meta charset=“utf-8”> XHTML: <meta http-equiv="Content- Type"content="text/html; charset=UTF-8">

More HTML (3) Stylesheet (CSS) <head> ... <link href=“styles.css” rel=“stylesheet”> Javascript <script src=“jscript.js”></script>

Tag, Attribute, Value Tag Attribute and Value of Atrribute Void element: <input> <hr> <br> Non void element: <a>Link</a> Attribute and Value of Atrribute <input name=“email” value=“who@where.com”> Atrribute: name, value Value: email, who@where.com

Standard HTML Tags Heading Table Paragraph List Image Horizontal Line <h1>, <h2>, .... Table <table>, <tr>, <th>, <td>, <tbody>, <thead> Paragraph <p> List <ol>, <ul>, <li> Image <img> Horizontal Line <hr> Form <form> Form Component <input>, <select>, <textarea> Link/Anchor <a> Layer Box <div> Formatting <strong>, <em>, <sub> Line Break <br>

New Tags in HTML5 Structure Inline Elements <section> - to define sections of pages <header> - defines the header of a page <footer> - defines the footer of a page <nav> - defines the navigation on a page <article> - defines the article or primary content on a page <aside> - defines extra content like a sidebar on a page <figure> - defines images that annotate an article <mark> - to indicate content that is marked in some fashion <time> - to indicate content that is a time or date <meter> - to indicate content that is a fraction of a known range - such as disk usage <progress> - to indicate the progress of a task towards completion

New Tags in HTML5 Dynamic Support <details> <datagrid> provides details about an element. This would be like tooltips in non-Web applications. <datagrid> creates a table that is built from a database or other dynamic source <menu> an old tag brought back and given new life allowing you to create a menu system on your Web pages <command> defines actions that should happen when a dynamic element is activated

New Tags in HTML5 Dynamic Support <canvas> - an element to give you a drawing space in JavaScript on your Web pages. It can let you add images or graphs to tool tips or just create dynamic graphs on your Web pages, built on the fly. <video> - add video to your Web pages with this simple tag. <audio> - add sound to your Web pages with this simple tag.

New Tags in HTML5 datetime datetime-local date month week figure New Form Input Types datetime datetime-local date month week figure figcaption time number range email url

Deprecated Tags in HTML5 <acronym> <applet> <basefont> <big> <center> <dir> <font> <frame> <frameset> <isindex> <noframes> <noscript> <s> <strike> <tt> <u>

HTML5: Better Semantics <header> <nav> <aside> <article> <article> <article> <footer>

New Custom Attributes <div id=“ticker” data-custom=“custom- value”> <div id=“receipt” data-orderno=“120”> Custom attribute (data-customAttrName) data-symbol, data-orderno Value of custom attribute custom-value, 120 Getting value of an attribute (Javascript) elementName.getAttribute(attrName);

The Basis of CSS Layout The 3 core concepts to understand about CSS layout are: The CSS box model Floating Positioning Together, these 3 concepts control the way elements are arranged and displayed on a page.

The CSS Box Model Every block element in CSS is effectively inside a box, and can have margins, padding and borders applied to it. Box widths can be specified in absolute values (e.g. px) or in relative values, usually: em - width values relative to the size of the font in ems percentage - width values relative the containing box’s content region The root (or top-most) element’s containing box is effectively the browser window.

The CSS Box Model Every CSS box is divided into regions, consisting of: Content Padding Border Margins

The CSS Box Model Margin Border Padding Content

The CSS Box Model Margin Border Padding Content With margin, border and padding properties, each of the 4 sides can be specified independently

Margins & Padding Margins and Padding may seem similar at first glance. But each has its own effect on content, particularly on any backgrounds assigned to block and div elements. Margin Padding Content SM5312 week 9: CSS Layout

Margins & Padding Margins Margins define the space around elements outside the border Margin properties can have negative values in order to deliberately overlap content Margin properties will affect the position of background elements (graphics and/or colours) in relation to the edges of the containing block element Margin properties can be defined independently on top, right, bottom and left, or all-at-once using CSS shorthand

Margins & Padding Padding Padding defines the space around elements inside the border; i.e between the border and the content itself Padding properties cannot have negative values Padding properties do not affect the position of background elements (graphics and/or colours) in the containing block element; only the position of content. Padding properties can be defined independently on top, right, bottom and left, or all-at-once using CSS shorthand

Margins and Padding: Margin Collapse When 2 or more vertical margins meet, they will collapse to form a single margin The height of this combined margin will be equal the height of the larger of the 2 margins Margin collapse applies when: 2 or more block elements are stacked one above the other, or when one block element is contained within another block element

Margin Collapse: Stacked Elements Before After Content Area Content Area Margins collapse to form a single margin Margin-bottom: 30px Margin-bottom: 30px Margin-top: 20px Content Area Content Area

Margin Collapse: Contained Elements Before After Margins collapse to form a single margin Margin-top: 30px Margin-top: 30px Margin-top: 20px Content Area Content Area * Note: only applies if there are no borders or padding separating the margins. Inner block element Containing (outer) block element

CSS Shorthand: Margin & Padding For margin and padding (and others), CSS provides a number of shorthand properties that can save on writing lines and lines of code. Instead of writing this: #container { margin-top: 0; margin-right: 5px; margin-bottom: 6px; margin-left: 5px; padding-top: 20px; padding-right: 10px; padding-bottom: 30px; padding-left: 12px; } 12 Content Area 5 5 12 10 30 6

CSS Shorthand: Margin & Padding …Its much easier to write this: #container { padding: 20px 10px 30px 12px; margin: 0px 5px 6px 5px; } The sequence order is always clockwise, starting from the top Content Area 6 5 12 10 30 20

CSS Shorthand: Margin and Padding You can also apply just one value, example: #container { padding: 20px; margin: 5px; } Which will apply the value specified equally on all 4 sides 5 20 Content Area 5 5 20 20 20 5

CSS Shorthand: Margin and Padding And you can apply two values, example: #container { padding: 10px 20px; margin: 0px 5px; } The first value is applied to the top and bottom The second value is applied to the left and right 10 Content Area 5 5 20 20 10

CSS Shorthand: Margin and Padding: auto A useful value to remember is ‘auto’: #container { padding: 10px 20px; margin: 0px auto; } Usually applied to the left & right areas of the margin property, auto is useful for centering a block container element in the browser window 10 Content Area auto auto 20 20 10

Borders Borders can be applied to any block element Borders always come outside the padding area, but inside the margin area. Border properties cannot have negative values If a border is not specified, the default is no-border (i.e. no border appears and no space between any margin and padding is allocated for a border) Border properties can be defined independently on top, right, bottom and left, or all-at-once using CSS shorthand

Borders The core border properties are: Width: absolute (px, in, cm, or ‘thin’, ‘medium’, ‘thick’), or relative (ems) Style: dotted, dashed, solid, double, groove, ridge, inset, outset, hidden, etc Color: ‘blue’, ‘red’, #FF9900, etc You can also create the effect of a border by using a graphic image in a CSS background property, instead of the border property

CSS Floats: “Normal Flow” CSS boxes for block elements are stacked, one above the other, so that they’re read from top to bottom. In CSS, this is said to be the “normal flow”. (Note that CSS boxes for inline elements are placed next to each other, within boxes for block elements, and will normally wrap according to the width of the containing block.) But…

Floats: Positioning CSS Boxes …we can position block element boxes side-by-side in CSS using floats. Setting the float property to left or right causes a box to be taken out of its position in the normal flow and moved as far left or right as possible. text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text inline inline block inline

Float Values The Float property has three value options: float: left; float: right; float: none; text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text inline inline block inline

Restoring the Normal Flow: “Clear” To restore the “normal flow”, we can use the clear property. The clear property has three value options: clear: left; clear: right; clear: both; These specify which side of the element’s box may not have a float next to it. text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text inline inline block inline block

CSS Positioning The third core concept to understand in CSS layout (after the ‘box model’ and ‘floats’), is positioning. There are two types of positioning that can be applied to CSS boxes: • Relative Positioning • Absolute Positioning Understanding the differences between the two is difficult at first, but important!

CSS Positioning: Relative Positioning A relatively positioned element will stay exactly where it is, in relation to the normal flow. You can then offset its position “relative” to its starting point in the normal flow: Box 1 Box 2 Box 3 Containing box

CSS Positioning: Relative Positioning In this example, box 2 is offset 20px, top and left. The result is the box is offset 20px from its original position in the normal flow. Box 2 may overlap other boxes in the flow, but other boxes still recognise its original position in the flow. top: 20px #myBox { position: relative; left: 20px; top: 20px; } Left: 20px Box 1 Box 3 Position: relative Box 2 Containing box

CSS Positioning: Absolute Positioning An absolutely positioned box is taken out of the normal flow, and positioned in relation to its nearest positioned ancestor (i.e. its containing box). If there is no ancestor box, it will be positioned in relation to the initial containing block, usually the browser window. top: 20px Left: 20px Box 1 Box 3 Position: absolute Box 2 Containing box (relatively positioned ancestor)

CSS Positioning: Absolute Positioning An absolutely positioned box can be offset from its initial position inside the containing block, but other boxes within the block (and still within the normal flow) act as if the box wasn’t there. top: 20px #myBox { position: absolute; left: 20px; top: 20px; } Left: 20px Box 1 Box 3 Position: absolute Box 2 Containing box (relatively positioned ancestor)

CSS Positioning: Fixed Positioning Fixed Positioning is a sub-category of Absolute Positioning Allows the creation of floating elements that are always fixed in the same position in the browser window, while the rest of the content scrolls as normal (rather like the effect of fixed background attachments) PROBLEM: fixed positioning is not supported in IE5 and IE6(!), but can be made to work with javascript for those browsers

Floats & Positioning Summary: Floats (also a form of positioning) takes boxes out of the normal flow and “floats” them left or right edges of the containing block Relative Positioning is “relative” to the element’s initial position in the normal flow. Absolute Positioning is “relative” to the nearest positioned ancestor, or (if one doesn’t exist) the initial container block (usually the browser window) Fixed Positioning is fixed in one position “relative” to the browser window only — does not scroll with content (Not supported in IE5, IE6)

Background Images in CSS It is also possible to use the background CSS property any block element (including div’s) to place a background image behind other elements. Background images can be… • small images that repeat horizontally or vertically to fill a flexible background space, or • one single image that fills a space of fixed size.

Background Images in CSS: Fixed Position Background images will normally scroll with the containing box, and the rest of the page But they can also be “fixed”, staying in the same position in the layout, while the rest of the content scrolls. #sidebar { float: right; width: 300px; margin-left: 25px; background-image: url(images/harbour.jpg); background-attachment: fixed; }

Using Background Images Background images are useful in allowing us to visually define a page, and separate content into a deliberate visual hierarchy. The ability to to repeat images in a background box, and reuse the SAME images across a number of boxes, means we can make very efficient use of images. Wherever possible, background images should be used in conjunction with background colours.

Rounded Corner Boxes Rounded corner boxes are very popular. Unfortunately, the current version of CSS does not have any properties that can define a corner radius (CSS 3 will). However, simple rounded corner boxes are very easy to create in CSS 2 with a couple of background images.

Fixed-Width Rounded Corner Boxes Simple flat-colour, fixed-width rounded corner boxes require only 2 images: Fixed-width boxes with a shadow require 3 images, with the centre one set to repeat: CSS code tutorial… boxtop.gif boxbottom.gif boxshaded_top.gif boxshaded_back.gif boxshaded_bottom.gif

Flexible-Width Rounded Corner Boxes Flexible-width rounded corner boxes are a little more complicated... You to break a large box into 4 images, then use CSS to have the right side pieces ‘slide over’ the larger (fixed-position) left pieces. CSS code tutorial… boxshadedtopleft.gif boxshadedtopright.gif boxshadedbottomleft.gif boxshadedbottomright.gif

Flexible-Width Rounded Corner Boxes The CSS, HTML structure H2 heading .flexbox .flexbox-outer .flexbox-inner .flexbox h2

Centering in the Browser Window We’ve seen how to center a box horizontally in the window: Set the body to center Create a container div (fixed or relative width), with left and right margins set to auto So how do we float a CSS box vertically in the browser window?

Centering in the Browser Window Like this: Set the body to center Create a container div (fixed or relative width), with.. Position: absolute; top: 50%; left: 50%; margin-top: -300px; margin-left: -400px; Note, the box must have a height specified, as well as a width, and it must be a measured unit (i.e. px, mm, com, etc.)

Using divs to Define CSS boxes We’ve seen that CSS box model attributes can be applied to any simple XHTML block element (p, h1, etc.) However, we often use specific <div> elements within the XHTML, each identified with an ID or class name We then apply width, float, margin, padding and border properties to those div’s in CSS. This gives us more options to create and control a range of layout elements, on top of core content elements.

Using divs to Define CSS boxes id example: in the XHTML: <div id=“sidebar”> <p> blah, blah, blah, blah, blah, blah. </p> </div> In the CSS: #sidebar { float: right; width: 300px; margin-left: 25px; } class example: in the XHTML: <div class=“sidebar”> <p> blah, blah, blah, blah.</p> </div> In the CSS: .sidebar { float: right; width: 300px; margin-left: 25px; }

And Finally… CSS inspiration: CSS analysis tools: Wireframing Tools www.csszengarden.com CSS analysis tools: Web Developers Toolbar http://chrispederick.com/work/web-developer/ Firebug http://getfirebug.com/ Wireframing Tools http://pencil.evolus.vn