[css] CSS 플로트를 한 줄로 유지하려면 어떻게합니까?

float: left왼쪽의 항목을 사용하여 동일한 줄에 두 개의 항목을 갖고 싶습니다 .

나는 이것을 혼자 달성하는 데 아무런 문제가 없습니다. 문제는 브라우저 크기를 매우 작게 조정하더라도 두 항목 이 같은 줄에 유지 되기를 원한다는 것 입니다. 아시다시피 … 테이블과 같은 방식입니다.

목표는 무엇을하든 오른쪽에있는 물품이 포장 되지 않도록하는 것 입니다.

CSS를 사용하여 브라우저에 랩을 감싸는 것보다 스트레칭하는div 방법을 알려 주면 어떻게 float: right;div가 아래에 float: left; div있습니까?

내가 원하는 것 :

                                   \
 +---------------+  +------------------------/
 | float: left;  |  | float: right;          \
 |               |  |                        /
 |               |  |content stretching      \   Screen Edge
 |               |  |the div off the screen  /  <---
 +---------------+  +------------------------\
                                             /



답변

이 크로스 브라우저 최소 너비 핵을 사용 <div>하는 컨테이너에 플로팅을 래핑하십시오 <div>.

.minwidth { min-width:100px; width: auto !important; width: 100px; }

당신은 할 수 있습니다 또한 일련의 “오버 플로우”그러나 아마하지 않도록해야합니다.

이것은 다음과 같은 이유로 작동합니다.

  • !important과 함께 선언, min-width원인 모든 IE7 +에서 같은 줄에 머물
  • IE6는을 구현하지 않지만 선언 min-widthwidth: 100px재정 !important의하여 컨테이너 너비를 100px로 만드는 버그 가 있습니다.

답변

다른 옵션은 부동 속성 대신 공백 속성을 이제 상위 div로 설정하는 것입니다.

.parent {
     white-space: nowrap;
}

공백을 재설정하고 인라인 블록 디스플레이를 사용하여 div가 동일한 라인에 머물러 있지만 여전히 너비를 줄 수 있습니다.

.child {
    display:inline-block;
    width:300px;
    white-space: normal;
}

다음은 JSFiddle입니다. https://jsfiddle.net/9g8ud31o/


답변

플로터의 너비 + 여백을 합한 것보다 최소 너비가 큰 div로 플로터를 감싸십시오.

해킹이나 HTML 테이블이 필요하지 않습니다.


답변

해결책 1 :

디스플레이 : 테이블 셀 (일반적으로 지원되지 않음)

해결책 2 :

테이블

(나는 해킹이 싫어.)


답변

다른 옵션 : 오른쪽 열을 띄우지 마십시오. 플로트 이상으로 이동하려면 왼쪽 여백을 지정하십시오. IE6을 수정하려면 해킹이 필요하지만 기본 아이디어입니다.


답변

플로팅 된 블록 수준 요소가이 문제에 대한 최상의 솔루션인지 확인 하시겠습니까?

내 경험에 CSS 어려움이있는 경우 종종 내가 원하는 일을하는 방법을 볼 수없는 이유는 마크 업과 관련하여 터널 비전에 빠졌기 때문입니다. 요소 가이 작업을 수행 하는 것이 아니라 “?


답변

이 문제에 테이블을 사용하는 것이 좋습니다. 비슷한 문제가 있으며 테이블이 일부 데이터를 표시하는 데 사용되고 기본 페이지 레이아웃이 아닌 한 괜찮습니다.