ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • border vs outline
    CS 2024. 7. 30. 21:32

    CSS를 사용하면서 어떠한 태그에 테두리를 만들고자 하면 바로 떠오르는 CSS 속성은 border일 것이다.

     

    기본적으로 가장 많이 사용하는 속성이자, 어느 브라우저에서나 값이 동일하게 적용되는 속성이다.

    border의 경우 테두리를 모든 면에 줄 수도 있지만, 특정 테두리만 옵션을 줄 수도 있다는 장점이 있다.

     

    하지만 이 border만이 테두리를 줄 수 있는 건 아니다.

    outline이나 box-shadow 같은 속성들로도 테두리 효과를 줄 수 있다.

     

    이 중 오늘은 outline이라는 속성과 이 border 속성의 차이를 알아보고자 한다.

     

    둘의 가장 큰 차이는 다음과 같다.

     

    ⭐️ border과 outline ⭐️

    border

    border를 적용하면 선 두께 만큼 레이아웃이 변한다. 

     

    outline

    outline을 적용하면 레이아웃을 유지한 체 선을 그린다.

     

    즉, 레이아웃에 영향을 주는가 아닌가로 분류할 수 있는 것이다.

     

     

    위 사진을 보면 더 이해하기 쉬울 거다.

    outline은 요소를 눈에 띄게 하기 위해 테두리(border)의 바깥쪽에 그려지는 선이다.

     

    나 같으면 여기서 outline이 레이아웃에 영향을 주지 않으니까 border보다 사용하기 더 편하지 않을까 하는 생각이 들기도 했다.

     

    하지만, border모든 브라우저에서 인식을 할 수 있지만 outline그렇지 않다는 점도 문제가 된다.

    그래서 사람들이 테두리하면 바로 border을 많이 떠올리곤 하는 것이다.

     

    또한 outline은 border와 다르게 테두리 적용이 내 마음처럼 적용할 수 있는 부분이 아니다.

    위에서 border는 모든 면에도 테두리를 적용할 수 있지만, 내가 선택한 부분 일부분에만 테두리를 넣을 수도 있다고 했는데, outline은 이렇게 자유로운 border와 다르게 상하좌우 모든 테두리에 속성을 필수적으로 적용할 수 밖에 없다.

     

    ❗️ 결론 ❗️

    border가 더 사용에 자유롭고, 모든 브라우저에서 인식할 수 있다고 해서 무조건 적으로 border만 사용할 필요는 없다.

     

    때로는 레이아웃에 영향을 안주면서 테두리를 줘야할 경우가 생길 수 있다.

     

    그것을 위해 outline이 존재하는 거고, 다양한 디자인으로 웹을 꾸미는 만큼 이러한 속성들의 다양성을 알고 필요에 맞춰 유용하게 사용하는 것이 좋다.

    'CS' 카테고리의 다른 글

    throttle과 debounce  (0) 2024.08.02
    Javascript 이벤트 전파와 이벤트 위임  (0) 2024.08.02
    Web Layout (flex와 grid)  (0) 2024.07.29
    XSS(Cross Site Scripting)  (1) 2024.07.15
    CSRF(Cross Site Request Forgery)  (0) 2024.07.15
Designed by Tistory.