CSS - 在容器 div 中让 3 个 div 浮动和居中的问题 ..(包含代码和粗图)

Posted

技术标签:

【中文标题】CSS - 在容器 div 中让 3 个 div 浮动和居中的问题 ..(包含代码和粗图)【英文标题】:CSS - Problems with getting 3 div's to be floated and centered, within the container div.. (contains code and crude diagram) 【发布时间】:2012-01-10 23:49:46 【问题描述】:

可以说,我在将“容器”内的 3 个 div 居中时遇到问题。

它基本上应该是这样的(请原谅我的粗略例子):

    ______________________
   |  ___    ___     ___  |
   | |___|  |___|   |___| |
   |______________________|

我遇到的问题是,我似乎无法弄清楚 css 来让这 3 个 div 像我的粗略示例一样布局。

因为设计应该是弹性的,可以在不同的分辨率下扩展或收缩,因此在不同的分辨率下呈现大致相同的外观。

此时 div 向左浮动,与第一个 div 相比,最后一个 div 和容器之间的间隙更大。我试图让它们都紧贴在中间......

以下是与此相关的代码:

.searchResult 
    padding: 1% 2% 1% 2%;
    margin: 2% 2.5%;
    width: auto;
    height: 200px;
    -webkit-border-radius: 10px 10px;
    -moz-border-radius: 10px / 10px;
    -o-border-radius: 10px / 10px;
    -ms-border-radius: 10px / 10px;
    -khtml-border-radius: 10px / 10px;
    border-radius: 10px 10px 10px 10px;
    border: 2px outset #003399;
    -moz-box-shadow: 5px 5px 5px #666666;
    -webkit-box-shadow: 5px 5px 5px #666666;
    -o-box-shadow: 5px 5px 5px #666666;
    -ms-box-shadow: 5px 5px 5px #666666;
    -khtml-box-shadow: 5px 5px 5px #666666;
    box-shadow: 5px 5px 5px #666666;


.bizDesc 
    margin-right: 2%;
    text-align: left;
    float: left;
    width: 35.5%;
    height: 140px;
    padding: 5px 0 0 0;
    -webkit-border-radius: 10px 10px;
    -moz-border-radius: 10px / 10px;
    -o-border-radius: 10px / 10px;
    -ms-border-radius: 10px / 10px;
    -khtml-border-radius: 10px / 10px;
    border-radius: 10px 10px 10px 10px;
    border: 2px outset #003399;
    -moz-box-shadow: 5px 5px 5px #666666;
    -webkit-box-shadow: 5px 5px 5px #666666;
    -o-box-shadow: 5px 5px 5px #666666;
    -ms-box-shadow: 5px 5px 5px #666666;
    -khtml-box-shadow: 5px 5px 5px #666666;
    box-shadow: 5px 5px 5px #666666;


.bizAddr 
    margin-right: 2%;
    text-align: left;
    float: left;
    width: 28%;
    height: 140px;
    padding: 5px 0 0 0;
    -webkit-border-radius: 10px 10px;
    -moz-border-radius: 10px / 10px;
    -o-border-radius: 10px / 10px;
    -ms-border-radius: 10px / 10px;
    -khtml-border-radius: 10px / 10px;
    border-radius: 10px 10px 10px 10px;
    border: 2px outset #003399;
    -moz-box-shadow: 5px 5px 5px #666666;
    -webkit-box-shadow: 5px 5px 5px #666666;
    -o-box-shadow: 5px 5px 5px #666666;
    -ms-box-shadow: 5px 5px 5px #666666;
    -khtml-box-shadow: 5px 5px 5px #666666;
    box-shadow: 5px 5px 5px #666666;


.bizCont 
    text-align: left;
    float: left;
    width: 28%;
    height: 140px;
    padding: 5px 0 0 0;
    -webkit-border-radius: 10px 10px;
    -moz-border-radius: 10px / 10px;
    -o-border-radius: 10px / 10px;
    -ms-border-radius: 10px / 10px;
    -khtml-border-radius: 10px / 10px;
    border-radius: 10px 10px 10px 10px;
    border: 2px outset #003399;
    -moz-box-shadow: 5px 5px 5px #666666;
    -webkit-box-shadow: 5px 5px 5px #666666;
    -o-box-shadow: 5px 5px 5px #666666;
    -ms-box-shadow: 5px 5px 5px #666666;
    -khtml-box-shadow: 5px 5px 5px #666666;
    box-shadow: 5px 5px 5px #666666;

css 的第一位与容器相关,接下来的 3 位与从左到右的 3 个 div 相关。所以我的例子是这样的:

    ______________________
   | ___    ___     ___   |
   ||___|  |___|   |___|  |
   |______________________|

如果有人愿意提供一些智慧并为此提供一些意见,我相信答案很简单,将不胜感激,谢谢!!

【问题讨论】:

【参考方案1】:

我认为在其中添加一个 div 是最简单的...这样,图表中的外部 div 将控制 div 在包含它的容器/标签中的行为方式。您要添加的 div 将围绕 3 个框,然后对外部 div 的边距/浮动/等具有灵活性。

假设“searchResult”是外层div,结构如下:

<div class="searchResult">
    <div class="divClassToAdd">
        <div class="bizDesc">...</div>
        <div class="bizAddr">...</div>
        <div class="bizCont">...</div>
    </div>
</div>

【讨论】:

没问题。正如@Dbugger 在他的编辑中提到的那样,将“divClassToAdd”的边距设置为自动将为您提供所需的内容。玩转风格,看看什么最适合。 :)【参考方案2】:

应该这样做:

HTML


<div id="dialogbox">
  <div id="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
  </div>
</div>

CSS


#container
  margin: 0 auto;

.box
  width: 200px; height: 200px;

只要容器有自动边距,你对内盒做什么都是无关紧要的

【讨论】:

感谢您的意见,但这不适合我。 应该的。你能做一个jsdiffle吗?需要明确的是,#container 与对话框不同。是一个额外的块,使对话框中的块居中。

以上是关于CSS - 在容器 div 中让 3 个 div 浮动和居中的问题 ..(包含代码和粗图)的主要内容,如果未能解决你的问题,请参考以下文章

CSS:如何在一个位置中有位置:绝对 div:相对 div 不会被溢出裁剪:隐藏在容器上

如何使用 CSS 并排浮动 3 个 div?

div中让内容能不换行就尽量不换行.纯原

【DIV+CSS】div 子容器大于父容器宽度

css 里面怎么让一个DIV居中 ?

请问css中如何让div铺满父容器?