【问题标题】:how to center a div without width?如何使没有宽度的div居中?
【发布时间】:2023-04-01 08:20:01
【问题描述】:

您好,我想知道是否可以在没有宽度的情况下将 div 居中。由于容器的两个不同版本取决于具有不同宽度的语言设置,因此我希望将其动态居中。

margin: 0 auto;

在没有任何宽度设置的情况下无法工作。

所以结构很简单:

<div id="container">
        <div id="list">
            <span class="up">text large</span>
            <ul class="navigation">
                <li>one</li>
                <li>|</li>
                <li>two</li>
                <li>|</li>
                <li>three</li>
                <li>|</li>
                <li>four</li>
            </ul>
        </div>
</div>

和css:

.wrapper #container  {
    width: 960px;
    clear: both;
    margin: 0 auto;
}

.wrapper #container #list {
    width: 420px;-->should be dynamically
    margin: 0 auto; --> only works when setting width
}
.wrapper #container #list .up {
    font-size: 11px;
    float: left;
    display: inline-block;
    text-align: right; 
    display: inline;
}
.wrapper .navigation {
    font-size: 10px;
    margin-top: 15px;
    float: left;
    padding-left: 5px;
}
.wrapper .nav li {
    float: left;
    display: inline-block;
    margin-left: 15px;
    list-style: none;
}

所以如果有人知道如何处理,我真的很感激。

非常感谢。

更新:

感谢您到目前为止回答这个问题。使用:

显示:内联块;

在应该居中的容器上效果很好。

【问题讨论】:

  • 给每个版本不同的宽度?
  • 目前就是这样。但我想知道是否有其他方法可以这样做...无需测试、检查、更正...
  • 在包含lis 的实际内容上使用管道 (|) 而不是左边框或右边框?
  • 我认为这比创建自己的 css 规则并添加到 ul 中更快。那是因为您将有 4 个边框,但以前只有 3 个边框;)

标签: css html center


【解决方案1】:

使用display: inline-block。见fiddle

.wrapper #container  {
    /* ... */
    text-align: center;
}
.wrapper #container #list {
    display: inline-block;
}

【讨论】:

  • 您好,感谢您回答这个问题。对于第一个版本,它工作正常。第二个将是一个问题。我更新了我的问题。谢谢。
  • 如果你有 3 个uls,那么它们都应该是inline-block。无论如何,如果您创建一个显示问题的fiddle 来帮助您会更容易、更有趣。
  • 你好,我看到我错过了一个点来声明一个类。这就是它显示错误的原因。非常感谢您的帮助。
  • 这会将 div 内的文本居中到中心,我想将 div 而不是其中的文本居中。
猜你喜欢
  • 2010-09-21
  • 2013-10-09
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2013-08-21
  • 2014-04-22
  • 1970-01-01
相关资源
最近更新 更多