我想做一个横版,比如Quora.com
这是我想出来的
<div class="out-wrapper">
<div class="inner-wrapper">
<% 6.times do %>
<a class="nav-link pull-left" href="#">Nav 1</a>
<% end %>
</div>
</div>
.out-wrapper{
overflow-x: scroll;
.inner-wrapper{
/* width: 600px; */
.nav-link{
padding: 10px;
}
}
}
演示:http://codepen.io/anon/pen/XJZyog
如果我将宽度
设置为一个固定值,我只能创建一个水平滚动
。
如何在不指定固定值的情况下执行此操作?像 width: overall-width-of-children
所以宽度将自动成为其所有元素的总宽度
最佳答案
如果元素超出右边缘,浏览器会将元素换行,因此父元素的宽度将为 100%(最大)。为避免这种情况,您有两种解决方案:
Use display: inline-block
and white-space: nowrap
.out-wrapper {
overflow-x: scroll;
}
.out-wrapper .inner-wrapper {
white-space: nowrap;
}
.out-wrapper .inner-wrapper .nav-link {
display: inline-block;
padding: 10px;
letter-spacing: 2em; /* for demonstration */
}
<div class="out-wrapper">
<div class="inner-wrapper">
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
</div>
</div>
Use display: table
and display: table-cell
.out-wrapper {
overflow-x: scroll;
}
.out-wrapper .inner-wrapper {
display: table;
}
.out-wrapper .inner-wrapper .nav-link {
display: table-cell;
white-space: nowrap;
padding: 10px;
letter-spacing: 2em; /* for demonstration */
}
<div class="out-wrapper">
<div class="inner-wrapper">
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
<a class="nav-link" href="#">Nav 1</a>
</div>
</div>
关于html - CSS:如何将宽度设置为 child 的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28537410/