HTML Basics HTML Text Images Tables A Kalyan
HTML Basics HTML, Text, Images, Tables A. Kalyan Kumar Asst. Professor
Table of Contents 1. Introduction to HTML How the Web Works? What is a Web Page? My First HTML Page Basic Tags: Hyperlinks, Images, Formatting Headings and Paragraphs 2. HTML in Details The <!DOCTYPE> Declaration The <head> Section: Title, Meta, Script, Style 2
Table of Contents (2) 2. HTML in Details The <body> Section Text Styling and Formatting Tags Hyperlinks: <a>, Hyperlinks and Sections Images: <img> Lists: <ol>, <ul> and <dl> 3. The <div> and <span> elements 4. HTML Tables 5. HTML Forms 3
How the Web Works? WWW use classical client / server architecture HTTP is text-based request-response protocol HTTP Page request HTTP Server response Client running a Web Browser Server running Web Server Software (IIS, Apache, etc. ) 4
What is a Web Page? Web pages are text files containing HTML – Hyper Text Markup Language A notation for describing document structure (semantic markup) formatting (presentation markup) Looks (looked? ) like: A Microsoft Word document The markup tags provide information about the page content structure 5
Creating HTML Pages An HTML file must have an. htm or. html file extension HTML files can be created with text editors: Note. Pad, Note. Pad ++, PSPad Or HTML editors (WYSIWYG Editors): Microsoft Front. Page Macromedia Dreamweaver Netscape Composer Microsoft Word Visual Studio 6
HTML Basics Text, Images, Tables, Forms
HTML Structure HTML is comprised of “elements” and “tags” Begins with <html> and ends with </html> Elements (tags) are nested one inside another: <html> <head></head> <body></body> </html> Tags have attributes: <img src="logo. jpg" alt="logo" /> HTML describes structure using two main sections: <head> and <body> 8
First HTML Page test. html <!DOCTYPE HTML> <html> <head> <title>My First HTML Page</title> </head> <body> <p>This is some text. . . </p> </body> </html> 9
First HTML Page: Tags <!DOCTYPE HTML> Opening tag <html> <head> <title>My First HTML Page</title> </head> Closing tag <body> <p>This is some text. . . </p> </body> </html> An HTML element consists of an opening tag, a closing tag and the content inside. 10
Some Simple Tags – Example some-tags. html <!DOCTYPE HTML> <html> <head> <title>Simple Tags Demo</title> </head> <body> <a href="http: //www. telerik. com/" title= "Telerik site">This is a link. </a> <img src="logo. gif" alt="logo" /> <strong>Bold</strong> and <em>italic</em> text. </body> </html> 11
Tags Attributes Tags can have attributes Attributes specify properties and behavior Example: Attribute alt with value "logo" <img src="logo. gif" alt="logo" /> Few attributes can apply to every element: id, style, class, title The id is unique in the document Content of title attribute is displayed as hint when the element is hovered with the mouse Some elements have obligatory attributes 12
Headings and Paragraphs Heading Tags (h 1 – h 6) <h 1>Heading 1</h 1> <h 2>Sub heading 2</h 2> <h 3>Sub heading 3</h 3> Paragraph Tags <p>This is my first paragraph</p> <p>This is my second paragraph</p> Sections: div and span <div style="background: skyblue; "> This is a div</div> 13
headings. html Headings and Paragraphs – Example <!DOCTYPE HTML> <html> <head><title>Headings and paragraphs</title></head> <body> <h 1>Heading 1</h 1> <h 2>Sub heading 2</h 2> <h 3>Sub heading 3</h 3> <p>This is is my my first paragraph</p> second paragraph</p> <div style="background: skyblue"> This is a div</div> </body> </html> 14
headings. html Headings and Paragraphs – Example (2) <!DOCTYPE HTML> <html> <head><title>Headings and paragraphs</title></head> <body> <h 1>Heading 1</h 1> <h 2>Sub heading 2</h 2> <h 3>Sub heading 3</h 3> <p>This is is my my first paragraph</p> second paragraph</p> <div style="background: skyblue"> This is a div</div> </body> </html> 15
The <!DOCTYPE> Declaration HTML documents must start with a document type definition (DTD) It tells web browsers what type is the served code Possible versions: HTML 4. 01, XHTML 1. 0 (Transitional or Strict), XHTML 1. 1, HTML 5 Example: <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 -transitional. dtd"> See http: //w 3. org/QA/2002/04/valid-dtd-list. html for a list of possible doctypes 16
HTML vs. XHTML is more strict than HTML Tags and attribute names must be in lowercase All tags must be closed (<br/>, <img/>) while HTML allows and <img> and implies missing closing tags (<p>par 1 <p>par 2) XHTML allows only one root <html> element (HTML allows more than one) 17
XHTML vs. HTML (2) Many element attributes are deprecated in XHTML, most are moved to CSS Attribute minimization is forbidden, e. g. <input type="checkbox" checked> <input type="checkbox" checked="checked" /> Note: Web browsers load XHTML faster than HTML and valid code faster than invalid! 18
The <head> Section Contains information that doesn’t show directly on the viewable page Starts after the <!doctype> declaration Begins with <head> and ends with </head> Contains mandatory single <title> tag Can contain some other tags, e. g. <meta> <script> <style> <!–- comments --> 19
<head> Section: <title> tag Title should be placed between <head> and </head> tags <title>Telerik Academy – Winter Season 2009/2010 </title> Used to specify a title in the window title bar Search engines and people rely on titles 20
<head> Section: <meta> Meta tags additionally describe the content contained within the page <meta name="description" content="HTML tutorial" /> <meta name="keywords" content="html, web design, styles" /> <meta name="author" content="Chris Brewer" /> <meta http-equiv="refresh" content="5; url=http: //www. telerik. com" /> 21
<head> Section: <script> The <script> element is used to embed scripts into an HTML document Script are executed in the client's Web browser Scripts can live in the <head> and in the <body> sections Supported client-side scripting languages: Java. Script (it is not Java!) VBScript JScript 22
The <script> Tag – Example <!DOCTYPE HTML> scripts-example. html <html> <head> <title>Java. Script Example</title> <script type="text/javascript"> function say. Hello() { document. write("<p>Hello World!</p>"); } </script> </head> <body> <script type= "text/javascript"> say. Hello(); </script> </body> </html> 23
<body> Section: Introduction The <body> section describes the viewable portion of the page Starts after the <head> </head> section Begins with <body> and ends with </body> <html> <head><title>Test page</title></head> <body> <!-- This is the Web page body --> </body> </html> 24
Text Formatting Text formatting tags modify the text between the opening tag and the closing tag Ex. <b>Hello</b> makes “Hello” bold <b></b> <i></i> <u></u> <sup></sup> <sub></sub> bold italicized underlined Samplesuperscript Samplesubscript <strong></strong> <em></em> <pre></pre> <blockquote></blockquote> <del></del> strong emphasized Preformatted text Quoted text block Deleted text – strike through 25
Text Formatting – Example text-formatting. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 -transitional. dtd"> <html> <head> <title>Page Title</title> </head> <body> <h 1>Notice</h 1> <p>This is a <em>sample</em> Web page. </p> <p><pre>Next paragraph: preformatted. </pre></p> <h 2>More Info</h 2> <p>Specifically, we’re using XHMTL 1. 0 transitional. < br /> Next line. </p> </body> </html> 26
Text Formatting – Example (2) text-formatting. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 -transitional. dtd"> <html> <head> <title>Page Title</title> </head> <body> <h 1>Notice</h 1> <p>This is a <em>sample</em> Web page. </p> <p><pre>Next paragraph: preformatted. </pre></p> <h 2>More Info</h 2> <p>Specifically, we’re using XHMTL 1. 0 transitional. Next line. </p> </body> </html> 27
Hyperlinks: <a> Tag Link to a document called form. html on the same server in the same directory: <a href="form. html">Fill Our Form</a> Link to a document called parent. html on the same server in the parent directory: <a href=". . /parent. html">Parent</a> Link to a document called cat. html on the same server in the subdirectory stuff: <a href="stuff/cat. html">Catalog</a> 28
Hyperlinks: <a> Tag (2) Link to an external Web site: <a href="http: //www. devbg. org" target="_blank">BASD</a> Always use a full URL, including "http: //", not just "www. somesite. com" Using the target="_blank" attribute opens the link in a new window Link to an e-mail address: <a href="mailto: bugs@example. com? subject=Bug+Report"> Please report bugs here (by e-mail only)</a> 29
Hyperlinks: <a> Tag (3) Link to a document called apply-now. html On the same server, in same directory Using an image as a link button: <a href="apply-now. html"><img src="apply-now-button. jpg" /></a> Link to a document called index. html On the same server, in the subdirectory english of the parent directory: <a href=". . /english/index. html">Switch to English version</a> 30
Hyperlinks and Sections Link to another location in the same document: <a href="#section 1">Go to Introduction</a>. . . <h 2 id="section 1">Introduction</h 2> Link to a specific location in another document: <a href="chapter 3. html#section 3. 1. 1">Go to Section 3. 1. 1</a> <!–- In chapter 3. html -->. . . <div id="section 3. 1. 1"> <h 3>3. 1. 1. Technical Background</h 3> </div> 31
Hyperlinks – Example hyperlinks. html <a href="form. html">Fill Our Form</a> < br /> <a href=". . /parent. html">Parent</a> <a href="stuff/cat. html">Catalog</a> < br /> <a href="http: //www. devbg. org" target="_blank">BASD</a> <a href="mailto: bugs@example. com? subject=Bug Report">Please report bugs here (by e-mail only)</a > <a href="apply-now. html"><img src="apply-now-button. jpg” /></a> <a href=". . /english/index. html">Switch to English version</a> 32
Hyperlinks – Example (2) hyperlinks. html <a href="form. html">Fill Our Form</a> <a href=". . /parent. html">Parent</a> <a href="stuff/cat. html">Catalog</a> <a href="http: //www. devbg. org" target="_blank">BASD</a> <a href="mailto: bugs@example. com? subject=Bug Report">Please report bugs here (by e-mail only)</a> <a href="apply-now. html"><img src="apply-now-button. jpg” /></a> <a href=". . /english/index. html">Switch to English version</a> 33
Images: <img> tag Inserting an image with <img> tag: <img src="/img/basd-logo. png"> Image attributes: src alt height width border Location of image file (relative or absolute) Substitute text for display (e. g. in text mode) Number of pixels of the height Number of pixels of the width Size of border, 0 for no border Example: <img src=". /php. png" alt="PHP Logo" /> 34
Miscellaneous Tags <hr />: Draws a horizontal rule (line): <hr size="5" width="70%" /> <center></center>: Deprecated! <center>Hello World!</center> <font></font>: Deprecated! <font size="3" color="blue">Font 3</font> <font size="+4" color="blue">Font+4</font> 35
Miscellaneous Tags – Example misc. html <html> <head> <title>Miscellaneous Tags Example</title> </head> <body> <hr size="5" width="70%" /> <center>Hello World!</center> <font size="3" color="blue">Font 3</font> <font size="+4" color="blue">Font+4</font> </body> </html> 36
Ordered Lists: <ol> Tag Create an Ordered List using <ol></ol>: <ol type="1"> <li>Apple</li> <li>Orange</li> <li>Grapefruit</li> </ol> Attribute values for type are 1, A, a, I, or i 1. Apple 2. Orange 3. Grapefruit i. Apple ii. Orange iii. Grapefruit a. Apple I. Apple b. Orange A. Apple c. Grapefruit II. Orange B. Orange III. Grapefruit C. Grapefruit 37
Unordered Lists: <ul> Tag Create an Unordered List using <ul></ul>: <ul type="disk"> <li>Apple</li> <li>Orange</li> <li>Grapefruit</li> </ul> Attribute values for type are: disc, circle or square • Apple o Apple § Apple • Orange o Orange § Orange • Pear o Pear § Pear 38
Definition lists: <dl> tag Create definition lists using <dl> Pairs of text and associated definition; text is in <dt> tag, definition in <dd> tag <dl> <dt>HTML</dt> <dd>A markup language …</dd> <dt>CSS</dt> <dd>Language used to …</dd> </dl> Renders without bullets Definition is indented 39
Lists – Example <ol type="1"> <li>Apple</li> <li>Orange</li> <li>Grapefruit</li> </ol> lists. html <ul type="disc"> <li>Apple</li> <li>Orange</li> <li>Grapefruit</li> </ul> <dt>HTML</dt> <dd>A markup lang…</dd> </dl> 40
HTML Special Characters Symbol Name HTML Entity Symbol Copyright Sign © Registered Trademark Sign ® Trademark Sign ™ Less Than < Greater Than > Ampersand & © ® ™ < > & Non-breaking Space Em Dash — Quotation Mark " Euro € British Pound £ Japanese Yen ¥ — " € £ ¥ 41
Special Characters – Example <p>[> Welcome special-chars. html < ]</p> <p>► I have following cards: A♣ , K♦ and 9♥ . </p> <p>► I prefer hard rock ♫ music ♫ </p> <p>© 2006 by Svetlin Nakov & his team</p> <p>Telerik Academy™</p> 42
Special Chars – Example (2) <p>[> Welcome special-chars. html < ]</p> <p>► I have following cards: A♣ , K♦ and 9♥ . </p> <p>► I prefer hard rock ♫ music ♫ </p> <p>© 2006 by Svetlin Nakov & his team</p> <p>Telerik Academy™</p> 43
HTML Tables
HTML Tables represent tabular data A table consists of one or several rows Each row has one or more columns Tables comprised of several core tags: <table></table>: begin / end the table <tr></tr>: create a table row <td></td>: create tabular data (cell) Tables should not be used for layout. Use CSS floats and positioning styles instead 45
HTML Tables (2) Start and end of a table <table>. . . </table> Start and end of a row <tr>. . . </tr> Start and end of a cell in a row <td>. . . </td> 46
Simple HTML Tables – Example <table cellspacing="0" cellpadding="5"> <tr> <td><img src="ppt. gif"></td> <td><a href="lecture 1. ppt">Lecture 1</a></td> </tr> <td><img src="ppt. gif"></td> <td><a href="lecture 2. ppt">Lecture 2</a></td> </tr> <td><img src="zip. gif"></td> <td><a href="lecture 2 -demos. zip"> Lecture 2 - Demos</a></td> </tr> </table> 47
Complete HTML Table: Example <table> columns <colgroup> <col style="width: 100 px" /><col /> </colgroup> th header <thead> <tr><th>Column 1</th><th>Column 2</th></tr> </thead> footer <tfoot> <tr><td>Footer 1</td><td>Footer 2</td></tr> </tfoot> Last comes the body (data) <tbody> <tr><td>Cell 1. 1</td><td>Cell 1. 2</td></tr> <tr><td>Cell 2. 1</td><td>Cell 2. 2</td></tr> </tbody> </table> 48
Complete HTML Table: Example (2) By default, header text <table> is bold and centered. table-full. html <colgroup> <col style="width: 200 px" /><col /> </colgroup> <thead> <tr><th>Column 1</th><th>Column 2</th></tr> </thead> <tfoot> <tr><td>Footer 1</td><td>Footer 2</td></tr> </tfoot> <tbody> the footer is <tr><td>Cell. Although 1. 1</td><td>Cell 1. 2</td></tr> <tr><td>Cell before 2. 1</td><td>Cell the data in 2. 2</td></tr> the </tbody> code, it is displayed last </table> 49
Nested Tables Table data “cells” (<td>) can contain nested tables (tables within tables): <table> <tr> <td>Contact: </td> <table> <tr> <td>First Name</td> <td>Last Name</td> </tr> </table> nested-tables. html 50
Cell Spacing and Padding Tables have two important attributes: cellspacing cellpadding cell cell Defines the empty space between cells Defines the empty space around the cell content 51
table-cells. html Cell Spacing and Padding – Example <html> <head><title>Table Cells</title></head> <body> <table cellspacing="15" cellpadding="0"> <tr><td>First</td> <td>Second</td></tr> </table> <br/> <table cellspacing="0" cellpadding="10"> <tr><td>First</td><td>Second</td></tr> </table> </body> </html> 52
table-cells. html Cell Spacing and Padding – Example (2) <html> <head><title>Table Cells</title></head> <body> <table cellspacing="15" cellpadding="0"> <tr><td>First</td> <td>Second</td></tr> </table> <br/> <table cellspacing="0" cellpadding="10"> <tr><td>First</td><td>Second</td></tr> </table> </body> </html> 53
Column and Row Span Table cells have two important attributes: colspan="1" cell[1, 1] rowspan colspan="1" cell[1, 2] cell[2, 1] Defines how colspan="2" many columns the cell occupies rowspan="2" cell[1, 1] rowspan="1" cell[1, 2] cell[2, 1] rowspan="1" Defines how many rows the cell occupies 54
Column and Row Span – Example table-colspan-rowspan. html <table cellspacing="0"> <tr class="1"><td>Cell[1, 1]</td> <td colspan="2">Cell[2, 1]</td></tr> <tr class=“ 2"><td>Cell[1, 2]</td> <td rowspan="2">Cell[2, 2]</td> <td>Cell[3, 2]</td></tr> <tr class=“ 3"><td>Cell[1, 3]</td> <td>Cell[2, 3]</td></tr> </table> 55
Column and Row Span – Example (2) table-colspan-rowspan. html <table cellspacing="0"> <tr class="1"><td>Cell[1, 1]</td> <td colspan="2">Cell[2, 1]</td></tr> <tr class=“ 2"><td>Cell[1, 2]</td> <td rowspan="2">Cell[2, 2]</td> <td>Cell[3, 2]</td></tr> <tr class=“ 3"><td>Cell[1, 3]</td> <td>Cell[2, 3]</td></tr> Cell[1, 1] Cell[2, 1] </table> Cell[1, 2] Cell[3, 2] Cell[2, 2] Cell[1, 3] Cell[2, 3] 56
HTML Forms Entering User Data from a Web Page
HTML Forms are the primary method for gathering data from site visitors Create a form block with <form></form> Example: The “method" attribute tells how the form data should be sent – via GET or POST request <form name="my. Form" method="post" action="path/to/some-script. php">. . . </form> The "action" attribute tells where the form data should be sent 58
Form Fields Single-line text input fields: <input type="text" name="First. Name" value="This is a text field" /> Multi-line textarea fields: <textarea name="Comments">This is a multi-line text field</textarea> Hidden fields contain data not shown to the user: <input type="hidden" name="Account" value="This is a hidden text field" /> Often used by Java. Script code 59
Fieldsets are used to enclose a group of related form fields: <form method="post" action="form. aspx"> <fieldset> <legend>Client Details</legend> <input type="text" id="Name" /> <input type="text" id="Phone" /> </fieldset> <legend>Order Details</legend> <input type="text" id="Quantity" /> <textarea cols="40" rows="10" id="Remarks"></textarea> </fieldset> </form> The <legend> is the fieldset's title. 60
Labels Form labels are used to associate an explanatory text to a form field using the field's ID. <label for="fn">First Name</label> <input type="text" id="fn" /> Clicking on a label focuses its associated field (checkboxes are toggled, radio buttons are checked) Labels are both a usability and accessibility feature and are required in order to pass accessibility validation. 61
HTML Forms – Example (2) form. html (continued) Gender: <input name="gender" type="radio" id="gm" value="m" /> <label for="gm">Male</label> <input name="gender" type="radio" id="gf" value="f" /> <label for="gf">Female</label> <label for="email">Email</label> <input type="text" name="email" id="email" /> </fieldset> <p> <textarea name="terms" cols="30" rows="4" readonly="readonly">TERMS AND CONDITIONS. . . </textarea> </p> <input type="submit" name="submit" value="Send Form" /> <input type="reset" value="Clear Form" /> </p> </form> 62
HTML Forms – Example (3) form. html (continued) 63
HTML Frames <frameset>, <frame> and <iframe>
HTML Frames provide a way to show multiple HTML documents in a single Web page The page can be split into separate views (frames) horizontally and vertically Frames were popular in the early ages of HTML development, but now their usage is rejected Frames are not supported by all user agents (browsers, search engines, etc. ) A <noframes> element is used to provide 65
HTML Frames – Demo frames. html <html> <head><title>Frames Example</title></head> <frameset cols="180 px, *, 150 px"> <frame src="left. html" /> <frame src="middle. html" /> <frame src="right. html" /> </frameset> </html> Note the target attribute applied to the <a> elements in the left frame. 66
Inline Frames: <iframe> Inline frames provide a way to show one website inside another website: iframe-demo. html <iframe name="iframe. Google" width="600" height="400" src="http: //www. google. com" frameborder="yes" scrolling="yes"></iframe> 67
Cascading Style Sheets (CSS)
Table of Contents What is CSS? Styling with Cascading Stylesheets (CSS) Selectors and style definitions Linking HTML and CSS Fonts, Backgrounds, Borders The Box Model Alignment, Z-Index, Margin, Padding Positioning and Floating Elements Visibility, Display, Overflow CSS Development Tools 69
CSS: A New Philosophy Separate content from presentation! Content (HTML document) Title Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at pede ut purus malesuada dictum. Donec vitae neque non magna aliquam dictum. • Vestibulum et odio et ipsum Presentation (CSS Document) Bold Italics Indent • accumsan. Morbi at • arcu vel elit ultricies porta. Proin tortor purus, luctus non, aliquam nec, interdum vel, mi. Sed nec quam nec odio lacinia molestie. Praesent augue tortor, convallis eget, euismod nonummy, lacinia ut, risus. 70
The Resulting Page Title Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at pede ut purus malesuada dictum. Donec vitae neque non magna aliquam dictum. • Vestibulum et odio et ipsum • accumsan. Morbi at • arcu vel elit ultricies porta. Proin Tortor purus, luctus non, aliquam nec, interdum vel, mi. Sed nec quam nec odio lacinia molestie. Praesent augue tortor, convallis eget, euismod nonummy, lacinia ut, risus. 71
CSS Intro Styling with Cascading Stylesheets
CSS Introduction Cascading Style Sheets (CSS) Used to describe the presentation of documents Define sizes, spacing, fonts, colors, layout, etc. Improve content accessibility Improve flexibility Designed to separate presentation from content Due to CSS, all HTML presentation tags and attributes are deprecated, e. g. font, center, etc. 73
CSS Introduction (2) CSS can be applied to any XML document Not just to HTML / XHTML CSS can specify different styles for different media On-screen In print Handheld, projection, etc. … even by voice or Braille-based reader 74
Why “Cascading”? Priority scheme determining which style rules apply to element Cascade priorities or specificity (weight) are calculated and assigned to the rules Child elements in the HTML DOM tree inherit styles from their parent Can override them Control via !important rule 75
Why “Cascading”? (2) 76
Why “Cascading”? (3) Some CSS styles are inherited and some not Text-related and list-related properties are inherited - color, font-size, font-family, line-height, text-align, list-style, etc Box-related and positioning styles are not inherited - width, height, border, margin, padding, position, float, etc <a> elements do not inherit color and text- decoration 77
Style Sheets Syntax Stylesheets consist of rules, selectors, declarations, properties and values http: //css. maxdesign. com. au/ Selectors are separated by commas Declarations are separated by semicolons Properties and values are separated by colons h 1, h 2, h 3 { color: green; font-weight: bold; } 78
Selectors determine which element the rule applies to: All elements of specific type (tag) Those that mach a specific attribute (id, class) Elements may be matched depending on how they are nested in the document tree (HTML) Examples: . header a { color: green } #menu>li { padding-top: 8 px } 79
Selectors (2) Three primary kinds of selectors: By tag (type selector): h 1 { font-family: verdana, sans-serif; } By element id: #element_id { color: #ff 0000; } By element class name (only for HTML): . my. Class {border: 1 px solid red} Selectors can be combined with commas: h 1, . link, #top-link {font-weight: bold} This will match <h 1> tags, elements with class link, and element with id top-link 80
Selectors (3) Pseudo-classes define state : hover, : visited, : active , : lang Pseudo-elements define element "parts" or are used to generate content : first-line , : before, : after a: hover { color: red; } p: first-line { text-transform: uppercase; }. title: before { content: "» "; }. title: after { content: " «"; } 81
Selectors (4) Match relative to element placement: p a {text-decoration: underline} This will match all <a> tags that are inside of <p> * – universal selector (avoid or use with care!): p * {color: black} This will match all descendants of <p> element + selector – used to match “next sibling”: img +. link {float: right} This will match all siblings with class name link that appear immediately after <img> tag 82
Selectors (5) > selector – matches direct child nodes: p >. error {font-size: 8 px} This will match all elements with class error, direct children of <p> tag [ ] – matches tag attributes by regular expression: img[alt~=logo] {border: none} This will match all <img> tags with alt attribute containing the word logo (no space) - matches elements with both (all) classes applied at the same time . class 1. class 2 83
Values in the CSS Rules Colors are set in RGB format (decimal or hex): Example: #a 0 a 6 aa = rgb(160, 166, 170) Predefined color aliases exist: black, blue, etc. Numeric values are specified in: Pixels, ems, e. g. 12 px , 1. 4 em Points, inches, centimeters, millimeters E. g. 10 pt , 1 in, 1 cm, 1 mm Percentages, e. g. 50% Percentage of what? . . . Zero can be used with no unit: border: 0; 84
Default Browser Styles Browsers have default CSS styles Used when there is no CSS information or any other style information in the document Caution: default styles differ in browsers E. g. margins, paddings and font sizes differ most often and usually developers reset them * { margin: 0; padding: 0; } body, h 1, p, ul, li { margin: 0; padding: 0; } 85
Linking HTML and CSS HTML (content) and CSS (presentation) can be linked in three ways: Inline: the CSS rules in the style attribute No selectors are needed Embedded: in the <head> in a <style> tag External: CSS rules in separate file (best) Usually a file with. css extension Linked via <link rel="stylesheet" href=…> tag or @import directive in embedded CSS block 86
Linking HTML and CSS (2) Using external files is highly recommended Simplifies the HTML document Improves page load speed as the CSS file is cached 87
Inline Styles: Example inline-styles. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/ DTD/xhtml 1 -transitional. dtd"> <html xmlns="http: //www. w 3. org/1999/xhtml"> <head> <title>Inline Styles</title> </head> <body> <p>Here is some text</p> <!--Separate multiple styles with a semicolon--> <p style="font-size: 20 pt">Here is some more text</p> <p style="font-size: 20 pt; color: #0000 FF" >Even more text</p> </body> </html> 88
Inline Styles: Example inline-styles. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/ DTD/xhtml 1 -transitional. dtd"> <html xmlns="http: //www. w 3. org/1999/xhtml"> <head> <title>Inline Styles</title> </head> <body> <p>Here is some text</p> <!--Separate multiple styles with a semicolon--> <p style="font-size: 20 pt">Here is some more text</p> <p style="font-size: 20 pt; color: #0000 FF" >Even more text</p> </body> </html> 89
CSS Cascade (Precedence) There are browser, user and author stylesheets with "normal" and "important" declarations Browser styles (least priority) Normal user styles Normal author styles (external, in head, inline) Important author styles a. Important user!important styles (max { color: red ; } priority) http: //www. slideshare. net/maxdesign/css-cascade-1658158 90
CSS Specificity CSS specificity is used to determine the precedence of CSS style declarations with the same origin. Selectors are what matters Simple calculation: #id = 100, . class = 10, : pseudo = 10, [attr] = 10, tag = 1, * = 0 Same number of points? Order matters. See also: http: //www. smashingmagazine. com/2007/07/27/css-specificity-thingsyou-should-know/ http: //css. maxdesign. com. au/selectutorial/advanced_conflict. htm 91
Embedded Styles Embedded in the HTML in the <style> tag: <style type="text/css"> The <style> tag is placed in the <head> section of the document type attribute specifies the MIME type MIME describes the format of the content Other MIME types include text/html, image/gif, text/javascript … Used for document-specific styles 92
Embedded Styles: Example embedded-stylesheets. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 transitional. dtd"> <html xmlns="http: //www. w 3. org/1999/xhtml"> <head> <title>Style Sheets</title> <style type="text/css"> em {background-color: #8000 FF; color: white} h 1 {font-family: Arial, sans-serif} p {font-size: 18 pt}. blue {color: blue} </style> <head> 93
Embedded Styles: Example (2) … <body> <h 1 class="blue">A Heading</h 1> <p>Here is some text. </p> <h 1>Another Heading</h 1> <p class="blue">Here is some more text. </p> <p class="blue">Here is some <em>more</em> text. Here is some more text. </p> </body> </html> 94
Embedded Styles: Example (3) … <body> <h 1 class="blue">A Heading</h 1> <p>Here is some text. </p> <h 1>Another Heading</h 1> <p class="blue">Here is some more text. </p> <p class="blue">Here is some <em>more</em> text. Here is some more text. </p> </body> </html> 95
External CSS Styles External linking Separate pages can all use a shared style sheet Only modify a single file to change the styles across your entire Web site (see http: //www. csszengarden. com/) link tag (with a rel attribute) Specifies a relationship between current document and another document <link rel="stylesheet" type="text/css" href="styles. css"> link elements should be in the <head> 96
External CSS Styles (2) @import Another way to link external CSS files Example: <style type="text/css"> @import url("styles. css"); /* same as */ @import "styles. css"; </style> Ancient browsers do not recognize @import Use @import in an external CSS file to workaround the IE 32 CSS file limit 97
External Styles: Example styles. css /* CSS Document */ a { text-decoration: none } a: hover { text-decoration: underline; color: red; background-color: #CCFFCC } li em { color: red; font-weight: bold } ul { margin-left: 2 cm } ul ul { text-decoration: underline; margin-left: . 5 cm } 98
External Styles: Example (2) external-styles. html <!DOCTYPE html PUBLIC "-//W 3 C//DTD XHTML 1. 0 Transitional//EN" "http: //www. w 3. org/TR/xhtml 1/DTD/xhtml 1 transitional. dtd"> <html xmlns="http: //www. w 3. org/1999/xhtml"> <head> <title>Importing style sheets</title> <link type="text/css" rel="stylesheet" href="styles. css" /> </head> <body> <h 1>Shopping list for <em>Monday</em>: </h 1> <li>Milk</li> … 99
External Styles: Example (3) … <li>Bread <ul> <li>White bread</li> <li>Rye bread</li> <li>Whole wheat bread</li> </ul> </li> <li>Rice</li> <li>Potatoes</li> <li>Pizza <em>with mushrooms</em></li> </ul> <a href="http: //food. com" title="grocery store">Go to the Grocery store</a> </body> </html> 100
External Styles: Example (4) … <li>Bread <ul> <li>White bread</li> <li>Rye bread</li> <li>Whole wheat bread</li> </ul> </li> <li>Rice</li> <li>Potatoes</li> <li>Pizza <em>with mushrooms</em></li> </ul> <a href="http: //food. com" title="grocery store">Go to the Grocery store</a> </body> </html> 101
Text-related CSS Properties color – specifies the color of the text font-size – size of font: xx-small, medium, large, x-large, xx-large, smaller, larger or numeric value font-family – comma separated font names Example: verdana, sans-serif, etc. The browser loads the first one that is available There should always be at least one generic font-weight can be normal, bolder, lighter or a number in range [100 … 900] 102
CSS Rules for Fonts (2) font-style – styles the font Values: normal, italic, oblique text-decoration – decorates the text Values: none, underline, line-trough, overline, blink text-align – defines the alignment of text or other content Values: left, right, center, justify 103
Shorthand Font Property font Shorthand rule for setting multiple font properties at the same time font: italic normal bold 12 px/16 px verdana is equal to writing this: font-style: italic; font-variant: normal; font-weight: bold; font-size: 12 px; line-height: 16 px; font-family: verdana; 104
Backgrounds background-image URL of image to be used as background, e. g. : background-image: url("back. gif"); background-color Using color and image and the same time background-repeat repeat-x, repeat-y, repeat, no-repeat background-attachment fixed / scroll 105
Backgrounds (2) background-position: specifies vertical and horizontal position of the background image Vertical position: top, center, bottom Horizontal position: left, center, right Both can be specified in percentage or other numerical values Examples: background-position: top left; background-position: -5 px 50%; 106
Background Shorthand Property background: shorthand rule for setting background properties at the same time: background: #FFF 0 C 0 url("back. gif") no-repeat fixed top; is equal to writing: background-color: #FFF 0 C 0; background-image: url("back. gif"); background-repeat: no-repeat; background-attachment: fixed; background-position: top; Some browsers will not apply BOTH color and image for background if using shorthand rule 107
Background-image or <img>? Background images allow you to save many image tags from the HTML Leads to less code More content-oriented approach All images that are not part of the page content (and are used only for "beautification") should be moved to the CSS 108
Borders border-width: thin, medium, thick or numerical value (e. g. 10 px) border-color: color alias or RGB value border-style: none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset Each property can be defined separately for left, top, bottom and right border-top-style, border-left-color, … 109
Border Shorthand Property border: shorthand rule for setting border properties at once: border: 1 px solid red is equal to writing: border-width: 1 px; border-color: red; border-style: solid; Specify different borders for the sides via shorthand rules: border-top, border-left, border-right, border-bottom When to avoid border: 0 110
Width and Height width – defines numerical value for the width of element, e. g. 200 px height – defines numerical value for the height of element, e. g. 100 px By default the height of an element is defined by its content Inline elements do not apply height, unless you change their display style. 111
Margin and Padding margin and padding define the spacing around the element Numerical value, e. g. 10 px or -5 px Can be defined for each of the four sides separately - margin-top, padding-left, … margin is the spacing outside of the border padding is the spacing between the border and the content What are collapsing margins? 112
Margin and Padding: Short Rules margin: 5 px; Sets all four sides to have margin of 5 px; margin: 10 px 20 px; top and bottom to 10 px, left and right to 20 px; margin: 5 px 3 px 8 px; top 5 px, left/right 3 px, bottom 8 px margin: 1 px 3 px 5 px 7 px; top, right, bottom, left (clockwise from top) Same for padding 113
The Box Model 114
IE Quirks Mode When using quirks mode (pages with no DOCTYPE or with a HTML 4 Transitional DOCTYPE), Internet Explorer violates the box model standard 115
Positioning position: defines the positioning of the element in the page content flow The value is one of: static (default) relative – relative position according to where the element would appear with static position absolute – position according to the innermost positioned parent element fixed – same as absolute, but ignores page scrolling 116
Positioning (2) Margin VS relative positioning Fixed and absolutely positioned elements do not influence the page normal flow and usually stay on top of other elements Their position and size is ignored when calculating the size of parent element or position of surrounding elements Overlaid according to their z-index Inline fixed or absolutely positioned elements can apply height like block-level elements 117
Positioning (3) top, left, bottom, right: specifies offset of absolute/fixed/relative positioned element as numerical values z-index : specifies the stack level of positioned elements Understanding stacking context Each positioned element creates a stacking context. Elements in different stacking contexts are overlapped according to the stacking order of their containers. For example, there is no way for #A 1 and #A 2 (children of #A) to be placed over #B without increasing the z-index of #A. 118
Inline element positioning vertical-align: sets the vertical-alignment of an inline element, according to the line height Values: baseline, sub, super, top, text- top, middle, bottom, text-bottom or numeric Also used for content of table cells (which apply middle alignment by default) 119
Float float: the element “floats” to one side left: places the element on the left and following content on the right: places the element on the right and following content on the left floated elements should come before the content that will wrap around them in the code margins of floated elements do not collapse floated inline elements can apply height 120
Float (2) How floated elements are positioned 121
Clear clear Sets the sides of the element where other floating elements are NOT allowed Used to "drop" elements below floated ones or expand a container, which contains only floated children Possible values: left, right, both Clearing floats additional element (<div>) with a clear style 122
Clear (2) Clearing floats (continued) : after clear: { content: ""; display: block; both; height: 0; } Triggering has. Layout in IE expands a container of floated elements display: inline-block; zoom: 1; 123
Opacity opacity: specifies the opacity of the element Floating point number from 0 to 1 For old Mozilla browsers use –moz-opacity For IE use filter: alpha(opacity=value) where value is from 0 to 100; also, "binary and script behaviors" must be enabled and has. Layout must be triggered, e. g. with zoom: 1 124
Visibility visibility Determines whether the element is visible hidden: element is not rendered, but still occupies place on the page (similar to opacity: 0) visible: element is rendered normally 125
Display display: controls the display of the element and the way it is rendered and if breaks should be placed before and after the element inline: no breaks are placed before and after (<span> is an inline element) block: breaks are placed before AND after the element (<div> is a block element) 126
Display (2) display: controls the display of the element and the way it is rendered and if breaks should be placed before and after the element none: element is hidden and its dimensions are not used to calculate the surrounding elements rendering (differs from visibility: hidden!) There are some more possible values, but not all browsers support them Specific displays like table-cell and tablerow 127
Overflow overflow: defines the behavior of element when content needs more space than you have specified by the size properties or for other reasons. Values: visible (default) – content spills out of the element auto - show scrollbars if needed scroll – always show scrollbars hidden – any content that cannot fit is clipped 128
Other CSS Properties cursor: specifies the look of the mouse cursor when placed over the element Values: crosshair, help, pointer, progress, move, hair, col-resize, rowresize, text, wait, copy, drop, and others white-space – controls the line breaking of text. Value is one of: nowrap – keeps the text on one line normal (default) – browser decides whether to brake the lines if needed 129
Benefits of using CSS More powerful formatting than using presentation tags Your pages load faster, because browsers cache the. css files Increased accessibility, because rules can be defined according given media Pages are easier to maintain and update 130
Maintenance Example Title Some random text here. You Some random can’t read it Title text here. You Some random anyway! Har har can’t read it Title text here. You Some random har! Use Css. anyway! Har har can’t read it Title text here. You har! Use Css. anyway! Har har can’t read it Title Some random har! Use Css. anyway! Har har text here. You Some random har! Use Css. can’t read it Title text here. You anyway! Har har can’t read it Title Some random har! Use Css. anyway! Har har Title text here. You Some random har! Use Css. Title can’t read it text here. You Some random anyway! Har har can’t read it Some random Title text here. You har! Use Css. anyway! Har har text here. You can’t read it Title Some random har! Use Css. can’t read it anyway! Har har Title text here. You Some random anyway! Har har! Use Css. can’t read it Title text here. You har! Use Css. Some random anyway! Har har can’t read it Title text here. You Some random har! Use Css. anyway! Har har can’t read it text here. You har! Use Css. anyway! Har har can’t read it Title har! Use Css. anyway! Har har Some random har! Use Css. Title text here. You can’t read it Title Some random anyway! Har har Title text here. You Some random har! Use Css. can’t read it text here. You Some random anyway! Har har can’t read it Title text here. You har! Use Css. anyway! Har har can’t read it Some random har! Use Css. anyway! Har har Title text here. You. Title har! Use Css. can’t read it Some random anyway! Har har Title text here. You har! Use Css. can’t read it Some random anyway! Har har Title text here. You har! Use Css. can’t read it Title Some random anyway! Har har text here. You Some random har! Use Css. can’t read it Title text here. You anyway! Har har can’t read it Some random har! Use Css. anyway! Har har text here. You har! Use Css. can’t read it Title anyway! Har har Title Some random har! Use Css. text here. You Some random can’t read it Title text here. You anyway! Har har can’t read it Title Some random har! Use Css. anyway! Har har Title text here. You Some random har! Use Css. can’t read it Title text here. You Some random anyway! Har har can’t read it Title text here. You Some random har! Use Css. anyway! Har har can’t read it Title text here. You har! Use Css. anyway! Har har can’t read it Some random har! Use Css. anyway! Har har Title text here. You har! Use Css. can’t read it Some random anyway! Har har text here. You har! Use Css. can’t read it anyway! Har har har! Use Css. Title CSS file 131
CSS Development Tools Visual Studio – CSS Editor 132
CSS Development Tools (3) Firebug – add-on to Firefox used to examine and adjust CSS and HTML 133
CSS Development Tools (4) IE Developer Toolbar – add-on to IE used to examine CSS and HTML (press [F 12]) 134
Introduction to Java. Script
Table of Contents What is DHTML? DHTML Technologies XHTML, CSS, Java. Script, DOM 136
Table of Contents (2) Introduction to Java. Script What is Java. Script Implementing Java. Script into Web pages In <head> part In <body> part In external. js file 137
Table of Contents (3) Java. Script Syntax Java. Script operators Java. Script Data Types Java. Script Pop-up boxes alert, confirm and prompt Conditional and switch statements, loops and functions Document Object Model Debugging in Java. Script 138
DHTML Dynamic Behavior at the Client Side
What is DHTML? Dynamic HTML (DHTML) Makes possible a Web page to react and change in response to the user’s actions DHTML = HTML + CSS + Java. Script DHTML XHTML CSS Java. Script DOM 140
DTHML = HTML + CSS + Java. Script HTML defines Web sites content through semantic tags (headings, paragraphs, lists, …) CSS defines 'rules' or 'styles' for presenting every aspect of an HTML document Font (family, size, color, weight, etc. ) Background (color, image, position, repeat) Position and layout (of any object on the page) Java. Script defines dynamic behavior Programming logic for interaction with the user, to handle events, etc. 141
Java. Script Dynamic Behavior in a Web Page
Java. Script is a front-end scripting language developed by Netscape for dynamic content Lightweight, but with limited capabilities Can be used as object-oriented language Client-side technology Embedded in your HTML page Interpreted by the Web browser Simple and flexible Powerful to manipulate the DOM 143
Java. Script Advantages Java. Script allows interactivity such as: Implementing form validation React to user actions, e. g. handle keys Changing an image on moving mouse over it Sections of a page appearing and disappearing Content loading and changing dynamically Performing complex calculations Custom HTML controls, e. g. scrollable table Implementing AJAX functionality 144
What Can Java. Script Do? Can handle events Can read and write HTML elements and modify the DOM tree Can validate form data Can access / modify browser cookies Can detect the user’s browser and OS Can be used as object-oriented language Can handle exceptions Can perform asynchronous server calls (AJAX) 145
The First Script first-script. html <html> <body> <script type="text/javascript"> alert('Hello Java. Script!'); </script> </body> </html> 146
Another Small Example small-example. html <html> <body> <script type="text/javascript"> document. write('Java. Script rulez!'); </script> </body> </html> 147
Using Java. Script Code The Java. Script code can be placed in: <script> tag in the head <script> tag in the body – not recommended External files, linked via <script> tag the head Files usually have. js extension <script src="scripts. js" type="text/javscript"> <!– code placed here will not be executed! --> </script> Highly recommended The. js files get cached by the browser 148
Java. Script – When is Executed? Java. Script code is executed during the page loading or when the browser fires an event All statements are executed at page loading Some statements just define functions that can be called later Function calls or code can be attached as "event handlers" via tag attributes Executed when the event is fired by the browser <img src="logo. gif" onclick="alert('clicked!')" /> 149
Calling a Java. Script Function from Event Handler – Example <html> image-onclick. html <head> <script type="text/javascript"> function test (message) { alert(message); } </script> </head> <body> <img src="logo. gif" onclick="test('clicked!')" /> </body> </html> 150
Using External Script Files Using external script files: <html> external-Java. Script. html <head> <script src="sample. js" type="text/javascript"> </script> </head> The <script> tag is always empty. <body> <button onclick="sample()" value="Call Java. Script function from sample. js" /> </body> </html> External Java. Script file: function sample() { alert('Hello from sample. js!') } sample. js 151
The Java. Script Syntax
Java. Script Syntax The Java. Script syntax is similar to C# and Java Operators (+, *, =, !=, &&, ++, …) Variables (typeless) Conditional statements (if, else) Loops (for, while) Arrays (my_array[]) and associative arrays (my_array['abc']) Functions (can return value) Function variables (like the C# delegates) 153
Data Types Java. Script data types: Numbers (integer, floating-point) Boolean (true / false) String type – string of characters var my. Name = "You can use both single or double quotes for strings"; Arrays var my_array = [1, 5. 3, "aaa"]; Associative arrays (hash tables) var my_hash = {a: 2, b: 3, c: "text"}; 154
Everything is Object Every variable can be considered as object For example strings and arrays have member functions: objects. html var test = "some string"; alert(test[7]); // shows letter 'r' alert(test. char. At(5)); // shows letter 's' alert("test". char. At(1)); //shows letter 'e' alert("test". substring(1, 3)); //shows 'es' var arr = [1, 3, 4]; alert (arr. length); // shows 3 arr. push(7); // appends 7 to end of array alert (arr[3]); // shows 7 155
String Operations The + operator joins string 1 = "fat "; string 2 = "cats"; alert(string 1 + string 2); // fat cats What is "9" + 9? alert("9" + 9); // 99 Converting string to number: alert(parse. Int("9") + 9); // 18 156
Arrays Operations and Properties Declaring new empty array: var arr = new Array(); Declaring an array holding few elements: var arr = [1, 2, 3, 4, 5]; Appending an element / getting the last element: arr. push(3); var element = arr. pop(); Reading the number of elements (array length): arr. length; Finding element's index in the array: arr. index. Of(1); 157
Standard Popup Boxes Alert box with text and [OK] button Just a message shown in a dialog box: alert("Some text here"); Confirmation box Contains text, [OK] button and [Cancel] button: confirm("Are you sure? "); Prompt box Contains text, input field with default value: prompt ("enter amount", 10); 158
Sum of Numbers – Example sum-of-numbers. html <html> <head> <title>Java. Script Demo</title> <script type="text/javascript"> function calc. Sum() { value 1 = parse. Int(document. main. Form. text. Box 1. value ); value 2 = parse. Int(document. main. Form. text. Box 2. value); sum = value 1 + value 2; document. main. Form. text. Box. Sum. value = sum ; } </script> </head> 159
Sum of Numbers – Example (2) sum-of-numbers. html (cont. ) <body> <form name="main. Form"> <input type="text" name="text. Box 1" /> <br/> <input type="text" name="text. Box 2" /> <br/> <input type="button" value="Process" onclick="javascript: calc. Sum()" /> <input type="text" name="text. Box. Sum" readonly="readonly"/> </form> </body> </html> 160
Java. Script Prompt – Example prompt. html price = prompt("Enter the price", "10. 00"); alert('Price + VAT = ' + price * 1. 2); 161
Conditional Statement (if) unit. Price = 1. 30; if (quantity > 100) { unit. Price = 1. 20; } Symbol Meaning > Greater than < Less than >= Greater than or equal to <= Less than or equal to == Equal != Not equal 162
Conditional Statement (if) (2) The condition may be of Boolean or integer type: conditional-statements. html var a = 0; var b = true; if (typeof(a)=="undefined" || typeof(b)=="undefined") { document. write("Variable a or b is undefined. "); } else if (!a && b) { document. write("a==0; b==true; "); } else { document. write("a==" + a + "; b==" + b + "; "); } 163
Switch Statement The switch statement works like in C#: switch (variable) { switch-statements. html case 1: // do something break; case 'a': // do something else break; case 3. 14: // another code break; default: // something completely different } 164
Loops Like in C# for loop while loop do … while loop var counter; for (counter=0; counter<4; counter++) { alert(counter); } while (counter < 5) { alert(++counter); loops. html } 165
Functions Code structure – splitting code into parts Data comes in, processed, result returned function average(a, b, c) { var total; total = a+b+c; return total/3; } Parameters come in here. Declaring variables is optional. Type is never declared. Value returned here. 166
- Slides: 166