나란히 두 div-유체 표시


222

두 개의 div를 나란히 배치하고 다음 CSS를 사용하려고합니다.

#left {
  float: left;
  width: 65%;
  overflow: hidden;
}

#right {
  overflow: hidden;
}

HTML은 래퍼 div에서 단순하고 두 개의 왼쪽 및 오른쪽 div입니다.

<div id="wrapper">
  <div id="left">Left side div</div>
  <div id="right">Right side div</div>
</div>

StackOverflow 및 다른 사이트에서도 더 나은 방법을 찾기 위해 여러 번 시도했지만 정확한 도움을 찾을 수 없었습니다.

따라서 코드는 언뜻보기에 잘 작동합니다. 문제는 너비를 (%) 늘리면 왼쪽 div가 자동으로 패딩 / 여백을 얻는다는 것입니다. 따라서 65 % 너비에서 왼쪽 div에 패딩이나 여백이 있고 오른쪽 div와 완벽하게 정렬되지 않았습니다. 패딩 / 여백 0을 시도했지만 운이 없습니다. 둘째, 페이지를 확대하면 오른쪽 div가 왼쪽 div 아래로 미끄러집니다. 유체 표시가 아닌 것 같습니다.

참고 : 죄송합니다. 많이 검색했습니다. 이 질문은 여러 번 요청되었지만 그 대답은 저에게 도움이되지 않습니다. 나는 내 경우에 문제가 무엇인지 설명했다.

그에 대한 해결책이 있기를 바랍니다.

감사합니다.

편집 : 죄송합니다, HTML 문제입니다. 왼쪽과 오른쪽에 두 개의 "상자"div가 있었고 %로 패딩이 있었으므로 왼쪽은 더 큰 너비로 인해 더 많은 패딩을 보였습니다. 죄송합니다. 위의 CSS는 완벽하게 작동하며 유동적 인 표시 및 고정 기능을 제공합니다.


1
상자 div가 두 개 있습니까? 박스 사업부 란 무엇입니까? 이 질문은 명확하지 않습니다.
john ktejik

답변:


251

대신 이와 같은 시스템을 사용해보십시오 :

.container {
  width: 80%;
  height: 200px;
  background: aqua;
  margin: auto;
  padding: 10px;
}

.one {
  width: 15%;
  height: 200px;
  background: red;
  float: left;
}

.two {
  margin-left: 15%;
  height: 200px;
  background: black;
}
<section class="container">
  <div class="one"></div>
  <div class="two"></div>
</section>

첫 번째 div의 너비와 같은 나머지에 margin-left를 사용하는 경우 하나의 div 만 플로팅하면됩니다. 이것은 줌에 상관없이 작동하며 서브 픽셀 문제가 없습니다.


1
그것은 도움이되지 않습니다, 확대 / 축소가 수정되었습니다, 그것은 고정되어 있지만 오른쪽 div는 아래로 미끄러 져 고정되고 그 위치에 고정됩니다
Waleed

아마도 무언가를 엉망으로 만들거나 코드를 확인하거나 jsFiddle에 대한 링크를 알려주고 잘못 보았을 것입니다.
dezman 2016 년

아 죄송합니다. div는 이미 위의 CSS로 수정되었습니다. 왼쪽과 오른쪽의 "상자"div에만 패딩과 여백이 있습니다. 오른쪽 div가 짧기 때문에 패딩과 여백이 동일했기 때문입니다. 죄송합니다
Waleed

는 안 <section><div>을 대신?
jvriesem

218

flexbox를 사용하면 쉽습니다.

#wrapper {
  display: flex;
}

#left {
  flex: 0 0 65%;
}

#right {
  flex: 1;
}
<div id="wrapper">
  <div id="left">Left side div</div>
  <div id="right">Right side div</div>
</div>


5
니스, 인 flexbox 확실히 갈 수있는 방법입니다
줄리안 소로

4
이 사이트에 따르면 flex는 브라우저의 94 %에서 작동합니다. caniuse.com/#search=flex
Adrian

8
@JoostS는 사용 가능한 다른 브라우저 중 94 %가 (크롬, 모질라, IE 등에서 항상 작동하는 것처럼) 브라우저와 상관없이 94 %의 시간 동안 작동하지 않습니까?
Joe

6
현재 97 % 이상입니다. 기본적으로 IE8을 타겟팅 할 필요가 없다면 flexbox를 사용하십시오 (이 경우 및 기타). Flexbox 솔루션은 거의 항상 우아하고 추론하기 쉽습니다.
Alan Thomas

6
기존 웹 사이트가있는 경우 브라우저 공유를 사용하지 말고 자신의 트래픽 로그를 확인하십시오. 대부분의 사이트에서 IE8은 트래픽의 약 0.01 % 만 차지합니다. 그러나 ... 많은 레거시 소프트웨어를 사용하는 기업, 정부 또는 비영리 조직의 사용자가 대상인 특정 사이트를 보았으므로 이전 IE 브라우저 사용량이 놀라 울 정도로 높을 수 있습니다.
cazort

95

현재 사이트에이 CSS를 사용합니다. 완벽하게 작동합니다!

#sides{
margin:0;
}
#left{
float:left;
width:75%;
overflow:hidden;
}
#right{
float:left;
width:25%;
overflow:hidden;
} 

49
자신의 답변을 찾고 수락 한 것을 기쁘게 생각하지만 #sides는 무엇입니까? 원래 질문에 없습니다.
JMD

2
두 자식 (#right)에서 float : left를 사용하면 부모 div (#wrapper)의 높이가 죽습니다. 따라서이 솔루션은 요구 사항에 따라 다릅니다. 더 나은 한 자녀 만에 플로트를 제공합니다 (귀하의 경우 왼쪽 #).
라훌 간디

8

인터넷 검색에 대한 답변은 다음과 같습니다.

CSS :

.column {
    float: left;
    width: 50%;
}

/* Clear floats after the columns */
.container:after {
    content: "";
    display: table;
    clear: both;
}

HTML은 다음과 같습니다.

<div class="container">
    <div class="column"></div>
    <div class="column"></div>
</div>

3

두 div를 이렇게 만드십시오. 이렇게하면 두 div가 나란히 정렬됩니다.

.my-class {
  display : inline-flex;
} 

1

#sides{
margin:0;
}
#left{
float:left;
width:75%;
overflow:hidden;
}
#right{
float:left;
width:25%;
overflow:hidden;
} 
<h1 id="left">Left Side</h1>
<h1 id="right">Right Side</h1>
<!-- It Works!-->


overflow : hidden의 이유는 무엇입니까? 필요하지 않은 것 같습니다 ...
혼자

0
   <div style="height:50rem; width:100%; margin: auto;">
    <div style="height:50rem; width:20%; margin-left:4%; margin- 
    right:0%; float:left; background-color: black;">

    </div>
    <div style="height:50rem; width:20%; margin-left:4%; margin- 
    right:0%; float:left;  background-color: black;">

    </div>
    <div style="height:50rem; width:20%; margin-left:4%; margin- 
    right:0%; float:left;  background-color: black;">

    </div>
    <div style="height:50rem; width:20%; margin-left:4%; margin- 
    right:0%; float:left;  background-color: black;">

    </div>
   </div>

그러나 마진 오른쪽은 필요하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.