如何让DIV不包裹?

Mor*_*eng 166 html css word-wrap nowrap

我需要创建一个包含多个其他DIV的容器DIV样式.如果浏览器窗口调整为狭窄,则会询问这些DIV不会换行.

我试着让它像下面这样工作.

<style>
   .container
   {
      min-width: 3000px;
      overflow: hidden;
   }
   .slide
   {
      float: left;
   }
</style>
<div class="container">
   <div class="slide">something</div>
   <div class="slide">something</div>
   <div class="slide">something</div>
   <div class="slide">something</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这适用于大多数情况.但是,在某些特殊情况下,渲染不正确.我发现容器DIV在IE7的RTL中变为3000px宽度; 它变得凌乱.

有没有其他方法可以让容器DIV不包装?

小智 226

尝试使用white-space: nowrap;容器样式(而不是overflow: hidden;)


fgu*_*len 45

如果我不想定义最小宽度,因为我不知道元素的数量,唯一对我有用的是:

display: inline-block;
white-space: nowrap;
Run Code Online (Sandbox Code Playgroud)

但仅限Chrome和Safari:/


JSi*_*ris 31

以下为我工作没有浮动(我修改了你的例子有点视觉效果):

.container
{
    white-space: nowrap; /*Prevents Wrapping*/
    
    width: 300px;
    height: 120px;
    overflow-x: scroll;
    overflow-y: hidden;
}
.slide
{
    display: inline-block; /*Display inline and maintain block characteristics.*/
    vertical-align: top; /*Makes sure all the divs are correctly aligned.*/
    white-space: normal; /*Prevents child elements from inheriting nowrap.*/
    
    width: 100px;
    height: 100px;
    background-color: red;
    margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
   <div class="slide">something something something</div>
   <div class="slide">something something something</div>
   <div class="slide">something something something</div>
   <div class="slide">something something something</div>
</div>
Run Code Online (Sandbox Code Playgroud)

div可以用空格分隔.如果你不想这样,使用margin-right: -4px;的,而不是margin: 5px;.slide(它的丑陋,但它是处理一个棘手的问题).


Fun*_*bat 28

你需要的组合是

white-space: nowrap
Run Code Online (Sandbox Code Playgroud)

在父母和

display: inline-block; // or inline
Run Code Online (Sandbox Code Playgroud)

对孩子们


Tur*_*ako 23

这对我有用:

.container {
  display: inline-flex;
}

.slide {
  float: left;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="slide">something1</div>
  <div class="slide">something2</div>
  <div class="slide">something3</div>
  <div class="slide">something4</div>
</div>
Run Code Online (Sandbox Code Playgroud)

https://css-tricks.com/snippets/css/a-guide-to-flexbox/


Yuv*_*dam 10

overflow: hidden应该给你正确的行为.我的猜测是RTL搞砸了,因为你已经float: left封装了divs.

除了那个bug,你得到了正确的行为.


kis*_*ore 5

使用display:flexwhite-space:nowrap

p{
  display:flex;
  white-space:nowrap;
  overflow:auto;
}
Run Code Online (Sandbox Code Playgroud)
<h2>Sample Text.</h2>

<p>Some example text that will not wrap..lla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum d</p>

<h3>Then some other text</h3>
Run Code Online (Sandbox Code Playgroud)