<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" >

<html>

<head>

<!-- testcase: tables_width_percent.html

  description: HTML Text Markup Element, TABLE WIDTH PERCENT--> 

<!-- Author: Chris Petersen Date: 8/6/98 -->


<!-- ***** 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) 1998
   - 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 TABLE tag.-->

<!-- Expected result: A table should be displayed in the window with width set by pixel value-->

<title>Web Browser Web View (HTML): TABLE WIDTH PERCENT</title>

</head>

<body>

This test case shows how WIDTH can set the width of the table to a fixed size using PERCENT. PERCENT

is based on the percentage of the space between the current left and right margins. 

This first table has a width of 80 percent

<table width="80%">

<tr>

<td>Navigator</td>

<td>Messenger</td>

<td>Collabra</td>

</tr>

<tr>

<td>Composer</td>

<td>Calendar</td>

<td>Netcaster</td>

</tr>

</table>

<br>

While, this second table has a width of 50 percent

<table width="50%">

<tr>

<td>Navigator</td>

<td>Messenger</td>

<td>Collabra</td>

</tr>

<tr>

<td>Composer</td>

<td>Calendar</td>

<td>Netcaster</td>

</tr>

</table>

</body>

</html>











