User Tools

Site Tools


eg-259:xhtml

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eg-259:xhtml [2012/01/20 14:56] – [Exercises to Demonstrate Tables] eechriseg-259:xhtml [2012/02/01 20:18] (current) – [Reasons to use XHTML, rather than HTML] eechris
Line 18: Line 18:
 ===== Origins and Evolution of HTML ===== ===== Origins and Evolution of HTML =====
  
-  * HTML was defined with SGML +  * There is a comprehensive History of the evolution of HTML in this Wikipedia article[[wp>HTML#History|HTML -- History]]
-  * Original intent of HTML: General layout of documents that could be displayed by a wide variety of computers +  Mark Pilgrim gives a very readable account of the road to HTML5 in [[http://diveintohtml5.info/past.html|Dive Into HTML5 -- How Did We Get Here?]]
-  * Recent versions: +
-    * HTML 4.0 -- 1997 +
-    * HTML 4.01 -- 1999  +
-    * XHTML 1.0 -- 2000 +
-    * XHTML 1.1 -- 2001 +
-    * [[eg-259:html5|XHTML 2.0 and HTML 5]] -- under development (in 2008) +
-    * Development of XHTML 2 ceased in 2010. HTML5 became mainstream in 2011.+
  
----- +===== Reasons to use the XHTML syntax rather than HTML =====
- +
-//**More about the versions**// +
- +
-  * HTML 4.0 -- 1997 +
-         * Introduced many new features and deprecated +
-         many older features +
-    * HTML 4.01 -- 1999  +
-         * A cleanup of 4.0 +
-    * XHTML 1.0 -- 2000 +
-         * Just 4.01 defined using XML, instead of SGML +
-    * XHTML 1.1 -- 2001 +
-         * Modularized 1.0, and drops frames +
-         * We'll stick to 1.1 and avoid frames +
-    * XHTML 2 and HTML 5 -- under development as of 2008, some browser support planned for Firefox 3.1  +
- +
- +
-===== Reasons to use XHTMLrather than HTML =====+
   * HTML has lax syntax rules, leading to sloppy and sometimes ambiguous documents   * HTML has lax syntax rules, leading to sloppy and sometimes ambiguous documents
   * HTML processors do not even enforce the few syntax rule that do exist in HTML   * HTML processors do not even enforce the few syntax rule that do exist in HTML
Line 1019: Line 995:
  
   * Frames are rectangular sections of the display window, each of which can display a different document   * Frames are rectangular sections of the display window, each of which can display a different document
-  * Because frames are no longer part of XHTML, you cannot validate a document that includes frames+  * Because frames are no longer part of HTML5, you cannot validate a document that includes frames
   * For this reason we shall say no more about them in this module!   * For this reason we shall say no more about them in this module!
-  * There is more information, and some examples, in the handout. 
-  * This will **not** be examined. 
- 
----- 
- 
-//**More on Frames (not examined)**// 
- 
-   * The ''<frameset>'' tag specifies the number of frames and their layout in the window 
-   * ''<frameset>'' takes the place of ''<body>''. Cannot have both! 
-   * ''<frameset>'' must have either a ''rows'' attribute or a ''cols'' attribute, or both (usually the case) 
-     * Default is ''1'' 
-   * The possible values for ''rows'' and ''cols'' are numbers, percentages, and asterisks (''*'') 
-     * A number value specifies the row height in pixels - Not terribly useful! 
-     * A percentage specifies the percentage of total window height for the row - Very useful! 
-   * An asterisk after some other specification gives the remainder of the height of the window 
-   * Examples: 
-<code html> 
-          <frameset rows = "150, 200, 300"> 
- 
-          <frameset rows = "25%, 50%, 25%"> 
- 
-          <frameset rows = "50%, 20%, *" > 
- 
-          <frameset rows = "50%, 25%, 25%" 
-                    cols = "40%, *"> 
-</code> 
-   * The ''<frame>'' tag specifies the content of a frame 
-   * The first ''<frame>'' tag in a ''<frameset>'' specifies the content of the first frame, etc. 
-   * Row-major order is used 
-   * Frame content is specified with the ''src'' attribute 
-   * Without a ''src'' attribute, the frame will be empty (such a frame **CANNOT** be filled later) 
-   * If ''<frameset>'' has fewer ''<frame>'' tags than frames, the extra frames are empty 
-   * Scrollbars are implicitly included if needed (they are needed if the specified document will not fit) 
-   * If a ''name'' attribute is included, the content of the frame can be changed later (by selection of a link in some other frame) 
-   * **Note** The Frameset standard must be specified in the ''DOCTYPE'' declaration 
-  * See the frame: [[/eg-259/examples/lecture2/frames.html|frames.html]]. 
-<code html> 
-<?xml version = "1.0" encoding = "utf-8"?> 
-<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Frameset//EN" 
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
- 
-<!-- frames.html 
-     An example to illustrate frames 
-     --> 
-<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang="en"> 
-  <head> <title> Frames </title> 
-  </head> 
-  <frameset cols = "20%, *"> 
-    <frame src = "contents.html" /> 
-    <frame src = "fruits.html"  name = "descriptions" /> 
-  </frameset> 
-</html> 
-</code> 
-   * The ''target'' attribute in ''<a>'' ensures that new content is displayed in the correct frame. 
-   * Here the  contents of the first frame of ''frames.html'', is the table of contents for the second frame: [[/eg-259/examples/lecture2/contents.html|contents.html]] 
-<code html> 
-<?xml version = "1.0" encoding = "utf-8"?> 
-<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Transitional//EN" 
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
- 
-<!-- contents.html 
-     The contents of the first frame of frames.html,  
-     which is the table of contents for the second frame 
-     --> 
-<html xmnls="http://www.w3.org/1999/xhtml" xml:lang="en"> 
-<head> <title> Table of Contents Frame </title> 
-</head> 
-<body> 
-<h4> Fruits </h4> 
-<ul> 
-    <li> <a href = "apples.html"  target = "descriptions">  
-            apples </a>  
-    </li> 
-    <li> <a href = "bananas.html"  target = "descriptions"> 
-            bananas </a> 
-    </li> 
-    <li> <a href = "oranges.html"  target = "descriptions"> 
-            oranges </a> 
-    </li> 
-</ul> 
-</body> 
-</html> 
-</code> 
-  * and [[/eg-259/examples/lecture2/fruits.html|fruits.html]] is the initial page to be displayed in the second frame. 
-<code html> 
-<?xml version = "1.0" encoding = "utf-8"?> 
-<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.1//EN" 
-  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
- 
-<!-- fruits.html 
-     The initial contents of the second frame 
-     of frames.html - a general description of fruit 
-     --> 
-<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang="en"> 
-  <head> <title> General Information on Fruits </title> 
-  </head> 
-  <body> 
-    <p> 
-      A fruit is the mature ovary in a flowering plant. 
-      Fruit is clasified by several characteristics, the 
-      most important being the number of ovaries included. 
-      If only a single ovary is included, it is called a 
-      simple fruit. 
-    </p>  
-  </body> 
-</html> 
-</code> 
-  * For the frames example to work, you will need to download [[/eg-259/examples/lecture2/contents.html|contents.html]] and [[/eg-259/examples/lecture2/fruits.html|fruits.html]]. The additional files //apple.html//, //orange.html// and //banana.html// do not exist (but you are invited to create them). 
- 
-**//Nested Frames//** 
- 
-   * It is possible to use nested frames to divide the screen in more interesting ways. 
-   * Here is an example of nested frames ([[/eg-259/examples/lecture2/nested_frames.html|nested_frames.html]]) 
-<code html> 
-<?xml version = "1.0" encoding = "utf-8"?> 
-<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Frameset//EN" 
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
- 
-<!-- nested_frames.html 
-     An example to illustrate nested frames 
-     --> 
-<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang="en"> 
-  <head> <title> Nested frames </title> 
-  </head> 
-  <frameset cols = "40%, *"> 
-    <frameset rows = "50%, *"> 
-      <frame src = "frame1.html" /> 
-      <frame src = "frame2.html" /> 
-    </frameset> 
-    <frameset rows = "20%, 35%, *"> 
-      <frame src = "frame3.html" /> 
-      <frame src = "frame4.html" /> 
-      <frame src = "frame5.html" /> 
-    </frameset> 
-  </frameset> 
-</html> 
-</code> 
-   * To make this example work you will also need [[/eg-259/examples/lecture2/frame1.html|frame1.html]], [[/eg-259/examples/lecture2/frame2.html|frame2.html]], [[/eg-259/examples/lecture2/frame3.html|frame3.html]], [[/eg-259/examples/lecture2/frame4.html|frame4.html]], [[/eg-259/examples/lecture2/frame5.html|frame5.html]].  
-   * Note that in practice, the successful adoption of such a complex frameset is difficult which is one reason for the removal of ''<frameset>'' from XHTML. 
- 
-**//Exercise to Better Understand Frames//** 
- 
-  - Create, test and validate an XHTML document that includes two rows of frames with two frames in each row. The two left-hand frames must occupy 25 percent of the width of the display. The bottom two frames must occupy 40 percent of the height of the display.  
-    * The top-left frame must display the name of your mother and all of her siblings. (There must be a minimum of two siblings, make them up if you must.) 
-    * the bottom-left frame must display the name of your father and all of his siblings. (Once again, there must be a minimum of two siblings.) 
-    * Each name in the left frames must be link to a document that is displayed in the right-hand frame when the link is selected. 
-    * The documents in the right-hand frames are short descriptions of the people. 
  
  
Line 1183: Line 1012:
   * [[eg-259:xhtml|The Structural Layer]]   * [[eg-259:xhtml|The Structural Layer]]
   * [[eg-259:css|The Presentation Layer]]   * [[eg-259:css|The Presentation Layer]]
-  * [[eg-259:html5|XHTML 2 and HTML 5]]+  * [[eg-259:html5|XHTML 2 and HTML5]]
   * [[eg-259:css3|CSS 3]]   * [[eg-259:css3|CSS 3]]
eg-259/xhtml.1327071386.txt.gz · Last modified: 2012/01/20 14:56 by eechris