Zero base

반응형 작업시에 미디어쿼리를 최소화로 잡는 법

수찌얌 2023. 3. 29. 16:24

반응형 웹사이트를 제작할 때, 미디어쿼리는 반드시 필요한 요소입니다.

다음은 미디어쿼리를 최소화하는 몇 가지 방법입니다.

1. Mobile-first 디자인: 모바일 화면을 먼저 디자인하고, 이후 데스크탑 화면을 디자인합니다.

이 방법을 사용하면 미디어쿼리를 최소화할 수 있습니다.

모바일 화면을 기준으로 디자인하면, 데스크탑에서는 추가적인 미디어쿼리가 필요하지 않을 수 있습니다.

 

2. 상속을 활용한 레이아웃: 상위 요소에서 레이아웃을 정의하면, 하위 요소에서는 해당 레이아웃을 상속받습니다.

이 방법을 사용하면 불필요한 미디어쿼리를 작성할 필요가 없습니다.

 

3. 유연한 그리드 시스템: 유연한 그리드 시스템을 사용하면, 화면 크기에 따라 그리드 시스템이 자동으로 조정됩니다.

이 방법을 사용하면 미디어쿼리를 최소화할 수 있습니다.

 

4. 미디어쿼리 그룹화: 비슷한 스타일을 가진 미디어쿼리를 그룹화하여 사용하면, 코드를 간결하게 유지할 수 있습니다.

예를 들어, 768px 이하와 768px 이상에 대한 스타일을 각각 작성하는 대신,

768px 이하와 768px 이상을 하나의 미디어쿼리 안에 작성할 수 있습니다.

 

5. 재사용 가능한 클래스: 반복되는 스타일이 있는 경우, 재사용 가능한 클래스를 만들어 사용하면

미디어쿼리를 최소화할 수 있습니다. 예를 들어, 모바일 화면과 데스크탑 화면에서

모두 적용되는 스타일이 있는 경우, 해당 스타일을 클래스로 정의하고,

미디어쿼리에서 해당 클래스를 사용하여 스타일을 적용할 수 있습니다.

 

그렇다면 반응형에 유용한 단위는 ?

1. em

em은 "현재 요소"의 font-size에 상대적으로 크기를 지정하는 단위입니다.

이를 사용하면 웹사이트의 폰트와 레이아웃 요소 크기를 상대적으로 지정할 수 있습니다.

 

반응형 디자인에서는 em을 사용하여 레이아웃과 폰트 크기를 지정할 때,

미디어쿼리를 사용하여 웹사이트의 해상도에 따라 다른 크기를 지정할 수 있습니다.

 

예를 들어, 미디어쿼리를 사용하여 해상도가 768px 이하일 때,

현재 요소의 font-size를 1.2em에서 1em으로 줄일 수 있습니다.

 

em은 현재 요소의 font-size에 상대적인 크기를 지정하는 단위이므로,

부모 요소의 font-size에 따라 자동으로 크기가 조절됩니다. 

 

2. rem

em은 "root em"의 약어로, 루트 요소인 html 요소의 font-size에 상대적으로 크기를 지정하는 단위입니다.

이를 사용하면 웹사이트의 폰트와 레이아웃 요소 크기를 상대적으로 지정할 수 있습니다.

 

반응형 디자인에서는 rem을 사용하여 레이아웃과 폰트 크기를 지정할 때,

미디어쿼리를 사용하여 웹사이트의 해상도에 따라 다른 크기를 지정할 수 있습니다.

예를 들어, 미디어쿼리를 사용하여 해상도가 768px 이하일 때,

html 요소의 font-size를 16px에서 14px로 줄일 수 있습니다.

 

이렇게 하면 모바일 화면에서 폰트와 레이아웃 요소의 크기가 더 작아지도록 조절할 수 있습니다.

반응형 웹사이트에서는 뷰포트의 크기에 따라 다양한 기기에 대응해야 합니다.

rem은 상대적인 크기를 지정하는 단위이므로, 기기의 뷰포트 크기에 따라 폰트와 레이아웃 요소의 크기가

자동으로 조절됩니다. 따라서 rem을 사용하면 반응형 디자인에서 더욱 유연하게 레이아웃을 구성할 수 있습니다.

 

 

em vs rem ?? 

rem과 em은 모두 상대적인 단위이며, 웹 페이지에서 폰트 크기 및 레이아웃 등의 크기를 조정하는 데 사용됩니다.

rem은 루트 요소의 폰트 크기에 대한 비율로 정의됩니다.

따라서 rem은 반응형 웹 디자인에 가장 적합한 단위 중 하나입니다.

루트 요소의 폰트 크기를 변경하면 모든 요소의 크기가 변경되기 때문입니다.

반면에 em은 해당 요소의 부모 요소의 폰트 크기에 대한 비율로 정의됩니다.

이것은 조금 더 예측하기 어렵고 조작하기 어려울 수 있으므로 rem보다는 조금 덜 적합합니다.

 

 

rem 사용법

먼저, HTML의 font-size 속성을 지정합니다. 이는 rem의 기준이 됩니다.

html {
  font-size: 16px; /* 기준이 될 폰트 크기 */
}

그런 다음, rem 단위를 사용하여 요소의 크기를 지정합니다.

h1 {
  font-size: 2rem; /* html 폰트 크기의 2배 */
  margin-bottom: 1.5rem; /* html 폰트 크기의 1.5배 */
  padding: 0.5rem; /* html 폰트 크기의 0.5배 */
}

이렇게 하면 HTML의 font-size 속성을 변경하면 요소의 크기도 자동으로 조정됩니다.

예를 들어, 16px에서 20px로 변경하면, 2rem의 크기는 40px로 변경됩니다.

 

rem은 em과 달리 상대적이면서도 기준이 되는 폰트 크기가 고정되어 있어,

크기 조정이 예측 가능하고 일관성 있게 유지됩니다. 따라서 반응형 웹사이트를 개발하는 데 더욱 적합합니다.