DIV를 포장하지 않는 방법?


179

다른 여러 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>

대부분의 경우 작동합니다. 그러나 일부 특수한 경우 렌더링이 올바르지 않습니다. IE7의 RTL에서 컨테이너 DIV가 3000px 너비로 변경되었음을 발견했습니다. 지저분 해집니다.

컨테이너 DIV를 감싸지 않도록 만드는 다른 방법이 있습니까?


이 태그를 추가했습니다 : white-space : nowrap; 이 태그 : 텍스트 오버플로 : 줄임표; 내 코드
세이버 tabatabaee 야 즈디

답변:


245

사용해보십시오 white-space: nowrap;컨테이너 스타일 (대신 overflow: hidden;)


48

최소 너비를 정의하지 않으려는 경우 요소의 양을 모르기 때문에 나에게 유일한 것은 다음과 같습니다.

display: inline-block;
white-space: nowrap;

그러나 Chrome과 Safari에서만 : /


33

다음은 부동없이 저에게 효과적이었습니다 (시각적 효과를 위해 예제를 약간 수정했습니다).

.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;
}
<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>

div는 공백으로 구분 될 수 있습니다. 이것을 원하지 않으면 for margin-right: -4px;대신에 사용하십시오 (추악하지만 처리하기 까다로운 문제입니다 ).margin: 5px;.slide


좋은 대답입니다. 아래에 비슷한 예를 추가했지만 귀하의 것을 본 후에 삭제했습니다. : 당신은 IE9를 지원하지 않는 경우, 당신은 또한 인 flexbox 사용할 수 있습니다 jsfiddle.net/7gsrb38L/1
ValentinVoilean

div 사이 </div><!-- --><div class="slide">에 여분의 공백을 제거하려면 div 사이에 HTML 주석을 사용할 수 있습니다 . 인라인 블록 스타일을 사용하면 코드의 공백이 HTML 문서에서 공백으로 선택됩니다.
조.

@ 조. 페이지 크기를 줄이려면 소스 코드에서와 </div><?php ?><div class="slide">같이 php : renders를 사용할 때 렌더링되지 않는 것을 사용할 수 </div><div class="slide">있습니다.
Fleuv

또한 JavaScript를 사용하여 HTML을 생성하면 공백을 피할 수 있습니다. DOThtml을 사용 합니다 . 위의 HTML은 다음과 같이 대체 될 수 있습니다.dot("body").div(dot.iterate(4, function(i){return dot.div("something something something something").class("slide");})).class("container")
JSideris

30

필요한 콤보는

white-space: nowrap

부모님과

display: inline-block; // or inline

아이들에게


25

이것은 나를 위해 일했다 :

.container {
  display: inline-flex;
}

.slide {
  float: left;
}
<div class="container">
  <div class="slide">something1</div>
  <div class="slide">something2</div>
  <div class="slide">something3</div>
  <div class="slide">something4</div>
</div>

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


overflow : hidden은 나를 위해 대접을했습니다. 감사.
Alfie

10

overflow: hidden올바른 행동을해야합니다. 내 생각 엔 캡슐화 된 s 에 RTL있기 때문에 엉망 입니다.float: leftdiv

그 버그 외에도 올바른 행동을 취했습니다.


1
캡슐화 된 div의 "float : left"때문인지 확인하겠습니다. 그러나 IE가 아닌 Firefox 및 Safari에서 동일한 코드가 올바르게 작동합니다. 그래서 나는 이것이 사실인지 의심합니다.
Morgan Cheng


2

위의 어느 것도 나를 위해 일하지 않았습니다.

필자의 경우, 내가 만든 사용자 정의 컨트롤에 다음을 추가해야했습니다.

display:inline-block;


1

당신이 사용할 수있는

display: table;

당신의 콘테이너를 위해 따라서 피하십시오 overflow: hidden;. 워핑 목적으로 만 사용한 경우 작업을 수행해야합니다.


0
<div style="height:200px;width:200px;border:; white-space: nowrap;overflow-x: scroll;overflow-y: hidden;">
   <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.
   The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.
   The quick brown fox jumps over the lazy dog.
   The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.
   The quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.</p>
</div>

0

사용 display:flexwhite-space:nowrap

p{
  display:flex;
  white-space:nowrap;
  overflow:auto;
}
<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>


-1

<span>태그는 문서의 그룹 인라인 소자에 사용된다.
(출처)


이것은 사실이지만 질문을 전혀 다루지 않는 것 같습니다.
Quentin

span과 div는 div가 줄 바꿈되고 span이 아닌 것을 제외하고는 동일한 방식으로 질문을 완벽하게 처리합니다. 또한 원하는 해결 방법을 구현할 수 있습니다.
Mike

2
그것은 당신의 제안이 "div 대신 span 사용"이라는 것을 의미합니까? 그게 당신이 말한 것이 아니기 때문입니다.
Quentin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.