【问题标题】:Float a bunch of divs CENTERED while retaining dynamic width and height在保持动态宽度和高度的同时浮动一堆 div 居中
【发布时间】:2011-09-26 07:49:00
【问题描述】:

我有一个很大的 div。它包含一堆缩略图。我希望 div 内的缩略图在 div 内居中,并且 div 在页面上居中。但我也希望 div 的宽度是动态的,这样你就可以看到每个分辨率上的所有缩略图,居中。我怎样才能做到这一点?

这是我目前所拥有的:

<div id="container">
    <div class="thumb"><img /></div>
    <div class="thumb"><img /></div>
    <div class="thumb"><img /></div>
    <div class="thumb"><img /></div>
    <div class="thumb"><img /></div>
    <div class="thumb"><img /></div>
</div>

我试过用这个 css 将它居中: 问题是我需要一个替代 float:left 的方法来居中,这样它们就可以相互浮动。我目前所拥有的只是将它们浮动到错误的浏览器宽度上,它们没有居中。

#container{margin:auto;width:80%}
.thumb{padding:60px;float:left}

关于如何做类似 float:center 的任何想法?

【问题讨论】:

    标签: css html css-float center


    【解决方案1】:

    首先,你不能给所有的孩子&lt;div&gt;提供相同的ID;那是无效的 HTML。

    我会这样做:

    #container{margin:0 auto;width:80%;text-align:center}
    #container div{padding:60px;display:inline}
    
    <div id="container">
        <div><img /></div>
        <div><img /></div>
        <div><img /></div>
        <div><img /></div>
        <div><img /></div>
        <div><img /></div>
    </div>
    

    或者,您可以将所有 &lt;div&gt;s 更改为 &lt;span&gt;s 并删除 display:inline CSS 指令。您也可以完全删除&lt;div&gt;&lt;span&gt; 想法,只需将padding 直接应用于img 标记。

    编辑:看到 cmets 在另一个答案上发布,看起来我上面的答案仍然不能完全帮助你。这是你想要完成的行为吗? http://jsfiddle.net/9KqQN/1

    #container{margin:0 auto;width:80%;text-align:center}
    #container span{display:inline-block;text-align:left}
    
    <div id="container">
        <span>
            <img />
            <img />
            <img />
            <br />
            <img />
        </span>
    </div>
    

    【讨论】:

    • 糟糕,我在代码中写了class,这里不小心写了ID。对不起。
    • 根据@Marc B 的回答中的 cmets,在我的回答中查看可能的解决方案。
    • 但我希望下一行从左边开始。拇指左对齐,但与容器动态对齐,居中。甚至可能吗?我不希望拇指居中,我希望拇指左对齐。
    • 这种行为正是我链接的那个小提琴中发生的事情。玩它,添加更多img 标签和更多休息时间。如果您在同一行添加更多,带有绿色边框的&lt;span&gt; 的宽度将会增加。如果换行,它也会从左侧开始图像。
    【解决方案2】:

    在拇指 div 上使用 display: inline-block。这使您可以像对待任何其他文本一样对待它们,但保留它们固有的“boxiness”来调整大小:

    #container {margin: auto; width: 80%; text-align: center; }
    .thumb { height: 100px; width: 100px; padding: 60px; display-inline-block; }
    

    【讨论】:

    • 可能想要编辑评论并清理一下。不要让 FCC 把所有的珍妮特杰克逊都放在你身上。
    • 哦不,没关系。这也使图像居中,我只想让它们整体浮动到中心,现在它们实际上居中,所以第二行从中间开始,我希望它从左边开始!就像左对齐的文本一样。
    • 嗯。将图像包装在另一个 div(“子容器”)中,并将其设置为 text-align: left。这应该使#container 居中#subcontainer,然后左对齐.thumb 框。
    • 然后我又回到了开始的地方。它左对齐一切。我认为这是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2011-07-08
    • 2011-07-31
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2013-01-31
    • 2012-06-15
    • 2012-11-06
    相关资源
    最近更新 更多