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

<html>

<head>

<!-- test case: tables_cellpadding.html

  description: HTML Text Markup Element, TABLE CELLPADDING --> 

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

<title>Web Browser Web View (HTML): Document TABLE CELLPADDING</title>

</head>

<body>

CELLPADDING controls the padding in pixels between the border of each cells and the cell's 

contents.The first table has a cellpadding of 8 pixels. The second table is not using cell

padding. Notice the difference. There should be a larger gap between the cell border and it's 

contents in the first table.

<br>

<br>

<table cellpadding=8 border=2>

<tr>

<td>Navigator</td>

<td>Messenger</td>

<td>Collabra</td>

</tr>

<tr>

<td>Composer</td>

<td>Calendar</td>

<td>Netcaster</td>

</tr>

</table>

<br><br>

This table contains no cellpadding.

<table border=2>

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











