如何在网页上并排放置三个div元素

Jos*_*hua 8 html css html5 css3 css-float

大家好,Iam试图建立一个有'div容器'的网站,在这个div中有三个主要栏目,'div left','div middle'和'div right'.

我试图为每个列的宽度分别设置为25%,50%,和25% - 也浮动左所有div - 与两个图像中的表(格中)的任一侧上.不幸的是,这三个div是分开的而不是并排的.有没有人对此有任何提示或建议?任何帮助,将不胜感激.

注意:在添加事件时填充中间div(保存表).

<div id = "container" style = "width:100%">

<div id ="left" style = "float: left; width: 25%;">
    <?php echo $this->Html->image('/img/sideart.jpg'); ?>
</div>

    <div id = "middle" style = "float: center; width: 50%; height: 100%;">
    <table cellpadding="0" cellspacing="0">
    <tr>

    </tr>

    <?php
    foreach ($events as $event): ?>

    <tr>
        <td class="actions">

        </td>
    </tr>
<?php endforeach; ?>
    </table>
    </div>

    <div id = "right" style = "float:right; width: 25%;">
        <?php echo $this->Html->image('/img/sideart2.jpg'); ?>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

cor*_*ews 18

<div id = "container" style = "width:100%">
    <div id ="left" style = "float:left; width: 25%;">
        <?php echo $this->Html->image('/img/sideart.jpg'); ?>
    </div>
    <div id = "middle" style = "float:left; width: 50%;">

    </div>
    <div id = "right" style = "float:left; width: 25%;">

    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

没有浮动:中心这样的东西.通过将它们全部悬空,它们将彼此相邻排列.


tko*_*one 6

这里有几件事情正在发生.

<div>是一个块级元素.这意味着,默认情况下,每个后面都会有一个换行符.(CSS将是display: block).

你可以让他们不做换行,但通过这样做来保持他们的间距特征:

display: inline-block
Run Code Online (Sandbox Code Playgroud)

这将使它们显示为内联,但允许垂直间距,就像它们是块级元素一样.

您尝试使用float它们是正确的,但由于CSS Box模型的工作原理,任何marginborder属性都会导致它们大于您指定的百分比.(编辑:错过了float: center- 那不存在.它是rightleftfloat.)

如果要继续浮动它们,可以尝试指定总长度小于100%的宽度.

  • @MatthewCox如果你还在支持IE7,我为你感到难过.目前它的市场份额不到1%,它不支持大量的CSS功能,并且支持可怕的JavaScript.我们已经放弃了对我们所有应用程序的支持(以及我的前四家公司也是如此,小型初创公司和跨国媒体集团的组合.)但你是对的,`inline-block`将不会起作用IE7.也不是Netscape 4. (5认同)