JavaScript中的表对齐

Table align in JavaScript

本文关键字:对齐 JavaScript      更新时间:2023-09-26

这是一个由两部分组成的问题,我在多个标签下搜索了一个答案,但无济于事。

我有一个包含4列和4块的表,我试图让它们在页面加载上自动对齐,以便四列占据页面底部的整个宽度。我希望无论用户是在22"宽屏还是15"屏上,它看起来都是一样的:

  1. 这是最好的完成JavaScript或有更有效的怎么做呢?
  2. 你将如何做到这一点?
编辑:对不起,我应该更具体,这是我的代码:
    <table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:#c1bdb6;">
                <tbody>
                    <tr>
                        <td align="right" valign="top" id="col-1">
                            <div id="nugget1" align="right" style="height: 459px;">
                                <div id="nugget1-content" align="left">
                                    <h2 class="menutitle"> FAQ's </h2>
                                </div> 
                            </div>
                        </td>
                        <td valign="top" id="col-2">
                            <div id="nugget2" align="center" style="height: 459px;">
                                <h2 class="menutitle"> Contacts </h2>
                            </div>
                      </td>                                    
                      <td valign="top" id="col-3">
                            <div id="nugget3" align="center" style="height: 459px;">
                                 <h2 class="menutitle"> Calendar </h2>
                                    <ul class="vertmenu">  
                                        <li>
                                            <a href="http://www.youtube.com/watch?v=5F5v1EYaSTA"> Shared Calendars </a>
                                        </li>
                            </div>
                        </td>
                        <td valign="top" id="col-4">
                             <div id="nugget4" align="center" style="height: 459px;">
                                 <h2 class="menutitle"> Mail </h2>
                             </div>
                      </td>
                  </tr>
                </tbody>
             </table>

除非你使用这些过时的HTML有特殊的原因(表格用于布局,在HTML中使用valignalign等东西),否则实现你想要的最有效的方法(关于页面加载)是通过重组你的HTML,使其更符合以下原则:

<div id="nuggets">
  <div id="nugget1">
    <h2 class="menutitle"> FAQ's </h2>
  </div> 
  <div id="nugget2" class="col">
     <h2 class="menutitle"> Contacts </h2>
  </div>
  <div id="nugget3">
     <h2 class="menutitle"> Calendar </h2>
     <ul class="vertmenu">  
       <li>
         <a href="http://www.youtube.com/watch?v=5F5v1EYaSTA"> Shared Calendars </a>
       </li>
  </div>
  <div id="nugget4">
    <h2 class="menutitle"> Mail </h2>
  </div>
</div>

然后你可以设置如下的CSS:

#nuggets {
  height: 459px;
}
#nuggets > div {
  width: 25%;
  height: 459px;
  float: left;
  text-align: center;
}

假设nuget是一个表格单元格,这可能是您要寻找的:

  1. 这听起来像是CSS的工作。
  2. 有关CSS:

    表{宽度:100%;}

您可以尝试设置表格宽度以对应于屏幕分辨率,也许使用这个?

<table width="100%" height="100%">
<tr>
<td align="center" valign="middle">
Body html here
</td>
</tr>
</table>

如果您正在为您的表使用实际的HTML <table>标记,那么最简单的方法是使用<colgroup>标记。

在你的例子中,代码应该是:

<table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:#c1bdb6;">
    <colgroup width="25%" />
    <tbody>
        <tr>
            <td align="right" valign="top" id="col-1">
                <div id="nugget1" align="right" style="height: 459px;">
                    <div id="nugget1-content" align="left">
                        <h2 class="menutitle"> FAQ's </h2>
                    </div> 
                </div>
            </td>
            <td valign="top" id="col-2">
                <div id="nugget2" align="center" style="height: 459px;">
                    <h2 class="menutitle"> Contacts </h2>
                </div>
            </td>                                    
            <td valign="top" id="col-3">
                <div id="nugget3" align="center" style="height: 459px;">
                    <h2 class="menutitle"> Calendar </h2>
                    <ul class="vertmenu">  
                        <li>
                            <a href="http://www.youtube.com/watch?v=5F5v1EYaSTA"> Shared Calendars </a>
                        </li>
                </div>
            </td>
            <td valign="top" id="col-4">
                <div id="nugget4" align="center" style="height: 459px;">
                    <h2 class="menutitle"> Mail </h2>
                </div>
            </td>
        </tr>
    </tbody>

<colgroup>中的任何属性都将应用于该组中的所有列。如果您希望对任何单独的列进行特定的样式,则可以在每个列的<colgroup>中添加<col>标记来定义它们。您还可以将<colgroup>标记嵌套在彼此之间。