Div+CSS对HTML的table表格定位用法实例

Emma ·
更新时间:2024-11-14
· 930 次阅读

关于css定位有很多文章讲述:

如果有一个元素div ,他的position属性设置为absolute,那么这个div 的位置取决于其父元素中position值设置为relative的元素。如果在其父元素中没有一个元素的position值是relative、absolute、或者fixed,那么这个div位置将以 body位置为参考。

但是对于某些浏览器来说似乎不是每个元素都遵从这一规则,有如下一段代码

CSS Code复制内容到剪贴板 table{          margin-left: 100px;          margin-top: 50px;      }      td{          height: 150px;          width: 100px;          position: relative;      }      td div{          height: 30px;          width: 50px;          background-color: red;          position: absolute;          left: 10px;          top:50px;      }      <table border="1">          <tr>              <td></td>              <td></td>              <td>                  <div>这是一个position:absolute元素</div>              </td>          </tr>      </table>    

由于div元素的尺寸较小,理想的情况是div总是在最后一个td中,但是在firefox中div并不以td为参考,而是body。
所以要实现这个效果的兼容方式是在td中添加一个能应用position:relative的元素,上述代码可以更改为

XML/HTML Code复制内容到剪贴板 <table border="1">          <tr>              <td></td>              <td></td>              <td>                            <div style="position:relative;"                  <div>这是一个position:absolute元素</div>                            </div>              </td>          </tr>      </table>    

这样就可以保证 div元素始终在td中。


table的td相对定位实例
下面我们来看一个处理td相对定位的实例,这里我们建两个table样式:table和table2

CSS Code复制内容到剪贴板 .table,.table2    {    overflow:hidden;       }    .table > .header    {    position:relative;    height:40px;    background-color:#84a9cc;    }    .header > .header-title    {    margin:0 auto;line-height:40px;color:#fff;width:80px;text-align: center;font-size:14px;    }    .header > .header-add    {    background-color: #488FD2;    color: #FFFFFF;    cursor: pointer;    height: 20px;    line-height: 20px;    padding: 10px;    position: absolute;    rightright: 0;    text-align: center;    top: 0;    width: 45px;    }    .header > .header-search    {    background-color: #fff;    height: 30px;    line-height: 20px;    position: absolute;    rightright: 80px;    text-align: center;    top: 5px;    width: 200px;    }    .table > .body,.table2 > .body    {    border: 1px solid #BCC6D0;/border-style:none solid solid solid;/background-color:#fff;    }    .header-search > input    {    border:none;    border-right: 1px solid #BCC6D0;    color: #666666;    font-size: 14px;    height: 100%;    line-height: 100%;    width: 170px;    float:left;    }    .header-search > .search-logo    {    float:left;width:29px;height:30px;    background:url(…/…/images/global/serachBlue.png) center no-repeat;    }    tbody > .tr    {    height:20px;line-height:20px;    }    th    {    display:inline-block;margin-right:-3px;    }    th + th    {    margin-left:-3px;    }    td    {    padding:10px 0;display: inline-block;margin-right: -3px;    }    td + td    {    margin-left: -3px;    }    tbody > .tr:nth-child(2n+1)    {    background-color:#e6e5e5;    }    .table2 tbody > .tr:nth-child(2n+1)    {    background-color:#fff;    }    .ml30    {    margin-left:30px;    }    .tr  .checkbox    {    width:20px;border:1px solid #BCC6D0;height:20px;cursor:pointer;float:left;    }    .tr  .checkbox.selected    {    background-color:#488FD2;    }    .tr  .checkbox > input[type=‘checkbox’]    {    display:none;    }    table.body,table2.body    {    width:100%;    overflow-y:auto;    }    .body    {    margin:0;    }    td, td div    {    font-size:14px;text-align: center;    }    .canClick    {    color:#2E5CB9;cursor:pointer;    }       .btn {    background-color: #488FD2;    color: #FFFFFF;    cursor: pointer;    font-size: 14px;    padding: 6px 10px;       }    .line > .submit    {    float:rightright;padding:10px 25px;    }    .btnPush > .tagRight {    background: url("…/…/images/global/smallGotoRight.png") no-repeat scroll center center #9EC5EB;    float: left;    height: 85px;    width: 8px;    }    .opcity5    {    opacity:0.5;    filter:alpha(opacity=50);    }       .search {    background-color: #FFFFFF;    height: 30px;    line-height: 20px;       text-align: center;    width: 210px;    }    .search > input    {    border:none;    border: 1px solid #BCC6D0;    color: #666666;    font-size: 14px;    height: 28px;    line-height: 100%;    width: 170px;    float:left;    }    .search > .search-logo    {    float:left;width:29px;height:30px;    background:url(…/…/images/global/searchWhite.png) center no-repeat #488FD2;    }    .tableRight    {    float:left;margin-left:20px;width: 962px;    }    .btnLeft    {    float:left;    }       th {    font-size: 14px;    font-weight: normal;    line-height: 35px;    height:35px;    }    .textl {    text-align: left;    }    .table2 td    {    border-top:1px solid #BCC6D0;    }    .hoverTag    {    cursor:pointer;position: relative;    }    .titTag    {    min-width:135px;height:50px;display:none;position:absolute;    }    .titTag > .titTag-left, .titTag > .titTag-msg    {    float:rightright;    }    .titTag > .titTag-left   {    width:15px;    height:100%;    }    .titTag > .titTag-msg    {    background-color:#fcffe0;min-width:119px;border:1px solid #BCC6D0;height:48px;text-align:left;    }      



div+css HTML 定位 table CSS div

需要 登录 后方可回复, 如果你还没有账号请 注册新账号