[CSS] 요소 영역의 사이즈 변화 없이 border 주는 방법

CSS로 레이아웃을 잡을 때 보통 영역을 정확하게 확인하기 위해 해당 영역에 색상을 입히거나 임의의 텍스트를 넣어줍니다.

저는 보통 border style을 사용하는데 border는 상하좌우 1px씩을 더 먹게 되어 사이즈가 변하게 됩니다.

예를 들어 가로 300px, 세로 400px의 DIV 영역을 만들었을 경우, 여기에 border:1px solid red; 스타일을 적용했을 경우 DIV영역은 가로 302px, 세로 402px가 됩니다.

이런 1~2px 차이때문에 레이아웃이 깨지는 경우가 생겨 확인하는데에 불편함이 있습니다. 하지만 border 말고도 비슷한 역할을 하는 스타일이 존재합니다. outline 이라는 스타일입니다. 사용법은 border와 같고 해당 영역의 사이즈에 변화를 주지 않습니다.

단 border-left, border-top 같은 부분 적용은 안되는 듯합니다. 아마 다른 방법이 있는 듯합니다. 이 부분은 좀 더 찾아보고 다음 포스팅에서 다루겠습니다.

[CSS] Table의 cellpadding, cellspacing, border 속성 style로 정의하기

옛날 우리는 Table을 이용해 레이아웃을 짜던 시절.. 거의 외우다 시피한 속성들이 있었죠. cellpadding, cellspacing, border..

일명 DIV 코딩이라 불리우는 div 레이아웃을 사용하는 이 시점에서도 Table을 레이아웃으로 사용하지 않는다 뿐이지 아직도 Table은 유용한 녀석입니다.

하지만 예전같이 Table 태그라인 안에 속성을 박아넣고 W3C 검증을 받으면 Warning 메세지를 볼 수 있습니다. 즉, 형태를 꾸며주는 태그 속성대신 css를 이용하는 것을 권장하는 겁니다.

이 것이 과거에 우리가 즐겨 사용하던 방법입니다. 거의 기계적으로 혹은 반사적으로 cellpadding과 cellspacing 그리고 border를 속성으로 지정해주곤 했습니다.

그럼 이걸 어떻게 css로 정의할 수 있을까요..

 

이런식으로 정의할 수 있겠습니다. 하지만 저렇게 style을 인라인으로 입력하는 경우는 드믈죠.

 

다시 정리해보겠습니다.

정리를 하면 이렇습니다. cellpadding은 td의 padding css 속성이, cellspacing은 table의 border-spacing css 속성이, border는 table의 border css 속성이 대신 역할을 하게 됩니다.