[CSS] 요소를 비율로 조정하기

2023. 3. 14. 15:21·Web
반응형

이미지와 같은 요소는 너비 값을 px 등의 단위로 고정하기 쉽지 않다. 

반응형 환경에서 고정으로 두면 화면의 크기에 따라 너무 커지거나 작아지기 때문이다. 

 

그래서 %로 설정하는 경우가 있는데, 원본 사이즈가 1 : 2인 요소를 1 : 1 비율로 화면에 나타내야 하면 

어떨까? 

 

생각만 해도 머리가 아픈 상황이다. 

기본적으로 이미지를 비율에 맞춰 자르려면 object-fit을 사용해서 본인은 처리하는데, 

object-fit을 사용하려면 고정적인 size를 가져야한다. 

 

하지만 앞서 말한 것처럼 고정적인 값을 가지면 반응형 환경에서 문제가 생긴다. 

이도저도할 수 없는 최악의 상황이다. 

 

여기서 도움을 주는 것이 aspect-ratio이다. 

 

aspect-ratio 

요소의 크기를 비율대로 조정할 수 있는 css 속성이다.

만약 width height을 1: 3 비율로 설정하고 싶다면 

 

aspect-ratio: 1 / 3;

직관적으로 1 / 3 으로 주면 width는 1, height은 3을 가지게 된다. 

 

만약 width 값이 calc(50% - 10px)인 부모의 자식 요소를 1 : 1 비율로 나오게 하려면 어떤 방식을 사용해야 할까? 

.부모 {
  width: calc(50% - 10px);
  padding: 0 5px;
}

.자식 {
  width: 100%;
  
  aspect-ratio: 1 / 1
}

다음과 같이 설정해주면 된다. 

 

calc(50% - 10px)인 부모가 나오는 경우가 생각보다 있을 것이다. 

물론 뒤에 10px은 상황에 따라 다를 것이다. 하지만 요소를 리스트로 나오게하고 좌우 padding을 동일하게 주는 경우는

아주 많다. 

 

이럴 때 요소의 비율, 해당 요소는 썸네일 등의 요소일 것이다. 

이것을 비율에 맞게 나타내는 것은 아주 귀찮았는데, aspect-ratio를 사용해서 간단하게 처리할 수 있다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Web' 카테고리의 다른 글

[CSS] 글자색에 배경이미지 넣기  (0) 2023.03.21
[CSS] Transition 작동  (0) 2023.03.19
[CSS] 사파리 환경 input 스타일 초기화  (0) 2023.03.13
[HTML] 크롬 & 사파리 Video  (1) 2023.03.12
[CSS] Toggle 버튼  (0) 2023.02.18
'Web' 카테고리의 다른 글
  • [CSS] 글자색에 배경이미지 넣기
  • [CSS] Transition 작동
  • [CSS] 사파리 환경 input 스타일 초기화
  • [HTML] 크롬 & 사파리 Video
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    영어회화
    바질
    리얼학습일기
    다이소
    덤프
    Babel
    네이버 부스트캠프
    네트워크
    react
    javascript
    알고리즘
    Docker
    ChatGPT
    redux
    리액트
    바질 키우기
    CSS
    타일러영어
    next.js
    ReactNative
    typescript
    영어독학
    타입스크립트
    프로그래머스
    CCNA
    자바스크립트
    리얼클래스
    webpack
    Node.js
    식물
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[CSS] 요소를 비율로 조정하기
상단으로

티스토리툴바