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

<html>

<head>

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

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

<!-- 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/right 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 right-aligned -->

<title>colgroup_align_right.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 right-aligned.</p>

<table BORDER >

<colgroup width=100 align="right">

<colgroup width=300 align="right">

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

