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

<html>

<head>

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

<!-- description: HTML 4.0 COLGROUP element with WIDTH attribute. Value=percentage. --> 

<!-- 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 WIDTH attribute of the COLGROUP element tag (pixel value) -->

<!-- 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 -->

<title>colgroup_width_pct.html</title>

</head>

<body>

<p>Colgroups are used to identify column groups. This table has two distinct column groups titled 'Airport Location' and 'Car Rental Information'. The first has a width of 20%; the second has a width of 40% pixels.</p>

<table BORDER >

<colgroup width="20%">

<colgroup width="40%">

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

