강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

식빵님의 프로필 이미지
식빵

작성한 질문수

CSS Flex와 Grid 제대로 익히기

Flex UI #4 - 메시지 리스트

flex-shrink가 정확히 어떤 기준으로 값이 줄어드는 건가요?

해결된 질문

작성

·

245

0

이번에 FLEX_UI# - 4.메세지 리스트 강좌를 들으면서 이것저것 실험하다가 이상하다고 느낀게 있어서 질문 올립니다.

저는 flex-shrink가 줄어드는 비율이며
그 값이 현재 <p class="message-content"> 와 <figure class="user-photo"> 가 같기 때문에

당연히 <p class="message-content">  이 줄어드는 길이<figure class="user-photo">가 줄어드는 길이가 같은 줄 알았습니다.  그런데 오늘 메세지 리스트 강좌를 들으면서 아래 html을 테스트해봤는데, 전혀 그렇지 않았습니다.

아래 html을 통해서 브라우저(FireFox)를 열고, 개발자 도구를 열어 테스트를 해봤습니다.

브라우저 화면을 천천히 줄이면서 개발자 도구를 통해 3번째 행의 flex-item들이  flex-shrink에 의해서 얼마만큼의 길이로 줄어드는지 관찰했습니다.

figure.user-photo :
기본 크기  (width: 50px)    50px
유연성       (flex-shrink: 1)   -13.77px

p.message-content :
콘텐츠 크기 : 1003.22px
유연성    (flex-shrink: 1)    -276.25px

만약 저의 생각(=착각)대로라면, 둘 다 똑같이 -13.77 px로 줄어들거나, 아니면 둘 다 똑같이 -267.25px 로 줄어들어야 했으니 말입니다.

제가 착각했다는 건 이제 알았지만, 위같은 값(-13.77px , -276.25px) 이 나오는 이유는 아직도 의문입니다. 

왜 이런건지 알려주실 수 있을까요?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>CSS Flex</title>
    <link rel="stylesheet" href="default.css">
    <style>
        /* message */
        .user-item {
        display: flex;
        }
        .user-photo {
        width: 50px;
        height: 50px;
        border: 2px solid #333;
        border-radius: 50%;
        background-color: gold;
        background-repeat: no-repeat;
        background-position: center;
        background-size: 150%; /* 수정 */
        }
    </style>
</head>
<body>
    <ul class="user-list message-list">
        <li class="user-item message-item">
            <figure class="user-photo" style="background-image: url(images/ilbuni.png);"></figure>
            <p class="message-content">
                Lorem ipsum dolor sit amet con
            </p>
        </li>
        <li class="user-item message-item">
            <figure class="user-photo" style="background-image: url(images/ilbuni.png);"></figure>
            <p class="message-content">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus debitis maiores nisi. Reiciendis, minus. Cumque, voluptate! Corporis natus inventore error voluptas blanditiis? Cum debitis voluptas rem fuga porro, nulla quae at voluptatem laudantium consequuntur autem maxime quis obcaecati? Nulla, in.
            </p>
        </li>
        <li class="user-item message-item">
            <figure class="user-photo" style="background-image: url(images/ilbuni.png);"></figure>
            <p class="message-content">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus debitis maiores nisi. Reiciendis, minus. Cumque, voluptate! Corpe
            </p>
        </li>
    </ul>
</body>
</html>

답변 2

1

1분코딩님의 프로필 이미지
1분코딩
지식공유자

아, 말 그대로 "비율"이기 때문입니다.
두 요소의 원래 크기가 대략 20배 정도인데요,
줄어든 크기도 똑같이 그 비율이 적용되었다고 생각하시면 됩니다.

1003.22 / 50
276.25 / 13.77

두 값 모두 대략 20.06 정도가 나오네요~

0

식빵님의 프로필 이미지
식빵
질문자

와... 왜 이걸 눈치 못챘을까요 ㅠㅠ.
매번 질문에 대해서 빠르고 정확하게 알려주셔서 정말로 감사합니다.

식빵님의 프로필 이미지
식빵

작성한 질문수

질문하기