2014-09-30 2 views
0

양식과 div 옆에 div와 div를 모두 세로로 가운데 놓을 수 있습니까? 두 컨테이너가 내부 내용 높이 공간보다 작은 경우 스크롤 할 수 있어야합니다.CSS가있는 가운데 두 요소

HTML :

<div id="outer_1"> 
    <div id="inner_1"> 
    <form id="form"> 
     <input/> 
     <input/> 
    </form> 
    <div id="login-request"> 
     If you do not have a login, 
     <span>touch here</span> 
    </div> 
    </div> 
</div> 

CSS :

#outer_1 { 
    width: 400px; 
    height: 400px; 
    border-style: solid; 
    border-width: 2px; 
} 

#inner_1 { 
    width: 200px; 
    height: 100%; 
    display: table; 
    border-style: solid; 
    border-width: 2px; 
    border-color: red; 
    margin-left: auto; 
    margin-right: auto; 
} 

#form { 
    text-align: center; 
    vertical-align: middle; 
} 

#login-request { 
    text-align: center; 
    vertical-align: middle; 
} 

JSFiddle을 고려하시기 바랍니다.

+0

표시해야 할 수도 있습니다 : 테이블 셀; 디스플레이에 다시 : 인라인 블록; ? –

답변

0

이 시도 양식 모두가 수평 인 메시지 정렬 수직 센터는 http://jsfiddle.net/4vtf5cn6/10/

<div id="outer_1"> 
    <div id="inner_1"> 
    <form id="form"> 
     <input/> 
     <input/> 
     <div id="login-request" class="login-request-alert"> 
     If you do not have a Travelport Mobile Agent login, 
     <span class="urlink">touch here</span> 
     </div> 
    </form> 
    </div> 
</div> 
#outer_1{ 
    width: 400px; 
    height: 400px; 
    border-style: solid; 
    border-width: 2px; 
} 
#inner_1{ 
    padding-top:30px; 
    width: 200px; 
    height: 100%; 
    display: table; 
    border-style: solid; 
    border-width: 2px; 
    border-color: red; 
    margin-left: auto; 
    margin-right: auto; 
} 
#form{ 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    float:left; 
} 
#login-request{ 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    float:left; 
} 
1

두 div의 float:left으로 문제를 해결할 수 없습니까?

JSFiddle : http://jsfiddle.net/4vtf5cn6/6/

추가 라인 **으로 표시됩니다, 그래서 그냥 아래의 코드를 복사하지 않는다)

#outer_1{ 
    width: 400px; 
    height: 400px; 
    border-style: solid; 
    border-width: 2px; 

} 

#inner_1{ 
    **padding-top:30px; 
    width: 200px; 
    height: 100%; 
    display: table; 
    border-style: solid; 
    border-width: 2px; 
    border-color: red; 
    margin-left: auto; 
    margin-right: auto; 
} 

#form{ 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    **float:left; 
} 
#login-request{ 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    **float:left; 
} 

결과 :

enter image description here

+0

input과 login-request가 모두 빨간색 사각형의 중심에 나타나지 않습니다. – mluis

+0

결과 이미지에서 볼 수 있듯이 저와 함께합니다. – Rvervuurt

+0

빨간색 사각형의 중심은 가로 및 세로 중심점에 있어야합니다. – mluis

0

시도 이 DEMO

#form{ 
    display: inline-block; 
    text-align: center; 
    vertical-align: middle; 
} 
#login-request{ 
    display: inline-block; 
    text-align: center; 
    vertical-align: middle; 
} 
+0

"inlinne"또한 아직 데모에 있습니다. – Rvervuurt

+0

업데이트 데모))))) –

+0

입력 및 로그인 요청이 모두 빨간색 사각형의 중심에 나타나지 않습니다. – mluis

0

옵션은 CSS 규칙의 margin-top 속성에 대한 백분율 값일 수 있습니다. 예를 들어 :

.container { 
 
    width: 150px; 
 
    height: 200px; 
 
    border: 3px solid orange; 
 
} 
 
.child { 
 
    /* Center horizontally */ 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    
 
    /* Center vertically */ 
 
    margin-top: 50%; 
 
    
 
    width: 30px; 
 
    height: 40px; 
 
    border: 3px solid yellowgreen; 
 
}
<div class="container"> 
 
    <div class="child"></div> 
 
</div>

0

가장 쉬운에보고 방법은 #form 및을 묶는 <div>을 추가하는 것입니다.. 마찬가지로 :

<div id="outer_1"> 
    <div id="inner_1"> 
     <div id="enclose"> 
      <form id="form"> 
       <input/> 
       <input/> 
      </form> 
      <div id="login-request" > 
       If you do not have a login, 
       <span>touch here</span> 
      </div> 
     </div> 
    </div> 
</div> 

는 CSS에서 :

#enclose { 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    overflow-y: auto; 
} 

과 스타일 #form하고 당신이 그것을 필요로 #login-request

+0

두 div를 수직 정렬 . 입력 및 로그인 요청은 여전히 ​​다른 가로 옆에 오른쪽으로 나타납니다 – mluis

+0

# 너는 필요한 너비를 제공하십시오. #form 및 # login-request에 css : position : relative를 추가합니다. 너비 : 100 %; – lili

관련 문제