使<li>元素展开以填充父容器</li>

时间:2014-07-21 20:15:30

标签: html css ruby-on-rails twitter-bootstrap

我有以下HTML:

<div class="panel panel-default">
    <div class="panel-heading">
        <h3 class="panel-title text-center">Welcome to the Information Management Hub</h3>
    </div>
    <div class="panel-body">
        <div class="btn-group btn-group-lg">
            <ul class="central-nav">
                <li><%= link_to "Customer Information", customer_information_path, :class => "btn btn-default btn-lg" %></li>
                <li><%= link_to "Customer Information", customer_information_path, :class => "btn btn-default btn-lg" %></li>
                <li><%= link_to "Customer Information", customer_information_path, :class => "btn btn-default btn-lg" %></li>
                <li><%= link_to "Customer Information", customer_information_path, :class => "btn btn-default btn-lg" %></li>
            </ul>
        </div>
    </div>
</div>


这是我在Bootstrap之外的自定义CSS:

.central-nav {
    list-style-type: none;
    width: 100%;
}

.central-nav li {
    display: inline-block;
}


我已经尝试了许多方法使列表项扩展到无序列表的父容器(div class="panel-body")的宽度并且不成功。

是否可以将列表项扩展到无序列表的父容器的宽度?

4 个答案:

答案 0 :(得分:1)

你可以尝试

.central-nav {
  list-style-type: none;
  width: 100%;
  display:table;
}

.central-nav li {
  display: table-cell;
}

答案 1 :(得分:1)

根据@Paulie_D的建议,这些表是第一个尝试的方法。它在旧版浏览器中受支持,总体而言,更容易实现。

如果您的应用程序将在现代浏览器上运行,并且您希望更好地控制列表项的缩小或增长方式,它们的对齐方式等,那么您可以尝试使用flexbox:http://jsfiddle.net/J7meX/

标记:

<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>

样式:

* {
    margin: 0;
    padding: 0;
}

body {
    padding: 10px;
}

ul {
    list-style-type: none;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
}

ul > li {
    -webkit-flex: 1 1 33%;
    flex: 1 1 33%;
    outline: 1px dotted #000;
    white-space: nowrap;
}

答案 2 :(得分:1)

您可以尝试以下。

.central-nav {
  list-style-type: none;
  width: 100%;
  display:block;
}

.central-nav li {
  display: block;
  width: 100%;
}

答案 3 :(得分:1)

我的道歉 - 一个简单的疏忽 - 我忘了我把UL包裹在了Div中。

我按如下方式创建了一个新类:

.fill-parent {
  width: 100%;
}

我将该类应用于div并扩展列表项以填充div。