2024. 2. 28. 21:05ㆍCSS
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
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 {
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
'CSS' 카테고리의 다른 글
[CSS] 반응형 웹페이지, object-fit 속성으로 미디어 컨텐츠를 완벽히 제어하기 (0) | 2024.03.06 |
---|---|
[CSS] 노치(Notch)와 홈 바(Home Bar)에 대응하는 CSS 환경 변수(env()) 활용 방법 (2) | 2024.03.05 |
[CSS] 스크롤바(scrollbar) 스타일 제거하는 방법 (1) | 2024.02.27 |
[SCSS] 자연스러운 전환을 위한 Overlay 팝업의 Dim 영역 처리 (0) | 2024.01.17 |
[CSS] SCSS를 활용한 동적 Spinner 애니메이션 만들기 (1) | 2024.01.15 |