컨테이너 요소 상단에 인라인 블록 DIV 정렬


198

두 개의 inline-block div높이가 다른 경우 왜 두 개의 짧은 것이 컨테이너의 상단에 맞지 않습니까? ( 데모 ) :

.container { 
    border: 1px black solid;
    width: 320px;
    height: 120px;    
}

.small {
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue;    
}

.big {
    display: inline-block;
    border: 1px black solid;
    width: 40%;
    height: 50%;
    background: beige;    
}
<div class="container">
    <div class="small"></div>
    <div class="big"></div>
</div>

div용기 상단에 작은 것을 어떻게 정렬 할 수 있습니까?


정도처럼 플로트 : jsfiddle.net/RHM5L/12
— AO_


1
수직 정렬 적용 : 상단; .small class
— Deepu Sasidharan 님의

1
float을 사용하고 싶지 않습니다. 감사합니다 @ Mr.Alien 그것은 지금 작동합니다 :)
— Youssef

답변:


346

vertical-align이 기본 으로 기본 설정되어 있기 때문 입니다 .

vertical-align:top대신 사용하십시오 :

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue;   
    vertical-align:top;
}

http://jsfiddle.net/Lighty_46/RHM5L/9/

또는 @ f00644 는 float하위 요소 에도 적용 할 수 있다고 말했습니다 .


플로트를 적용하면 컨테이너가 내 경우처럼 플로트 어린이를 플로팅 한 경우 높이에 문제가 있습니다. 여기 기사를
— Youssef

1
왜 이것이 baseline기본값입니까? 나는 타당한 이유가 있다고 확신하지만 예상치 못한 결과는 이상하게 보입니다. 맨해튼 스카이 라인 효과로 끝납니다.
— Sridhar Sarnobat

글꼴에는 기준선이 있으므로 세로 맞춤은 글꼴 정렬에 사용됩니다. 기본값이 기준선으로 해석되는 것이 논리적입니다. 이와 같은 다른 경우에는 덮어 써야합니다.
— CEED

25

vertical-align두 개의 자식 div에 속성 을 추가해야합니다 .

.small항상 짧은 경우 속성을에 적용하면됩니다 .small. 하나가 가장 높은이 될 수 있다면 그러나, 당신은 모두 재산 적용해야합니다 .small및 .big.

.container{ 
    border: 1px black solid;
    width: 320px;
    height: 120px;    
}

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue; 
    vertical-align: top;   
}

.big {
    display: inline-block;
    border: 1px black solid;
    width: 40%;
    height: 50%;
    background: beige; 
    vertical-align: top;   
}

세로 정렬은 인라인 또는 테이블 셀 상자에 영향을 미치며이 속성에 대해 다른 값의 큰 숫자가 있습니다. 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align 을 참조하십시오.


-1
<style type="text/css">
        div {
  text-align: center;
         }

         .img1{
            width: 150px;
            height: 150px;
            border-radius: 50%;
         }

         span{
            display: block;
         }
    </style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type='password' class='secondInput mt-4 mr-1' placeholder="Password">
  <span class='dif'></span>
  <br>
  <button>ADD</button>
</div>

<script type="text/javascript">

$('button').click(function() {
  $('.dif').html("<img/>");

})

인라인에서 블록으로 범위의 기본 디스플레이 속성을 변경하면 트릭을 수행 할 것이라고 생각합니다.
— holyghostgym

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