2009-06-17 2 views
4

나는 수평 레이아웃, 그래서 같은 양식을 시도하고 있습니다 :type = image의 입력을 type = text의 입력으로 수직 정렬하기위한 휴대용 HTML/CSS?

<form id="foo" name="foo" method="post" action="fooaction"> 
    <p>Enter a foo: 
     <input type="text" id="fooText" name="fooText"value=""/> 
     <input type="image" name="yes" id="fooSubmitYes" value="1" src="yes.png" title="Yes" width="24" height="24"/> 
    <input type="image" name="no" id="fooSubmitNo" value="0" src="no.png" title="No" width="24" height="24"/> 
    </p> 
</form> 

내가 가진 문제는 첫번째 입력, 텍스트 상자, "는 foo를 입력 :"물론 텍스트와 정렬이다, 다른 두 입력은 텍스트 상자에 매우 잘 맞지 않습니다. 그들은 약 7 픽셀이 너무 높습니다. 이러한 모든 요소의 여백 및 패딩은 0으로 설정됩니다.

이미지 입력에 align = "middle"을 추가하면 12 픽셀 아래로 이동하므로 5 픽셀이 너무 낮아 내 마음이 움직이지 않습니다. 좀 더 혼란스럽게도, CSS vertical-align 속성은 입력 요소에 영향을 미치지 않으므로 (무시합니다) CSS에서이를 수정하는 방법을 상상해보십시오.

캡션, 입력 텍스트 상자 및 가로 레이아웃과 일관된 세로 맞춤을 가진 두 개의 이미지 제출 양식을 만드는 브라우저 휴대용 방법을 알고 있습니까? 그렇지 않다면 Firefox에서 작동하는 것을 해결할 것입니다 :) (내 사용자의 95 %).

답변

7

이 추가 다음 <input type="image"> 요소에

style='vertical-align: bottom' 

는 파이어 폭스와 IE 나에게 좋아 보인다.

이렇게하면 이미지의 아래쪽 가장자리가 입력 상자의 아래쪽 가장자리와 맞 춥니 다.

(기본적으로 너무 높습니다. 인라인 이미지의 하단 가장자리가 텍스트의 기준선과 일치합니다. 아래의 틈은 텍스트 디엔더 (q, p, g 등)를 수용하기위한 것입니다. .)

"CSS 수직 정렬 속성이 입력 요소에 영향을 미치지 않습니다."라는 말이 무슨 뜻인지 잘 모르겠지만 제게는 효과가 있습니다. 아마도 다른 문제가 있었기 때문일 수 있습니다.

+1

와우. 나는 그것을 시도하지 않았다는 것을 믿을 수 없다. 그것은 나를 위해 일했습니다! 감사! CSS 문서에서는 img 및 div 요소 만 가운데 정렬, 세로 정렬 일 수 있다고 말하면서 중간에 영향을주지는 않았지만 아래쪽으로는 효과가 있다고했습니다. 왜 정렬 = 중간은 하단보다 낮습니다, 나도 몰라. 이 물건들은 너무 모순되고 끔찍합니다. 다시 한번 감사드립니다! – Sean

+1

@Sean : 다양한 옵션이 여기에 설명되어 있습니다. http://htmlhelp.com/reference/css/text/vertical-align.html "middle"은 "bottom"보다 낮습니다. "middle"은 " 이미지는 텍스트의 소문자 중간에 이미지 "로 표시되는 반면,"하단 "은"이미지의 아래쪽을 이미지의 가장 아래쪽에 배치합니다. "를 의미합니다. 값은 의미를 찾아 보지 않고도 의미를 갖기에는 너무 축약되어 있습니다. – RichieHindle