<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<!-- test case: colgroup_align_left.html -->

<!-- description: HTML 4.0 COLGROUP element with ALIGN attribute. Value=left --> 

<!-- Author: Christine Dreckman Date: 2/19/99 -->


<!-- ***** BEGIN LICENSE BLOCK *****
   - Version: MPL 1.1/GPL 2.0/LGPL 2.1
   -
   - The contents of this file are subject to the Mozilla Public License Version
   - 1.1 (the "License"); you may not use this file except in compliance with
   - the License. You may obtain a copy of the License at
   - http://www.mozilla.org/MPL/
   -
   - Software distributed under the License is distributed on an "AS IS" basis,
   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
   - for the specific language governing rights and limitations under the
   - License.
   -
   - The Original Code is table layout tests.
   -
   - The Initial Developer of the Original Code is
   - Netscape Communications Corp.
   - Portions created by the Initial Developer are Copyright (C) 1999
   - the Initial Developer. All Rights Reserved.
   -
   - Contributor(s):
   -
   - Alternatively, the contents of this file may be used under the terms of
   - either the GNU General Public License Version 2 or later (the "GPL"), or
   - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
   - in which case the provisions of the GPL or the LGPL are applicable instead
   - of those above. If you wish to allow use of your version of this file only
   - under the terms of either the GPL or the LGPL, and not to allow others to
   - use your version of this file under the terms of the MPL, indicate your
   - decision by deleting the provisions above and replace them with the notice
   - and other provisions required by the LGPL or the GPL. If you do not delete
   - the provisions above, a recipient may use your version of this file under
   - the terms of any one of the MPL, the GPL or the LGPL.
   -
   - ***** END LICENSE BLOCK ***** -->

<!-- Purpose: To test the ALIGN/left attribute/value of the COLGROUP element tag -->

<!-- Expected result: A table with two distinct column groups should be displayed. The first column group has two columns and the second column group has three columns. Text in the cells should be left-aligned -->

<title>colgroup_align_left.html</title>

</head>

<body>

<p>Colgroups are used to identify column groups. The table below has two distinct column groups; 'Airport Location' and 'Car Rental Information'. The first column group contains two columns and the second column group contains three columns.</p>



<p>Text in the cells should be left-aligned.</p>

<table BORDER >

<colgroup width=100 align="left">

<colgroup width=300 align="left">

<tr>

<th COLSPAN="2">Airport Location</th>

<th COLSPAN="3">Car Rental information</th>

</tr>



<tr>

<th>Country</th>

<th>City</th>

<th>ABC Company</th>

<th>EFG Company</th>

<th>XYZ Company</th>

</tr>



<tr>

<td>France</td>

<td>Paris</td>

<td>yes</td>

<td>yes</td>

<td>yes</td>

</tr>



<tr>

<td>Germany</td>

<td>Frankfurt</td>

<td>yes</td>

<td>yes</td>

<td>yes</td>

</tr>



<tr>

<td>England</td>

<td>London</td>

<td>yes</td>

<td>yes</td>

<td>yes</td>

</tr>



<tr>

<td>Netherlands</td>

<td>Amsterdam</td>

<td>yes</td>

<td>yes</td>

<td>yes</td>

</tr>



<tr>

<td>USA</td>

<td>New York</td>

<td>yes</td>

<td>yes</td>

<td>yes</td>

</tr>



</table>

</body>

</html>

