블로그에 유용한 CSS 2 - border 속성으로 테두리 표시하기

2011. 4. 16. 02:05IT/Tistory Tips

border 속성은 단어 뜻 그대로 테두리를 표시하는 것이다. HTML 문서의 모든 요소는 자기만의 일정한 영역을 가진다. 배경색이나 테두리가 없으면 시각적으로 표시되진 않지만, 사실은 자신의 영역을 차지하고 있다. border 스타일을 지정하면 사용자가 지정한 스타일로 이 영역의 가장자리를 표시한다.

a border span border

p border

div border
table border

예를 들면 위와 같은 것이다. 너비나 높이 속성이 지정되지 않았을 때 a와 span 요소는 글자가 입력된 부분만 영역으로 갖으므로 연달아서 표시된다. p 요소, div 요소는 문단과 특정 영역을 나타내므로 가로 전체를 기본 영역으로 가진다. table 요소 역시 td나 th에 입력된 내용만큼을 자신의 영역으로 가진다. border 스타일을 적용하면 해당 요소를 다른 요소와 시각적으로 구분할 수 있어서 내용에 집중하기 좋다.

border 속성은 크게 세 가지로 나뉜다. 테두리 두께를 정의하는 border-width, 테두리 모양을 정의하는 border-style, 테두리 색을 정의하는 border-color가 그것이다. 실제로 속성을 적용해보자.

<예제 1>

HTML, CSS 코드
<div style="border-width:6px; border-style:double; border-color:orange; width:60%; margin:0 auto; padding:10px; text-align:center">
Border Style Sample
</div>
결과
Border Style Sample

border-width:6px에서 테두리 두께가 6픽셀이라는 것, border-style:double에서 테두리 모양이 두 줄이라는 것, border-color:orange에서 테두리 색이 오렌지 색이라는 것을 알 수 있다. border-width는 테두리 두께로, 길이 단위를 사용하면 된다. border-color는 테두리 색이니 색 이름이나 HTML, RGB 색상 코드를 입력하면 된다. 그럼 border-style은 어떻게 지정해야 할까? border-style은 총 8 가지이며 각 스타일 적용 예는 아래 표에서 확인할 수 있다.

<<CSS border 속성>>
<순서>border: [테두리 두께] [테두리 모양] [테두리 색]
<border-style 속성>border-style: solid
Border Style - solid
border-style: double
Border Style - double
border-style: dotted
Border Style - dotted
border-style: dashed
Border Style - dashed
border-style: groove
Border Style - groove
border-style: ridge
Border Style - ridge
border-style: inset
Border Style - inset
border-style: outset
Border Style - outset
<적용 예>
border: 3px dashed steelblue

border-style 중 위의 네 가지는 평면적이고 아래 네 가지는 음영을 이용해 약간 입체감이 있다. groove/ ridge, inset/ outset은 서로 반대되는 속성이며 둘씩 짝을 이룬다. 또한, border 속성은 font 속성과 같이 두께, 모양, 색을 border라는 하나의 속성으로 묶어서 표현할 수도 있다. 묶어서 표현할 땐 위 표의 맨 위 줄처럼 border: [테두리 두께] [테두리 모양] [테두리 색] 순서로 적용할 수 있다.

여기서 생각해봐야 할 것이 있다. 만약 상하좌우에 똑같은 두께를 사용하지 않고 왼쪽 테두리만 두껍게 한다면? 테두리를 위, 아래에만 표시하려면? 이런 기능을 위해 border 속성은 top, right, bottom, left로 각 테두리의 개별 속성을 정의할 수 있게 만들어졌다. 예를 들어 border-top-width: 3px이라고 스타일을 정의하면 해당 요소의 위쪽 테두리만 3픽셀이 표시된다. 실제로 상하좌우 중 한 군데만 스타일을 적용한 예를 아래 표에서 살펴볼 수 있다.

통합 스타일 속성적용 예
border-top
border-top:10px solid orange
border-right
border-right:10px solid crimson
border-bottom
border-bottom:10px dashed steelblue
border-left
border-left:18px solid teal
개별 스타일 속성적용 예
border-top-width
border-top-style:solid; border-top-color:orange; border-top-width:10px
border-right-width
border-right-style:solid; border-right-color:orange; border-right-width:10px
border-bottom-width
border-bottom-style:solid; border-bottom-color:orange; border-bottom-width:10px
border-left-width
border-left-style:solid; border-left-color:orange; border-left-width:10px
border-top-style
border-top-width:10px; border-top-color:orange; border-top-style:dotted
border-right-style
border-right-width:10px; border-right-color:orange; border-right-style:dotted
border-bottom-style
border-bottom-width:10px; border-bottom-color:orange; border-bottom-style:dotted
border-left-style
border-left-width:10px; border-left-color:orange; border-left-style:dotted
border-top-color
border-top-width:10px; border-top-style:solid; border-top-color:red
border-right-color
border-right-width:10px; border-right-style:solid; border-right-color:red
border-bottom-color
border-bottom-width:10px; border-bottom-style:solid; border-bottom-color:red
border-left-color
border-left-width:10px; border-left-style:solid; border-left-color:red

상하좌우 개별 속성을 지정할 수 있다니, Good! 그런데 만약 상하좌우에 각각 서로 다른 속성을 지정하면 스타일이 너무 길어진다. 예를 들어 왼쪽 테두리는 6픽셀, 나머지는 1픽셀로 지정하려면 border-left:6px solid #ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; border-right:1px solid #ccc와 같이 스타일 정의 부분이 굉장히 길어진다. 이럴 때 간단하게 줄여서 사용하는 방법이 있다. 각 속성을 상/ 우/ 하/ 좌 순서로 따로 지정하는 방식, 좌우 속성이 같을 때 상/ 좌우/ 하처럼 좌우를 묶어서 지정하는 방식, 상하가 같은 속성, 좌우가 같은 속성을 지닐 때 상하/ 좌우를 묶어서 지정하는 방식이 그것이다. 상하좌우를 지정하는 이 방식은 border뿐 아니라 margin, padding 등 모든 스타일 속성에 적용되니 잘 기억해두는 것이 좋다. 상하좌우에 서로 다른 스타일을 적용할 때 보통 다른 두 속성은 고정되고 한 속성만 다르게 적용할 때가 있다. 예를 들자면 테두리 색과 모양은 모두 같은데 테두리 두께만 상하좌우가 다른 상황이다. 이럴 땐 테두리 색과 모양은 border 속성으로 지정하고 테두리 두께만 border-width 속성으로 상하좌우 값을 입력한다. 상세한 스타일 적용 예는 아래 표에서 확인할 수 있다.

상하좌우 지정 방식적용 예
border-width: 상 우 하 좌
border:solid orange; border-width:10px 4px 10px 4px
border-width: 상 좌우 하
border:solid orange; border-width:10px 4px 10px
border-width: 상하 좌우
border:solid orange; border-width:10px 4px
border-style: 상 우 하 좌
border:6px orange; border-style:double dotted double dotted
border-style: 상 좌우 하
border:6px orange; border-style:double dotted double
border-style: 상하 좌우
border:6px orange; border-style:double dotted
border-color: 상 우 하 좌
border:8px solid; border-color:orange steelblue orange steelblue
border-color: 상 좌우 하
border:8px solid; border-color:orange steelblue orange
border-color: 상하 좌우
border:8px solid; border-color:orange steelblue

위 표 내용을 실제로 적용할 땐 아래와 같은 형태가 된다. 아래에 지정된 스타일은 내 블로그 댓글에 댓글을 달았을 때 테두리 형태다.

border:solid crimson; border-width:1px 0 1px 6px; padding:10px

border 속성은 대부분 태그에 적용할 수 있으므로 글에서 특정 요소를 강조하거나 다른 부분과 구분할 때 유용하게 사용할 수 있다. table 태그로 표 만들기에서 봤듯이 표 모양을 구성하는데도 border는 큰 역할을 한다. 또 블로그 스킨을 꾸미거나 모양을 바꿀 때도 border 속성을 활용할 수 있다. :hover를 사용하면 위의 마지막 예처럼 마우스 커서에 따라 스타일이 바뀌는 테두리를 적용할 수도 있다.