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

<html>

<head>

<!-- testcase: tbody_align_center.html --> 

<!-- description: HTML 4.0 TBODY element/ALIGN-CENTER attribute --> 

<!-- Author: Christine Dreckman  Date: 1/13/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-CENTER attribute of the TBODY element. -->

<!-- Expected result: The text in the TBODY section should be center aligned -->

<title>tbody_align_center</title>

</head>



<body>

<p>The TBODY element labels the body area of a table. In this test, the TBODY text should be center aligned.</p>



<table border>

<thead>

<tr>

<td>This text is in the THEADThis text is in the THEAD</td>

<td>This text is in the THEADThis text is in the THEAD</td>

</tr>

</thead>

<tfoot>

<tr>

<td>This text is in the TFOOTThis text is in the TFOOT</td>

<td>This text is in the TFOOTThis text is in the TFOOT</td>

</tr>

</tfoot>

<tbody align="center">

<tr>

<td>This text is in the TBODY</td>

<td>This text is in the TBODY</td>

</tr>

<tbody>

</table>

</body>

</html>
