HTML表:无论浏览器宽度如何,都保持中心对齐

时间:2012-07-01 05:02:29

标签: html css html-table

这是前一个问题Anchoring CSS Repeating Background Image的后续内容,但与另外一个问题完全不同。

jsFiddle http://jsfiddle.net/By2xj/演示了这个概念。我有一个横幅图像(中心),然后需要在左侧和右侧重复图像,这将根据浏览器窗口的宽度显示和重复。附带条件是左右图像必须锁定在中央横幅图像的边缘。如果展开jsFiddle结果窗口,则可以看到此效果 - 左右重复图像始终锁定在中央横幅图像的一侧,并从该点展开。

所有这一切都有效,但是我使用了一个表来实现这种效果,因为之前的Stack Overflow问题中建议的CSS并不完全有效,并且有点依赖于浏览器,特别是不能使用旧浏览器。< / p>

使用这个基于表格的解决方案,我希望始终保持中心横幅图像居中,即使浏览器宽度小于横幅。如果缩小jsFiddle结果窗口的大小,您将看到当浏览器宽度小于横幅时,横幅标记为左对齐而不是居中。

所以我的问题是,即使浏览器宽度小于横幅宽度(并且包含表格单元格),我如何始终保持中心横幅中心对齐(或者更准确地说,整个表格中心对齐)? / p>

3 个答案:

答案 0 :(得分:5)

有点作弊但是,我希望你在寻找什么。

http://jsfiddle.net/By2xj/8/

发生的事情是,我正在中间单元格中创建一个div,然后将其置于绝对位置,然后将其置于屏幕中心。无论浏览器窗口的大小如何,div都将始终保持居中。

记录:

<table id="banner-table">
    <td id="left-image"></td>
    <td id="center-image"><div></div></td>
    <td id="right-image"></td>
</table>​

的CSS:

 #banner-table {

    width: 100%;
    height: 200px;
    padding: 0;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
}

#left-image {
    background-image: url(http://www.dummyimage.com/100x200/ff0303/ffffff.png&text=Left);
    background-position: right;
    background-repeat: repeat-x;
}

#center-image {

    width:400px;


}
#center-image div {
    top:0; left:50%;
    margin-left:-200px;
    width:400px;
    height:200px;

    position:absolute;
    background-image: url(http://www.dummyimage.com/400x200/0021fa/ffffff.png&text=Center);
    background-position: center;
    background-repeat: no-repeat;
}
#right-image {
    background-image: url(http://www.dummyimage.com/100x200/1f9900/ffffff.png&text=Right);
    background-position: center center;
    background-repeat: repeat-x;}​

答案 1 :(得分:1)

你可以放弃桌子并使用类似的东西:

http://jsfiddle.net/bryandowning/f2unW/

答案 2 :(得分:0)

您需要像以下一样编辑HTML代码:

<table id="banner-table">
    <td id="left-image"></td>
    <td id="center-image"><div></div></td>
    <td id="right-image"></td>
</table>​

首先,您可以在没有任何CSS文件的情况下实现此功能。然后您可以根据需要自定义代码。