<div> 요소를 나란히 정렬


127

나는 이것이 다소 간단한 질문이라는 것을 알고 있지만 내 삶을 위해 그것을 이해할 수는 없습니다. 배경 이미지를 적용한 두 개의 링크가 있습니다. 현재 모습은 다음과 같습니다 (그림자에 대한 사과, 버튼의 대략적인 스케치).

여기에 이미지 설명 입력

그러나 저는이 두 버튼을 나란히 놓고 싶습니다. 정렬로 무엇을해야하는지 정말 알 수 없습니다.

다음은 HTML입니다.

<div id="dB"}>
    <a href="http://notareallink.com" title="Download" id="buyButton">Download</a> 
</div>
<div id="gB">
    <a href="#" title="Gallery" onclick="$j('#galleryDiv').toggle('slow');return false;" id="galleryButton">Gallery</a>     
</div>

여기 CSS가 있습니다.

#buyButton {
    background: url("assets/buy.png") 0 0 no-repeat;
    display:block;
    height:80px;
    width:232px;
     text-indent:-9999px;
}
#buyButton:hover{
width: 232px;
height: 80px;
background-position: -232px 0;
}
#buyButton:active {
width: 232px;
height: 80px;
background-position: -464px 0;
}

#galleryButton {
    background: url("images/galleryButton.png") 0 0 no-repeat;
    display:block;
    height:80px;
    width:230px;
     text-indent:-9999px;
}
#galleryButton:hover{
width: 230px;
height: 80px;
background-position: -230px 0;
}
#galleryButton:active {
width: 230px;
height: 80px;
background-position: -460px 0;
}

5
제목을 읽는 것만으로 가장 먼저 떠오르는 것은float:left;
JCOC611

2
@ JCOC611 : float:left;두 가지 모두에 적용하면 div완벽하게 수행되었습니다. 댓글을 답변으로 게시 할 수 있습니까? 감사!
sudo rm -rf

1
그리고 두 번째는 display: inline-block;지원이 잘되지
JV

1
컨테이너 내부의 float : left는 작동하지만 버튼에 <div> 대신 두 개의 <span> 태그를 사용하려고합니다.
shiftycow

이미 언급했듯이 float : left; #buyButton 및 #galleryButton에 추가 한 다음 clear로 다른 요소를 추가합니다. both; 플로팅을 제거합니다. 왜 div (블록 요소)를 사용하여 <a>를 래핑합니까?
ludesign

답변:


154

float:left;두 div 모두에 적용 하여 나란히 세워야합니다.


내가 착각 clear:both;했나요 , 아니면 어딘가에 들어갈 필요가 있나요? 나는 CSS 전문가는 아니지만 클리어를보기 위해 수레를 볼 때 일반적으로 보인다.
Brad Christie

4
clear:both정확히 그 반대입니다. "플로팅 요소 뒤의 요소는 주위로 흐릅니다.이를 방지하려면 clear 속성을 사용하십시오."
JCOC611

@ JCOC611 : 아, 일시적인 플로트 능력을 원할 때 일반적으로 명확하게 따르나요? 말이된다. 수업 감사합니다. ;-)
Brad Christie

7
"명확하게"(끔찍합니다, 알고 있습니다), <br style="clear: both;" />정렬 된 두 개 아래에 원하는 세 번째 div가있는 경우 사용해야 합니다.
타스

3
당신은이 같은 세 번째 DIV가 필요 @Tass : <div style="clear: both;">...</div>(더 BR은 필요 없음)
intrepidis

136

조심 float: left ... 🤔

… 요소를 나란히 정렬하는 방법에는 여러 가지가 있습니다.

다음은 두 가지 요소를 나란히 배치하는 가장 일반적인 방법입니다.

데모 : Codepen에서 아래의 모든 예제보기 / 편집


아래의 모든 예에 대한 기본 스타일…

다음 예제의 parentchild요소에 대한 몇 가지 기본 CSS 스타일 :

.parent {
  background: mediumpurple;
  padding: 1rem;
}
.child {
  border: 1px solid indigo;
  padding: 1rem;
}

왼쪽으로 뜨다

float솔루션을 사용하여 다른 요소에 의도하지 않은 영향을 미쳤습니다. (힌트 : clearfix 를 사용해야 할 수도 있습니다.)

HTML

<div class='parent'>
  <div class='child float-left-child'>A</div>
  <div class='child float-left-child'>B</div>
</div>

CSS

.float-left-child {
  float: left;
}

표시 : 인라인 블록

HTML

<div class='parent'>
  <div class='child inline-block-child'>A</div>
  <div class='child inline-block-child'>B</div>
</div>

CSS

.inline-block-child {
  display: inline-block;
}

참고 : div 태그 사이의 공백을 제거하여이 두 하위 요소 사이의 공백을 제거 할 수 있습니다.

표시 : 인라인 블록 (공백 없음)

HTML

<div class='parent'>
  <div class='child inline-block-child'>A</div><div class='child inline-block-child'>B</div>
</div>

CSS

.inline-block-child {
  display: inline-block;
}

표시 : 플렉스

HTML

<div class='parent flex-parent'>
  <div class='child flex-child'>A</div>
  <div class='child flex-child'>B</div>
</div>

CSS

.flex-parent {
  display: flex;
}
.flex-child {
  flex: 1;
}

표시 : 인라인 플렉스

HTML

<div class='parent inline-flex-parent'>
  <div class='child'>A</div>
  <div class='child'>B</div>
</div>

CSS

.inline-flex-parent {
  display: inline-flex;
}

표시 : 그리드

HTML

<div class='parent grid-parent'>
  <div class='child'>A</div>
  <div class='child'>B</div>
</div>

CSS

.grid-parent {
  display: grid;
  grid-template-columns: 1fr 1fr
}


2
예,하지만 사용하면 inline-block호환성 문제가 있다고 들었습니다 . 또한 그것을 사용하면 어떤 이점이 float있습니까?
sudo rm -rf

1
예, inline-block최신 버전이므로 targe 브라우저가 아직 지원하지 않을 수 있습니다 (브라우저 특정 속성이 많고 이에 대한 해결 방법도 있음). 장점은 포함하는 요소가 요소를 래핑한다는 것입니다. 함께 float하면 부모 요소에 CSS를 추가해야합니다.
Beau Smith

12

간단하게

<div align="center">
<div style="display: inline-block"> <img src="img1.png"> </div>
<div style="display: inline-block"> <img src="img2.png"> </div>
</div>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.