Presentation is loading. Please wait.

Presentation is loading. Please wait.

HTML, Text, Images, Tables Nikolay Kostov Telerik Corporation www.telerik.com.

Similar presentations


Presentation on theme: "HTML, Text, Images, Tables Nikolay Kostov Telerik Corporation www.telerik.com."— Presentation transcript:

1 HTML, Text, Images, Tables Nikolay Kostov Telerik Corporation www.telerik.com

2 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 Declaration  The Section: Title, Meta, Script, Style 2

3 2. HTML in Details  The Section  Text Styling and Formatting Tags  Hyperlinks:, Hyperlinks and Sections  Images:  Images:  Lists:, and  Lists:, and 3. The and elements 4. HTML Tables 5. HTML Forms 3

4  WWW use classical client / server architecture  HTTP is text-based request-response protocol 4 Page request Client running a Web Browser Server running Web Server Software (IIS, Apache, etc.) Server response HTTP HTTP

5  Web pages are text files containing HTML  HTML – H yper T ext M arkup L anguage  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

6  An HTML file must have an.htm or.html file extension  HTML files can be created with text editors:  NotePad, NotePad ++, PSPad  Or HTML editors (WYSIWYG Editors):  Microsoft FrontPage  Macromedia Dreamweaver  Netscape Composer  Microsoft Word  Visual Studio 6

7 Text, Images, Tables, Forms

8  HTML is comprised of “elements” and “tags”  Begins with and ends with  Begins with and ends with  Elements (tags) are nested one inside another:  Tags have attributes:  HTML describes structure using two main sections: and  HTML describes structure using two main sections: and 8

9  The HTML source code should be formatted to increase readability and facilitate debugging.  Every block element should start on a new line.  Every nested (block) element should be indented.  Browsers ignore multiple whitespaces in the page source, so formatting is harmless.  For performance reasons, formatting can be sacrificed 9

10 10 <html> My First HTML Page My First HTML Page This is some text... This is some text... </html> test.html

11 <html> My First HTML Page My First HTML Page This is some text... This is some text... </html> 11 Opening tag Closing tag An HTML element consists of an opening tag, a closing tag and the content inside.

12 <html> My First HTML Page My First HTML Page This is some text... This is some text... </html> 12 HTML header

13 <html> My First HTML Page My First HTML Page This is some text... This is some text... </html> 13 HTML body

14  Hyperlink Tags  Image Tags  Text formatting tags 14 <a href="http://www.telerik.com/" title="Telerik">Link to Telerik Web site title="Telerik">Link to Telerik Web site This text is emphasized. This text is emphasized. new line new line This one is more emphasized. This one is more emphasized.

15 15 <html><head> Simple Tags Demo Simple Tags Demo </head><body> <a href="http://www.telerik.com/" title= "Telerik site">This is a link. "Telerik site">This is a link. Bold and italic text. Bold and italic text.</body></html> some-tags.html

16 16 <html><head> Simple Tags Demo Simple Tags Demo </head><body> <a href="http://www.telerik.com/" title= "Telerik site">This is a link. "Telerik site">This is a link. Bold and italic text. Bold and italic text.</body></html> some-tags.html

17  Tags can have attributes  Attributes specify properties and behavior  Example:  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 17 Attribute alt with value " logo "

18  Heading Tags (h1 – h6)  Paragraph Tags  Sections: div and span 18 This is my first paragraph This is my first paragraph This is my second paragraph This is my second paragraph Heading 1 Heading 1 Sub heading 2 Sub heading 2 Sub heading 3 Sub heading 3 This is a div This is a div

19 19 <html> Headings and paragraphs Headings and paragraphs Heading 1 Heading 1 Sub heading 2 Sub heading 2 Sub heading 3 Sub heading 3 This is my first paragraph This is my first paragraph This is my second paragraph This is my second paragraph This is a div This is a div </html> headings.html

20 <html> Headings and paragraphs Headings and paragraphs Heading 1 Heading 1 Sub heading 2 Sub heading 2 Sub heading 3 Sub heading 3 This is my first paragraph This is my first paragraph This is my second paragraph This is my second paragraph This is a div This is a div </html> 20 headings.html

21 HTML Document Structure in Depth

22  It is important to have the correct vision and attitude towards HTML  HTML is only about structure, not appearance  Browsers tolerate invalid HTML code and parse errors – you should not. 22

23  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:  See http://w3.org/QA/2002/04/valid-dtd-list.html for a list of possible doctypes http://w3.org/QA/2002/04/valid-dtd-list.html 23

24  XHTML is more strict than HTML  Tags and attribute names must be in lowercase  All tags must be closed (, ) while HTML allows and and implies missing closing tags ( par1 par2 )  XHTML allows only one root element (HTML allows more than one) 24

25  Many element attributes are deprecated in XHTML, most are moved to CSS  Attribute minimization is forbidden, e.g.  Note: Web browsers load XHTML faster than HTML and valid code faster than invalid! 25

26  Contains information that doesn’t show directly on the viewable page  Starts after the declaration  Begins with and ends with  Begins with and ends with  Contains mandatory single tag  Can contain some other tags, e.g.   26

27  Title should be placed between and tags  Used to specify a title in the window title bar  Search engines and people rely on titles 27 Telerik Academy – Winter Season 2009/2010 Telerik Academy – Winter Season 2009/2010

28  Meta tags additionally describe the content contained within the page 28

29  The element is used to embed scripts into an HTML document  Script are executed in the client's Web browser  Scripts can live in the and in the sections  Supported client-side scripting languages:  JavaScript (it is not Java!)  VBScript  JScript 29

30 30 <html> JavaScript Example JavaScript Example function sayHello() { function sayHello() { document.write(" Hello World! "); document.write(" Hello World! "); } <script type= <script type= "text/javascript"> "text/javascript"> sayHello(); sayHello(); </html> scripts-example.html

31  The element embeds formatting information (CSS styles) into an HTML page 31 <html> p { font-size: 12pt; line-height: 12pt; } p { font-size: 12pt; line-height: 12pt; } p:first-letter { font-size: 200%; } p:first-letter { font-size: 200%; } span { text-transform: uppercase; } span { text-transform: uppercase; } Styles demo. Styles demo. Test uppercase. Test uppercase. </html> style-example.html

32  Comments can exist anywhere between the tags  Comments start with  Comments start with 32 Telerik Telerik...

33  The section describes the viewable portion of the page  Starts after the section  Begins with and ends with  Begins with and ends with 33 <html> Test page Test page </html>

34  Text formatting tags modify the text between the opening tag and the closing tag  Ex. Hello makes “Hello” bold bold italicized underlined Sample superscript Sample subscript strong emphasized Preformatted text Quoted text block Deleted text – strike through 34

35 35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> Page Title Page Title Notice Notice This is a sample Web page. This is a sample Web page. Next paragraph: Next paragraph: preformatted. preformatted. More Info More Info Specifically, we’re using XHMTL 1.0 transitional. Specifically, we’re using XHMTL 1.0 transitional. Next line. Next line. </html> text-formatting.html

36 36 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> Page Title Page Title Notice Notice This is a sample Web page. This is a sample Web page. Next paragraph: Next paragraph: preformatted. preformatted. More Info More Info Specifically, we’re using XHMTL 1.0 transitional. Specifically, we’re using XHMTL 1.0 transitional. Next line. Next line. </html> text-formatting.html

37  Link to a document called form.html on the same server in the same directory:  Link to a document called parent.html on the same server in the parent directory:  Link to a document called cat.html on the same server in the subdirectory stuff : 37 Fill Our Form Fill Our Form Parent Parent Catalog Catalog

38  Link to an external Web site:  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: 38 BASD BASD Please report bugs here (by e-mail only) Please report bugs here (by e-mail only)

39  Link to a document called apply-now.html  On the same server, in same directory  Using an image as a link button:  Link to a document called index.html  On the same server, in the subdirectory english of the parent directory: 39 <img src="apply-now-button.jpg" /> src="apply-now-button.jpg" /> Switch to English version Switch to English version

40  Link to another location in the same document:  Link to a specific location in another document: 40 Go to Introduction Go to Introduction... Introduction Introduction Go to Section 3.1.1 Go to Section 3.1.1... 3.1.1. Technical Background 3.1.1. Technical Background </div>

41 41 Fill Our Form Fill Our Form Parent Parent Catalog Catalog BASD BASD Please report bugs here (by e-mail only) Please report bugs here (by e-mail only) Switch to English version Switch to English version hyperlinks.html

42 Fill Our Form Fill Our Form Parent Parent Catalog Catalog BASD BASD Please report bugs here (by e-mail only) Please report bugs here (by e-mail only) Switch to English version Switch to English version hyperlinks.html 42

43 43 Table of Contents Table of Contents Introduction Introduction Some background Some background Project History Project History...the rest of the table of contents... Introduction Introduction... Section 1 follows here... Some background Some background... Section 2 follows here... Project History Project History... Section 2.1 follows here... links-to-same-document.html

44 44 Table of Contents Table of Contents Introduction Introduction Some background Some background Project History Project History...the rest of the table of contents... Introduction Introduction... Section 1 follows here... Some background Some background... Section 2 follows here... Project History Project History... Section 2.1 follows here... links-to-same-document.html

45  Inserting an image with tag:  Image attributes:  Example: src Location of image file (relative or absolute) alt Substitute text for display (e.g. in text mode) height Number of pixels of the height width Number of pixels of the width border Size of border, 0 for no border 45

46  : Draws a horizontal rule (line):  : Deprecated! 46 Hello World! Hello World! Font3 Font3 Font+4 Font+4

47 47 <html> Miscellaneous Tags Example Miscellaneous Tags Example Hello World! Hello World! Font3 Font3 Font+4 Font+4 </html> misc.html

48 a.Apple b.Orange c.Grapefruit  Create an Ordered List using :  Attribute values for type are 1, A, a, I, or i 48 1.Apple 2.Orange 3.Grapefruit A.Apple B.Orange C.Grapefruit I.Apple II.Orange III.Grapefruit i.Apple ii.Orange iii.Grapefruit Apple Apple Orange Orange Grapefruit Grapefruit </ol>

49  Create an Unordered List using :  Attribute values for type are:  disc, circle or square 49 Apple Orange Pear o Apple o Orange o Pear  Apple  Orange  Pear Apple Apple Orange Orange Grapefruit Grapefruit </ul>

50  Create definition lists using  Create definition lists using  Pairs of text and associated definition; text is in tag, definition in tag  Renders without bullets  Definition is indented 50 <dl><dt>HTML</dt> A markup language … A markup language … <dt>CSS</dt> Language used to … Language used to … </dl>

51 51 Apple Apple Orange Orange Grapefruit Grapefruit </ol> Apple Apple Orange Orange Grapefruit Grapefruit </ul><dl> HTML HTML A markup lang… A markup lang… </dl> lists.html

52 ££ British Pound €€Euro "" Quotation Mark ¥¥ Japanese Yen —— Em Dash Non-breaking Space &&Ampersand >> Greater Than << Less Than ™™ Trademark Sign ®® Registered Trademark Sign ©© Copyright Sign Symbol HTML Entity Symbol Name 52

53 53 <p>[>> Welcome <<] <<] ►I have following cards: ►I have following cards: A♣, K♦ and 9♥. A♣, K♦ and 9♥. ►I prefer hard rock ♫ ►I prefer hard rock ♫ music ♫ music ♫ © 2006 by Svetlin Nakov & his team © 2006 by Svetlin Nakov & his team Telerik Academy™ Telerik Academy™ special-chars.html

54 54 <p>[>> Welcome <<] <<] ►I have following cards: ►I have following cards: A♣, K♦ and 9♥. A♣, K♦ and 9♥. ►I prefer hard rock ♫ ►I prefer hard rock ♫ music ♫ music ♫ © 2006 by Svetlin Nakov & his team © 2006 by Svetlin Nakov & his team Telerik Academy™ Telerik Academy™ special-chars.html

55

56  Block elements add a line break before and after them  is a block element  Other block elements are,, headings, lists, and etc.  Inline elements don’t break the text before and after them  is an inline element  Most HTML elements are inline, e.g.  Most HTML elements are inline, e.g. 56

57  creates logical divisions within a page  Block style element  Used with CSS  Example: 57 DIV example DIV example This one is only a test. This one is only a test. div-and-span.html

58  Inline style element  Useful for modifying a specific portion of text  Don't create a separate area (paragraph) in the document  Very useful with CSS 58 This one is only a test. This one is only a test. This one is another TEST. This one is another TEST. span.html

59

60  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: : begin / end the table : create a table row : create tabular data (cell)  Tables should not be used for layout. Use CSS floats and positioning styles instead 60

61  Start and end of a table  Start and end of a row  Start and end of a cell in a row 61......

62 62 Lecture 1 Lecture 1 Lecture 2 Lecture 2 Lecture 2 - Demos Lecture 2 - Demos </table>

63 Lecture 1 Lecture 1 Lecture 2 Lecture 2 Lecture 2 - Demos Lecture 2 - Demos </table> 63

64  Table rows split into three semantic sections: header, body and footer  denotes table header and contains elements, instead of elements  denotes collection of table rows that contain the very data  denotes table footer but comes BEFORE the tag  and define columns (most often used to set column widths) 64

65 65 <table><colgroup> </colgroup><thead> Column 1 Column 2 Column 1 Column 2 </thead><tfoot> Footer 1 Footer 2 Footer 1 Footer 2 </tfoot><tbody> Cell 1.1 Cell 1.2 Cell 1.1 Cell 1.2 Cell 2.1 Cell 2.2 Cell 2.1 Cell 2.2 </tbody></table> header footer Last comes the body (data) th columns

66 <table><colgroup> </colgroup><thead> Column 1 Column 2 Column 1 Column 2 </thead><tfoot> Footer 1 Footer 2 Footer 1 Footer 2 </tfoot><tbody> Cell 1.1 Cell 1.2 Cell 1.1 Cell 1.2 Cell 2.1 Cell 2.2 Cell 2.1 Cell 2.2 </tbody></table> 66 table-full.html Although the footer is before the data in the code, it is displayed last By default, header text is bold and centered.

67  Table data “cells” ( ) can contain nested tables (tables within tables): 67 <table> Contact: Contact: First Name First Name Last Name Last Name </table> nested-tables.html

68  cellpadding  Defines the empty space around the cell content  cellspacing  Defines the empty space between cells  Tables have two important attributes: 68 cellcell cellcell cell cell cell cell

69 69 <html> Table Cells Table Cells First First Second Second First Second First Second </html> table-cells.html

70 70 <html> Table Cells Table Cells First First Second Second First Second First Second </html> table-cells.html

71  rowspan  Defines how many rows the cell occupies  colspan  Defines how many columns the cell occupies  Table cells have two important attributes: 71 cell[1,1]cell[1,2] cell[2,1] colspan="1"colspan="1" colspan="2" cell[1,1]cell[1,2] cell[2,1] rowspan="2"rowspan="1" rowspan="1"

72 72 Cell[1,1] Cell[1,1] Cell[2,1] Cell[2,1] Cell[1,2] Cell[1,2] Cell[2,2] Cell[2,2] Cell[3,2] Cell[3,2] Cell[1,3] Cell[1,3] Cell[2,3] Cell[2,3] </table> table-colspan-rowspan.html

73 Cell[1,1] Cell[1,1] Cell[2,1] Cell[2,1] Cell[1,2] Cell[1,2] Cell[2,2] Cell[2,2] Cell[3,2] Cell[3,2] Cell[1,3] Cell[1,3] Cell[2,3] Cell[2,3] </table> 73 table-colspan-rowspan.html Cell[2,3]Cell[1,3] Cell[3,2] Cell[2,2] Cell[1,2] Cell[2,1]Cell[1,1]

74 Entering User Data from a Web Page

75  Forms are the primary method for gathering data from site visitors  Create a form block with  Example: 75 <form></form>......</form> The "action" attribute tells where the form data should be sent The “method" attribute tells how the form data should be sent – via GET or POST request

76  Single-line text input fields:  Multi-line textarea fields:  Hidden fields contain data not shown to the user:  Often used by JavaScript code 76 This is a multi-line text field This is a multi-line text field

77  Fieldsets are used to enclose a group of related form fields:  The is the fieldset's title. 77 Client Details Client Details Order Details Order Details </form>

78  Checkboxes:  Radio buttons:  Radio buttons can be grouped, allowing only one to be selected from a group: 78

79  Dropdown menus:  Submit button: 79 <option value="Value 1" <option value="Value 1" selected="selected">Male selected="selected">Male Female Female Other Other </select>

80  Reset button – brings the form to its initial state  Image button – acts like submit but image is displayed and click coordinates are sent  Ordinary button – used for Javascript, no default action 80

81  Password input – a text field which masks the entered text with * signs  Multiple select field – displays the list of items in multiple lines, instead of one 81 <option value="Value 1" <option value="Value 1" selected="selected">keyboard selected="selected">keyboard mouse mouse speakers speakers </select>

82  File input – a field used for uploading files  When used, it requires the form element to have a specific attribute: 82......</form>

83  Form labels are used to associate an explanatory text to a form field using the field's ID.  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. 83 First Name First Name

84 84 Academic information Academic information Degree Degree Bachelor of Art Bachelor of Art Bachelor of Science Bachelor of Science Master of Master of Business Administration Business Administration Student ID Student ID Personal Details Personal Details First Name First Name Last Name Last Name form.html

85 85 Gender: Gender: Male Male Female Female Email Email <textarea name="terms" cols="30" rows="4" <textarea name="terms" cols="30" rows="4" readonly="readonly">TERMS AND CONDITIONS... readonly="readonly">TERMS AND CONDITIONS... </form> form.html (continued)

86 86

87  The tabindex HTML attribute controls the order in which form fields and hyperlinks are focused when repeatedly pressing the TAB key  tabindex="0" (zero) - "natural" order  If X > Y, then elements with tabindex="X" are iterated before elements with tabindex="Y"  Elements with negative tabindex are skipped, however, this is not defined in the standard 87

88 , and, and

89  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 element is used to provide content for non-compatible agents. 89

90 90 <html> Frames Example Frames Example </html> frames.html  Note the target attribute applied to the elements in the left frame.

91  Inline frames provide a way to show one website inside another website: 91 iframe-demo.html

92

93  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 93

94  Separate content from presentation! 94 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 Vestibulum et odio et ipsum accumsan accumsan. Morbi at accumsan accumsan. Morbi at arcu vel elit ultricies porta. Proin 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. 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. Bold Italics Indent Content (HTML document) Presentation (CSS Document)

95 95 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 Vestibulum et odio et ipsum accumsan accumsan. Morbi at accumsan accumsan. Morbi at arcu vel elit ultricies porta. Proin 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.

96 Styling with Cascading Stylesheets

97  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. 97

98  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 98

99  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 99

100 100

101  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  elements do not inherit color and text- decoration 101

102  Stylesheets consist of rules, selectors, declarations, properties and values  Selectors are separated by commas  Declarations are separated by semicolons  Properties and values are separated by colons 102 h1,h2,h3 { color: green; font-weight: bold; } http://css.maxdesign.com.au/

103  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: 103.header a { color: green } #menu>li { padding-top: 8px }

104  Three primary kinds of selectors:  By tag (type selector):  By element id:  By element class name (only for HTML):  Selectors can be combined with commas: This will match tags, elements with class link, and element with id top-link 104 h1 { font-family: verdana,sans-serif; } #element_id { color: #ff0000; }.myClass {border: 1px solid red} h1,.link, #top-link {font-weight: bold}

105  Pseudo-classes define state  :hover, :visited, :active, :lang  Pseudo-elements define element "parts" or are used to generate content  :first-line, :before, :after 105 a:hover { color: red; } p:first-line { text-transform: uppercase; }.title:before { content: "»"; }.title:after { content: "«"; }

106  Match relative to element placement: This will match all tags that are inside of This will match all tags that are inside of  * – universal selector (avoid or use with care!): This will match all descendants of element  + selector – used to match “next sibling”: This will match all siblings with class name link that appear immediately after tag 106 p a {text-decoration: underline} p * {color: black} img +.link {float:right}

107  > selector – matches direct child nodes: This will match all elements with class error, direct children of tag  [ ] – matches tag attributes by regular expression: This will match all tags with alt attribute containing the word logo .class1.class2 (no space) - matches elements with both (all) classes applied at the same time 107 p >.error {font-size: 8px} img[alt~=logo] {border: none}

108  Colors are set in RGB format (decimal or hex):  Example: #a0a6aa = rgb(160, 166, 170)  Predefined color aliases exist: black, blue, etc.  Numeric values are specified in:  Pixels, ems, e.g. 12px, 1.4em  Points, inches, centimeters, millimeters  E.g. 10pt, 1in, 1cm, 1mm  Percentages, e.g. 50%  Percentage of what?...  Zero can be used with no unit: border: 0; 108

109  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 109 * { margin: 0; padding: 0; } body, h1, p, ul, li { margin: 0; padding: 0; }

110  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 in a tag  External: CSS rules in separate file (best)  Usually a file with.css extension  Linked via tag or @import directive in embedded CSS block 110

111  Using external files is highly recommended  Simplifies the HTML document  Improves page load speed as the CSS file is cached 111

112 112 <head> Inline Styles Inline Styles </head><body> Here is some text Here is some text Here is some Here is some more text more text <p style="font-size: 20pt;color: <p style="font-size: 20pt;color: #0000FF" >Even more text #0000FF" >Even more text </body></html> inline-styles.html

113 113 <head> Inline Styles Inline Styles </head><body> Here is some text Here is some text Here is some Here is some more text more text <p style="font-size: 20pt;color: <p style="font-size: 20pt;color: #0000FF" >Even more text #0000FF" >Even more text </body></html> inline-styles.html

114  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  Important user styles (max priority) 114 a { color: red !important ; } http://www.slideshare.net/maxdesign/css-cascade-1658158

115  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-things- you-should-know/ http://www.smashingmagazine.com/2007/07/27/css-specificity-things- you-should-know/ http://www.smashingmagazine.com/2007/07/27/css-specificity-things- you-should-know/  http://css.maxdesign.com.au/selectutorial/advanced_conflict.htm http://css.maxdesign.com.au/selectutorial/advanced_conflict.htm 115

116  Embedded in the HTML in the tag:  The tag is placed in the 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 116

117 117 <head> Style Sheets Style Sheets em {background-color:#8000FF; color:white} em {background-color:#8000FF; color:white} h1 {font-family:Arial, sans-serif} h1 {font-family:Arial, sans-serif} p {font-size:18pt} p {font-size:18pt}.blue {color:blue}.blue {color:blue} <head> embedded-stylesheets.html

118 118 …<body> A Heading A Heading Here is some text. Here is some text. Here Here is some text. Here is some text. Here is some text. Here is some text. Here is some is some text. Here is some text. Here is some text. text. Another Heading Another Heading Here is some more text. Here is some more text. Here is some more Here is some more text. Here is some more text. text. Here is some more text. </body></html>

119 …<body> A Heading A Heading Here is some text. Here is some text. Here Here is some text. Here is some text. Here is some text. Here is some text. Here is some is some text. Here is some text. Here is some text. text. Another Heading Another Heading Here is some more text. Here is some more text. Here is some more Here is some more text. Here is some more text. text. Here is some more text. </body></html> 119

120  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/) http://www.csszengarden.com/  link tag (with a rel attribute)  Specifies a relationship between current document and another document  link elements should be in the  link elements should be in the 120 <link rel="stylesheet" type="text/css" href="styles.css"> href="styles.css">

121 @import  Another way to link external CSS files  Example:  Ancient browsers do not recognize @import  Use @import in an external CSS file to workaround the IE 32 CSS file limit 121 @import url("styles.css"); /* same as */ @import url("styles.css"); /* same as */ @import "styles.css"; @import "styles.css";</style>

122 122 /* CSS Document */ a { text-decoration: none } a:hover { text-decoration: underline; color: red; color: red; background-color: #CCFFCC } background-color: #CCFFCC } li em { color: red; font-weight: bold } font-weight: bold } ul { margin-left: 2cm } ul ul { text-decoration: underline; margin-left:.5cm } margin-left:.5cm } styles.css

123 123 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <head> Importing style sheets Importing style sheets <link type="text/css" rel="stylesheet" <link type="text/css" rel="stylesheet" href="styles.css" /> href="styles.css" /></head><body> Shopping list for Monday : Shopping list for Monday : Milk Milk … external-styles.html

124 124 … Bread Bread White bread White bread Rye bread Rye bread Whole wheat bread Whole wheat bread Rice Rice Potatoes Potatoes Pizza with mushrooms Pizza with mushrooms </ul> <a href="http://food.com" title="grocery store">Go to the Grocery store store">Go to the Grocery store </body></html>

125 … Bread Bread White bread White bread Rye bread Rye bread Whole wheat bread Whole wheat bread Rice Rice Potatoes Potatoes Pizza with mushrooms Pizza with mushrooms </ul> <a href="http://food.com" title="grocery store">Go to the Grocery store store">Go to the Grocery store </body></html> 125

126  color – specifies the color of the text  font-size – size of font: xx-small, x-small, 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  font-weight can be normal, bold, bolder, lighter or a number in range [ 100 … 900 ] 126

127  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 127

128  font  Shorthand rule for setting multiple font properties at the same time is equal to writing this: 128 font:italic normal bold 12px/16px verdana font-style: italic; font-variant: normal; font-weight: bold; font-size: 12px; line-height: 16px; font-family: verdana;

129  background-image  URL of image to be used as background, e.g.:  background-color  Using color and image and the same time  background-repeat  repeat-x, repeat-y, repeat, no-repeat  background-attachment  fixed / scroll 129 background-image:url("back.gif");

130  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: 130 background-position: top left; background-position: -5px 50%;

131  background : shorthand rule for setting background properties at the same time: is equal to writing:  Some browsers will not apply BOTH color and image for background if using shorthand rule 131 background: #FFF0C0 url("back.gif") no-repeat fixed top; background-color: #FFF0C0; background-image: url("back.gif"); background-repeat: no-repeat; background-attachment: fixed; background-position: top;

132  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 132

133  border-width : thin, medium, thick or numerical value (e.g. 10px )  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, … 133

134  border : shorthand rule for setting border properties at once: is equal to writing:  Specify different borders for the sides via shorthand rules: border-top, border-left, border-right, border-bottom  When to avoid border:0 134 border: 1px solid red border-width:1px;border-color:red;border-style:solid;

135  width – defines numerical value for the width of element, e.g. 200px  height – defines numerical value for the height of element, e.g. 100px  By default the height of an element is defined by its content  Inline elements do not apply height, unless you change their display style. 135

136  margin and padding define the spacing around the element  Numerical value, e.g. 10px or -5px  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? 136

137  margin: 5px ;  Sets all four sides to have margin of 5 px;  margin: 10px 20px;  top and bottom to 10px, left and right to 20px ;  margin: 5px 3px 8px;  top 5px, left/right 3px, bottom 8px  margin: 1px 3px 5px 7px;  top, right, bottom, left (clockwise from top)  Same for padding 137

138 138

139  When using quirks mode (pages with no DOCTYPE or with a HTML 4 Transitional DOCTYPE), Internet Explorer violates the box model standard 139

140  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 140

141  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 141

142  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 142 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 #A1 and #A2 (children of #A) to be placed over #B without increasing the z-index of #A.

143  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) 143

144  float : the element “floats” to one side  left : places the element on the left and following content on the right  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 144

145  How floated elements are positioned 145

146  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 ( ) with a clear style 146

147  Clearing floats (continued)  :after { content: ""; display: block; clear: both; height: 0; }  Triggering hasLayout in IE expands a container of floated elements  display: inline-block;  zoom: 1; 147

148  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 hasLayout must be triggered, e.g. with zoom:1 148

149  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 149

150  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 ( is an inline element)  block : breaks are placed before AND after the element ( is a block element) 150

151  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 table-row 151

152  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 152

153  cursor : specifies the look of the mouse cursor when placed over the element  Values: crosshair, help, pointer, progress, move, hair, col-resize, row- resize, 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 153

154  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 154

155 155 Title Some random text here. You can’t read it anyway! Har har har! Use Css. Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title Title CSS file

156  Visual Studio – CSS Editor 156

157  Firebug – add-on to Firefox used to examine and adjust CSS and HTML 157

158  IE Developer Toolbar – add-on to IE used to examine CSS and HTML (press [F12]) 158

159

160  What is DHTML?  DHTML Technologies  XHTML, CSS, JavaScript, DOM 160

161  Introduction to JavaScript  What is JavaScript  Implementing JavaScript into Web pages  In part  In external.js file 161

162  JavaScript Syntax  JavaScript operators  JavaScript Data Types  JavaScript Pop-up boxes  alert, confirm and prompt  Conditional and switch statements, loops and functions  Document Object Model  Debugging in JavaScript 162

163 Dynamic Behavior at the Client Side

164  Dynamic HTML (DHTML)  Makes possible a Web page to react and change in response to the user’s actions  DHTML = HTML + CSS + JavaScript 164DHTML XHTMLCSSJavaScriptDOM

165   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)   JavaScript defines dynamic behavior   Programming logic for interaction with the user, to handle events, etc. 165

166 Dynamic Behavior in a Web Page

167  JavaScript 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 167

168  JavaScript 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 168

169  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) 169

170 first-script.html 170 <html><body> alert('Hello JavaScript!'); alert('Hello JavaScript!'); </body></html>

171 small-example.html 171 <html><body> document.write('JavaScript rulez!'); document.write('JavaScript rulez!'); </body></html>

172  The JavaScript code can be placed in:  tag in the head  tag in the body – not recommended  External files, linked via tag the head  Files usually have.js extension  Highly recommended  The.js files get cached by the browser 172 </script>

173  JavaScript 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 173

174 <html><head> function test (message) { function test (message) { alert(message); alert(message); }</script></head><body> <img src="logo.gif" <img src="logo.gif" onclick="test('clicked!')" /> onclick="test('clicked!')" /></body></html> image-onclick.html 174

175  Using external script files:  External JavaScript file: 175 <html><head> </head><body> <button onclick="sample()" value="Call JavaScript <button onclick="sample()" value="Call JavaScript function from sample.js" /> function from sample.js" /></body></html> function sample() { alert('Hello from sample.js!') alert('Hello from sample.js!')} external-JavaScript.html sample.js The tag is always empty.

176

177  The JavaScript 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) 177

178  JavaScript data types:  Numbers (integer, floating-point)  Boolean (true / false)  String type – string of characters  Arrays  Associative arrays (hash tables) 178 var myName = "You can use both single or double quotes for strings"; var my_array = [1, 5.3, "aaa"]; var my_hash = {a:2, b:3, c:"text"};

179  Every variable can be considered as object  For example strings and arrays have member functions: 179 var test = "some string"; alert(test[7]); // shows letter 'r' alert(test.charAt(5)); // shows letter 's' alert("test".charAt(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 objects.html

180  The + operator joins strings  What is "9" + 9?  Converting string to number: 180 string1 = "fat "; string2 = "cats"; alert(string1 + string2); // fat cats alert("9" + 9); // 99 alert(parseInt("9") + 9); // 18

181  Declaring new empty array:  Declaring an array holding few elements:  Appending an element / getting the last element:  Reading the number of elements (array length):  Finding element's index in the array: 181 var arr = new Array(); var arr = [1, 2, 3, 4, 5]; arr.push(3); var element = arr.pop(); arr.length; arr.indexOf(1);

182  Alert box with text and [OK] button  Just a message shown in a dialog box:  Confirmation box  Contains text, [OK] button and [Cancel] button:  Prompt box  Contains text, input field with default value: 182 alert("Some text here"); confirm("Are you sure?"); prompt ("enter amount", 10);

183 sum-of-numbers.html 183 <html><head> JavaScript Demo JavaScript Demo function calcSum() { function calcSum() { value1 = value1 = parseInt(document.mainForm.textBox1.value); parseInt(document.mainForm.textBox1.value); value2 = value2 = parseInt(document.mainForm.textBox2.value); parseInt(document.mainForm.textBox2.value); sum = value1 + value2; sum = value1 + value2; document.mainForm.textBoxSum.value = sum; document.mainForm.textBoxSum.value = sum; } </head>

184 sum-of-numbers.html (cont.) 184 <body> <input type="button" value="Process" <input type="button" value="Process" onclick="javascript: calcSum()" /> onclick="javascript: calcSum()" /> <input type="text" name="textBoxSum" <input type="text" name="textBoxSum" readonly="readonly"/> readonly="readonly"/> </body></html>

185 prompt.html 185 price = prompt("Enter the price", "10.00"); alert('Price + VAT = ' + price * 1.2);

186 Greater than <= SymbolMeaning > < Less than >= Greater than or equal to Less than or equal to ==Equal != Not equal 186 unitPrice = 1.30; if (quantity > 100) { unitPrice = 1.20; unitPrice = 1.20;}

187  The condition may be of Boolean or integer type: 187 var a = 0; var b = true; if (typeof(a)=="undefined" || typeof(b)=="undefined") { document.write("Variable a or b is undefined."); document.write("Variable a or b is undefined.");} else if (!a && b) { document.write("a==0; b==true;"); document.write("a==0; b==true;"); } else { document.write("a==" + a + "; b==" + b + ";"); document.write("a==" + a + "; b==" + b + ";");} conditional-statements.html

188  The switch statement works like in C#: 188 switch (variable) { case 1: case 1: // do something // do something break; break; case 'a': case 'a': // do something else // do something else break; break; case 3.14: case 3.14: // another code // another code break; break; default: default: // something completely different // something completely different} switch-statements.html

189  Like in C#  for loop  while loop  do … while loop 189 var counter; for (counter=0; counter<4; counter++) { alert(counter); alert(counter);} while (counter < 5) { alert(++counter); alert(++counter);} loops.html

190  Code structure – splitting code into parts  Data comes in, processed, result returned 190 function average(a, b, c) { var total; var total; total = a+b+c; total = a+b+c; return total/3; return total/3;} Parameters come in here. Declaring variables is optional. Type is never declared. Value returned here.

191  Functions are not required to return a value  When calling function it is not obligatory to specify all of its arguments  The function has access to all the arguments passed via arguments array 191 function sum() { var sum = 0; var sum = 0; for (var i = 0; i < arguments.length; i ++) for (var i = 0; i < arguments.length; i ++) sum += parseInt(arguments[i]); sum += parseInt(arguments[i]); return sum; return sum;} alert(sum(1, 2, 4)); functions-demo.html

192

193  Every HTML element is accessible via the JavaScript DOM API  Most DOM objects can be manipulated by the programmer  The event model lets a document to react when the user does something on the page  Advantages  Create interactive pages  Updates the objects of a page without reloading it 193

194  Access elements via their ID attribute  Via the name attribute  Via tag name  Returns array of descendant elements of the element " el " 194 var elem = document.getElementById("some_id") var arr = document.getElementsByName("some_name") var imgTags = el.getElementsByTagName("img")

195  Once we access an element, we can read and write its attributes 195 function change(state) { var lampImg = document.getElementById("lamp"); var lampImg = document.getElementById("lamp"); lampImg.src = "lamp_" + state + ".png"; lampImg.src = "lamp_" + state + ".png"; var statusDiv = var statusDiv = document.getElementById("statusDiv"); document.getElementById("statusDiv"); statusDiv.innerHTML = "The lamp is " + state"; statusDiv.innerHTML = "The lamp is " + state";}… <img src="test_on.gif" onmouseover="change('off')" onmouseout="change('on')" /> onmouseout="change('on')" /> DOM-manipulation.html

196  Most of the properties are derived from the HTML attributes of the tag  E.g. id, name, href, alt, title, src, etc…  style property – allows modifying the CSS styles of the element  Corresponds to the inline style of the element  Not the properties derived from embedded or external CSS rules  Example: style.width, style.marginTop, style.backgroundImage 196

197  className – the class attribute of the tag  innerHTML – holds all the entire HTML code inside the element  Read-only properties with information for the current element and its state  tagName, offsetWidth, offsetHeight, scrollHeight, scrollTop, nodeType, etc… 197

198  We can access elements in the DOM through some tree manipulation properties:  element.childNodes  element.parentNode  element.nextSibling  element.previousSibling  element.firstChild  element.lastChild 198

199  Warning: may not return what you expected due to Browser differences 199 var el = document.getElementById('div_tag'); alert (el.childNodes[0].value); alert (el.childNodes[1]. getElementsByTagName('span').id); getElementsByTagName('span').id);… test span test span </div> accessing-elements-demo.html

200

201  JavaScript can register event handlers  Events are fired by the Browser and are sent to the specified JavaScript event handler function  Can be set with HTML attributes:  Can be accessed through the DOM: 201 var img = document.getElementById("myImage"); img.onclick = imageClicked;

202  All event handlers receive one parameter  It brings information about the event  Contains the type of the event (mouse click, key press, etc.)  Data about the location where the event has been fired (e.g. mouse coordinates)  Holds a reference to the event sender  E.g. the button that was clicked 202

203  Holds information about the state of [Alt], [Ctrl] and [Shift] keys  Some browsers do not send this object, but place it in the document.event  Some of the names of the event’s object properties are browser-specific 203

204  Mouse events:  onclick, onmousedown, onmouseup  onmouseover, onmouseout, onmousemove  Key events:  onkeypress, onkeydown, onkeyup  Only for input fields  Interface events:  onblur, onfocus  onscroll 204

205  Form events  onchange – for input fields  onsubmit  Allows you to cancel a form submission  Useful for form validation  Miscellaneous events  onload, onunload  Allowed only for the element  Fires when all content on the page was loaded / unloaded 205

206  onload event 206 <html><head> function greet() { function greet() { alert("Loaded."); alert("Loaded."); } </head> </body></html> onload.html

207

208  The browser provides some read-only data via:  window  The top node of the DOM tree  Represents the browser's window  document  holds information the current loaded document  screen  Holds the user’s display properties  browser  Holds information about the browser 208

209 209 window navigatorscreendocumenthistorylocation form buttonform form

210  window.open() 210 var newWindow = window.open("", "sampleWindow", "width=300, height=100, menubar=yes, "width=300, height=100, menubar=yes, status=yes, resizable=yes"); status=yes, resizable=yes");newWindow.document.write( " " Sample Title Sample Title Sample Sample Text "); Text "); newWindow.status = "Hello folks"; "Hello folks"; window-open.html

211 211 alert(window.navigator.userAgent); The navigator in the browser window The userAgent (browser ID) The browser window

212  The screen object contains information about the display 212 window.moveTo(0, 0); x = screen.availWidth; y = screen.availHeight; window.resizeTo(x, y);

213  document object  Provides some built-in arrays of specific objects on the currently loaded Web page  document.location  Used to access the currently open URL or redirect the browser 213 document.links[0].href = "yahoo.com"; document.write( "This is some bold text "); "This is some bold text "); document.location = "http://www.yahoo.com/";

214 214 function checkForm() { var valid = true; var valid = true; if (document.mainForm.firstName.value == "") { if (document.mainForm.firstName.value == "") { alert("Please type in your first name!"); alert("Please type in your first name!"); document.getElementById("firstNameError"). document.getElementById("firstNameError"). style.display = "inline"; style.display = "inline"; valid = false; valid = false; } return valid; return valid;}… … form-validation.html

215  The Math object provides some mathematical functions 215 for (i=1; i<=20; i++) { var x = Math.random(); var x = Math.random(); x = 10*x + 1; x = 10*x + 1; x = Math.floor(x); x = Math.floor(x); document.write( document.write( "Random number (" + "Random number (" + i + ") in range " + i + ") in range " + "1..10 --> " + x + "1..10 --> " + x + " "); " ");} math.html

216  The Date object provides date / calendar functions 216 var now = new Date(); var result = "It is now " + now; document.getElementById("timeField").innerText = result;.innerText = result;... dates.html

217  Make something happen (once) after a fixed delay 217 var timer = setTimeout('bang()', 5000); clearTimeout(timer); 5 seconds after this statement executes, this function is called Cancels the timer

218  Make something happen repeatedly at fixed intervals 218 var timer = setInterval('clock()', 1000); clearInterval(timer); This function is called continuously per 1 second. Stop the timer.

219 219 function timerFunc() { function timerFunc() { var now = new Date(); var now = new Date(); var hour = now.getHours(); var hour = now.getHours(); var min = now.getMinutes(); var min = now.getMinutes(); var sec = now.getSeconds(); var sec = now.getSeconds(); document.getElementById("clock").value = document.getElementById("clock").value = "" + hour + ":" + min + ":" + sec; "" + hour + ":" + min + ":" + sec; } setInterval('timerFunc()', 1000); setInterval('timerFunc()', 1000);</script> timer-demo.html

220

221  Modern browsers have JavaScript console where errors in scripts are reported  Errors may differ across browsers  Several tools to debug JavaScript  Microsoft Script Editor  Add-on for Internet Explorer  Supports breakpoints, watches  JavaScript statement debugger ; opens the script editor 221

222  Firebug – Firefox add-on for debugging JavaScript, CSS, HTML  Supports breakpoints, watches, JavaScript console editor  Very useful for CSS and HTML too  You can edit all the document real-time: CSS, HTML, etc  Shows how CSS rules apply to element  Shows Ajax requests and responses  Firebug is written mostly in JavaScript 222

223 223

224  The console object exists only if there is a debugging tool that supports it  Used to write log messages at runtime  Methods of the console object:  debug(message)  info(message)  log(message)  warn(message)  error(message) 224

225 Questions?


Download ppt "HTML, Text, Images, Tables Nikolay Kostov Telerik Corporation www.telerik.com."

Similar presentations


Ads by Google