[CSS] outline이나 border 속성이 아닌 box-shadow 속성으로 선을 그리는 방법 (feat. box-sizing: border-box;)

2024. 2. 28. 21:05CSS

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

반응형

CSS의 box-shadow 속성은 그림자 효과를 만들 때 주로 사용됩니다. 그러나 이 속성을 활용하여 선을 그릴 수도 있습니다. 이번 포스트에서는 outline이나 border 속성이 아닌 box-shadow를 사용하여 선을 그리는 방법에 대해 알아보겠습니다.

box-shadow 속성 이해하기

box-shadow의 기본값은 none입니다. 이 속성은 수평 오프셋, 수직 오프셋, 흐림 정도, 퍼지는 정도, 색상 등을 지정하여 사용합니다.

box-shadow: h-offset v-offset blur spread color inset;

 

h-offset: 그림자의 좌우 위치 설정

v-offset: 그림자의 상하 위치 설정

blur: 그림자의 흐림 정도

spread: 그림자가 퍼지는 정도, 크기

color: 그림자 색상

inset: 옵션, 요소 내부에 그림자 표현

box-shadow 속성으로 테두리 그리는 방법

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  /* border: 1px solid blue; */
  font-size: 3em;
  box-shadow: 0 0 0 1px red;
}

box-shadow로 테두리 그리기

 

테두리 왼쪽만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: -1px 0 0 0 red; /* 왼쪽(left) */
}

왼쪽만 그리기

테두리 오른쪽만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: 1px 0 0 0 red; /* 오른쪽(right) */
}

오른쪽만 그리기

 

테두리 위쪽만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: 0 -1px 0 0 red; /* 위(top) */
}

윗쪽만 그리기

 

테두리 아래쪽만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: 0 1px 0 0 red; /* 아래(bottom) */
}

아랫쪽만 그리기

 

테두리 좌우만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: -1px 0 0 0 red, 1px 0 0 0 red; /* 좌우(left, right) */
}

좌우만 그리기

테두리 위/아래만 표현해 보기

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid blue;
  font-size: 3em;
  box-shadow: 0 -1px 0 0 red, 0 1px 0 0 red; /* 위아래(top, bottom) */
}

위/아래만 그리기

 

여기서 주목! (Attention, please.)

box-sizing 속성을 사용하여 요소의 크기를 제어할 때, 특히 패딩(padding)과 테두리(border)를 포함하는 border-box;를 사용할 때 알아두면 유용한 점이 있습니다.

border, outline, box-shadow들의 속성을 사용하여 모두 선(line)을 표현할 수 있었는데요~

box-sizing: border-box; 에서의 테두리 포함에는 border만 이에 해당합니다. 모두 선(line)을 표현할 수 있지만 실제 요소의 크기에는 영향을 주지 않습니다.

  • border: border는 요소의 외곽 경계를 형성하는 선입니다. box-sizing:border-box;를 사용하면 border의 두께가 요소의 크기에 포함됩니다.
  • outline: outline은 요소 주위에 그려지는 테두리이지만, 실제 요소의 크기에는 영향을 주지 않습니다. 따라서 box-sizing 속성과는 관련이 없습니다. 저는 주로 요소의 크기나 범위를 확인하는 용도로 개발자도구에서 스타일에 선언하여 시각적으로 많이 활용하는 편입니다. 실제 요소의 크기에 영향을 주지 않기 때문이죠~
  • box-shadow: box-shadow는 요소 주위에 그림자를 만드는 데 사용됩니다. 그림자는 요소의 크기에 영향을 주지 않으며, 따라서 box-sizing 속성과는 관련이 없습니다. 

 

 

 

이렇게 outline이나 border 속성이 아닌 box-shadow 속성으로 선을 그리는 방법에 대해서 알아보았습니다.

 

 

 

 

 

[Utility] Snipaste - 무료 캡쳐 도구, 핀(Pin) 고정, 클립보드(Clipboard), 색상 추출(Color Picker)

스니페이스트(Snipaste)는 화면 캡쳐부터 다양한 편집 기능을 제공하여 작업 효율성을 높여주는 도구입니다. 가장 매력적인 기능으로 핀 고정이 있고, 스크린샷을 저장할 수 있음은 물론이고, 클

dev-chim.tistory.com

 

[git] README.md 파일 작성시, Markdown 문법(Syntax) 사용법

README.md 파일 작성 시, Markdown 문법(Syntax) 사용법에 대해서 알아봅시다. README.md 파일 이란? README.md 파일은 주로 소프트웨어 프로젝트의 루트(Root) 디렉터리에 위치하며, Github, Gitlab, Bitbucket 등의 코

dev-chim.tistory.com

 

[Javascript] 다양한 방법으로 스타일 적용하기

HTMLElement.style const ele = document.querySelector('.ele'); ele.style.display = 'flex'; /* 스타일 속성 해제(삭제)하기 */ ele.style.display = ''; HTMLElement.style.cssText const ele = document.querySelector('.ele'); ele.style.cssText = `display

dev-chim.tistory.com

 

초보자를 위한 Safari 브라우저 개발자 도구 설정 방법

Safari 브라우저 개발자 도구 세팅 방법 Safari 브라우저의 개발자 도구는 웹 개발을 보다 효과적으로 수행할 수 있게 도와주는 강력한 도구입니다. Safari의 개발자 도구를 활성화하는 방법에 대해

dev-chim.tistory.com

 

[CSS] 스크롤바(scrollbar) 스타일 제거하는 방법

스크롤바 동작은 유지하면서 스타일을 없애는 방법에 대해 알려드리겠습니다. 대부분의 웹 브라우저는 스크롤바에 대해 일부 CSS 스타일을 지원하므로, 스크롤바를 숨기거나 사용자 정의할 수

dev-chim.tistory.com

 

 

반응형