Introduction
세번째 Rounded Box입니다. 지난번 고정폭 박스에 이어 이번에는 유동폭 박스를 만들어보겠습니다. 먼저, 방탄웹 책에 있는 라운드 박스입니다.
- 고정폭 박스 - 방탄웹 방법
- 고정폭 박스 - 망고의 방법
- 유동폭 박스 - 방탄웹 방법
- 유동폭 박스 - 이외의 방법
- 아주 조금 먼 미래
목차
유동폭 박스 - 방탄웹 방법
다음과 같은 모양의 박스입니다.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In velit erat, dignissim at, lacinia ac, tincidunt in, neque.
지난번처럼 2개의 이미지를 사용하는데 이번에는 상/하가 아닌 좌/우로 나눈 이미지를 사용합니다. 좌측 이미지는 라운드 코너를 표현할 수 있는만큼의 크기이고 바탕 이미지로 보여질 우측 이미지는 필요한 만큼 크게 디자인 합니다.
좌측 이미지(rBox3_bg_left.gif)

우측 이미지(rBox3_bg_right.gif)
고정폭이 하단 이미지를 바탕에 깔고 그 위에 상단 이미지를 덧씌웠듯이 이번에도 비슷하게 상단 우측을 바탕에 깔고 상단 좌측 이미지를 덧씌우고, 다시 하단 우측을 바탕에 깔고 하단 좌측 이미지를 덧씌우게 됩니다. 그러기 위해서 우측 이미지는 충분히 크게 만들어야 합니다. 설명이 조금 복잡한가요? 그림으로 보겠습니다.

유동폭 박스 레이아웃
이 방식으로 유동폭 라운드 박스를 만들기 위해서는 HTML 태그가 위와 비슷한 방식으로 코딩되어있어야 합니다. 가장 바깥으로 div 태그의 영역이 있고 그 안쪽으로 텍스트가 들어가는 p 태그의 영역이 있습니다. 여기까지가 상단 좌우측 라운드를 위한 태그입니다. 그리고 다시 하단 좌우측 라운드를 위한 div 태그가 있고 그 안쪽으로 p 태그의 영역이 있습니다. (방탄웹 책에는 div 태그를 쓰지 않고 em 태그에 display 속성값을 block으로 주는 방법을 사용하고 있습니다. 블록 엘리먼트가 아닌 태그를 블록처럼 사용하는 방법이죠. 자세한 내용은 책을 참고하시길)
먼저, 가장 바깥의 div영역에는 상단 우측 바탕 이미지가 깔립니다. 그리고 안쪽 p1의 영역에 상단 좌측 이미지를 덧씌웁니다. 여기까지면 상단 좌우측 라운드가 만들어집니다. 이어서 innerDiv의 영역에 하단 우측 바탕 이미지를 깔고, p2 태그에 하단 좌측 이미지를 덧씌웁니다. 네 모서리 완성!
[HTML] 코드
<p class="p1">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
<div class="innerDiv">
<p class="p2">In velit erat, dignissim at, lacinia ac, tincidunt in, neque.</p>
</div>
</div>
[CSS] 코드
background: url(rBox3_bg_right.gif) no-repeat top right;
}
.p1 {
padding: 9px 9px 0 9px;
background: url(rBox3_bg_left.gif) no-repeat top left;
}
.innerDiv {
background: url(rBox3_bg_right.gif) no-repeat bottom right ;
}
.p2 {
padding: 0 9px 9px 9px;
background: url(rBox3_bg_left.gif) no-repeat bottom left;
}
이 방법으로 만들어진 라운드 박스는 폭과 높이가 모두 유동적입니다.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In velit erat, dignissim at, lacinia ac, tincidunt in, neque.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
In velit erat, dignissim at, lacinia ac, tincidunt in, neque.
하지만, 이 방식의 라운드 박스는 비슷한 방식으로 만들어진 고정폭 박스와 마찬가지로 바탕을 이루게되는 우측 이미지의 크기를 벗어나면 박스가 깨진다는 것과 HTML코드에 태그 엘리먼트가 4개 이상 존재해야한다는 단점이 있습니다. 이보다 적은 태그가 존재할 경우 디자인을 위해 태그를 추가해야하는 경우가 생길 수 있는데, 이는 디자인과 컨텐츠를 분리하자는 웹표준의 철학에 위배됩니다. 그리고 태그에 맞추어 이미지를 지정하는 작업과 margin, padding을 주는 작업이 간단하지는 않습니다. 물론, 상황과 필요에 따라 기술은 응용해야하는 것이겠지만 단점과 장점은 분명히 알고 사용하는 것이 좋을 것 같습니다. 다음은 이미지를 사용하지 않음으로써 무한 확장이 가능한 유동폭 라운드 박스를 만들어보도록 하겠습니다.
PS) IE6로 보니 박스가 깨져보이는군요. 방탄웹은 무신 방탄웹이냐!고 하셔도 할말 없는 상황인데요. 파폭에서 제대로 보이는 것으로 보아 IE와 관련된 버그가 아닐까 생각됩니다. hack을 찾아보고 있는데 보고되어있는 방법들은 안먹는군요. 좀 더 공부를 해야겠습니다.
참고서적
Posted by 망고


