아래 코드를 사용하면 3개의 input 태그는 수직으로 가운데 정렬이 되는데,
나머지 img 태그는 위쪽으로 붙어 버린다.
img 태그에 padding 이나 margin 스타일을 먹여도 요지부동.
<div> <input type="text" name="name1" value="" size="3" readOnly> - <input type="text" name="name2" value="" size="3" readOnly> <input type="text" name="name3" value=""> <img src="./btn_address.gif" onClick=""> </div> |
역시 구관이 명관이라고, table 태그로 전환하면 해결이 되는데..
만약 td 태그 안에 여러 내용이 혼합되어 사용된다면 td 태그에 속성을 더 설정해 주어야 한다.
<table> <tr> <td><input type="text" name="name1" value="" size="3" readOnly></td> <td>-</td> <td><input type="text" name="name2" value="" size="3" readOnly></td> <td><input type="text" name="name3" value=""></td> <td><img src="./btn_address.gif" onClick=""></td> </tr> </table> |
아래와 같이 vAlign 속성을 middle 로 주거나, align 속성에 middle 을 주면 해결.
vAlign 에 middle 을 주거나 align 에 center 를 주는 것은 봤지만, align 에 middle 을 준다꼬..? 한번 해 보시라.
그런데, 코드가 복잡해 졌다.. 이거는 조금 곤란해 졌네.. 크윽.
<table> <tr> <td align="middle"><input type="text" name="name1" value="" size="3" readOnly></td> <td align="middle">-</td> <td align="middle"><input type="text" name="name2" value="" size="3" readOnly></td> <td align="middle"><input type="text" name="name3" value=""></td> <td align="middle"><img src="./btn_address.gif" onClick=""></td> </tr> </table> |
다시 div 형식으로 돌아와서, input 과 img 에 vertical-align:middle 스타일을 먹여 보자.
으음.. 이제는 수직으로 가운데 정렬이 되는 모습이다.
그런데 반복적인 태그가 가독성을 떨어뜨린다..
<div> <input type="text" name="name1" value="" size="3" readOnly style="vertical-align:middle"> - <input type="text" name="name2" value="" size="3" readOnly style="vertical-align:middle"> <input type="text" name="name3" value="" style="vertical-align:middle"> <img src="./btn_address.gif" onClick="" style="vertical-align:middle"> </div> |
한눈에 코드가 들어오지 않는 것은 마찬가지.. 스타일을 위로 뽑아서 통합해 보자.
input 이나 img 에 세로정렬 스타일을 먹이든 먹이지 않든 어디에서나 비슷하게 적용될 것이기 때문에,
상기와 같은 코드로 가도 되겠다.
그런데, 만약 input 이나 img 가 동일 웹페이지의 다른 곳에도 사용되고, 다른 곳에서는 이런 스타일이 적용되면
안 되는 상황에서는 어떻게 해야 할까..?
<style> <div> |
자, 아래와 같이 input 태그에서 class 속성값이 va 인 경우에만 vertical-align:middle 스타일이 먹게 하면 되겠다.
input.va 대신에 input#va 를 사용한다면 class 대신에 id 를 사용하면 되는데,
아래와 같은 경우에는 input 이 여러개 이므로, id 보다는 class 방식으로 처리하는 것이 무난하겠다.
input 이나 img 태그와 상관없이 vertical-align:middle 스타일이 먹게 하려면 어떻게 해야 할까..?
<style> input.va {vertical-align:middle} img.va {vertical-align:middle} </style> <div> |
아래와 같이 va Alias 앞에 '.' 만 찍으면 된다. 이때도, 만약 하나의 id 에만 스타일이 먹게 하려면 #.va 로 정의하면 된다.
<style> .va {vertical-align:middle} </style> <div> |
아무튼, 기본적인 설정으로 기능만 맞추면 되지뭐, 이렇게 생각했다가,
다시 예쁘게 다듬으려니까 코드가 점점 복잡해진다..
그러나, 어쩌랴.. 예쁜 떡이 더 맛있는걸..
'컴퓨터 이야기 > 프로그래밍' 카테고리의 다른 글
이클립스 Revert to Base, 잘못 수정한 소스를 최종적으로 저장했던 내용으로 원복 (0) | 2009.08.10 |
---|---|
자바스크립트나 스타일시트를 JSP 에서 구현하는 이유..? (2) | 2009.08.08 |
Ajax 사용할 때 알아 두면 편리(?)한 4가지 이야기 (6) | 2009.07.30 |
오라클 DB 의 Lock 을 염두에 둔, 레코드 업데이트 (4) | 2009.07.17 |
SSL, 이거 항상 좋은 것만은 아니네요. 사용자가 선택하게 해야 한다라니.. 유감입니다. (0) | 2009.07.16 |