Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM 스타일 flexBasis 속성 – 개념, 문법, 실전 예제까지 한눈에

HTML DOM의 flexBasis 속성은 display: flex;가 적용된 요소 내부에서 플렉스 아이템의 초기 크기(initial size)를 지정하는 데 사용됩니다. 이 속성은 CSS의 flex-basis 속성을 JavaScript로 제어할 수 있게 해주며, 값이 auto가 아닌 경우에는 일반적인 width 속성보다 우선순위가 높습니다.

문법(Syntax)

flexBasis 속성을 설정하는 기본 문법은 다음과 같습니다.

object.style.flexBasis = "number|auto|initial|inherit"

속성값 설명

설명
number플렉스 아이템의 초기 길이를 백분율(%) 또는 px, em 등 유효한 길이 단위로 지정합니다.
auto플렉스 아이템의 길이와 동일하게 설정합니다. 길이가 별도로 지정되지 않은 경우 콘텐츠 크기에 따라 결정됩니다. 기본값(default)입니다.
initial해당 속성을 브라우저의 기본 초기값으로 되돌립니다.
inherit부모 요소의 속성값을 상속받습니다.

예제 코드

아래 예제는 버튼을 클릭하면 div 안의 이미지들이 담긴 플렉스 아이템들의 flexBasis 값을 110px에서 200px로 변경하는 코드입니다.

<!DOCTYPE html>
<html>
<head>
<style>
    #demo, #demo2{
        background-color: #fff8dc;
        margin: 10px;
        height: 100px;
        box-shadow: 0 0 0 4px brown;
        display: flex;
    }
    #demo div {
        flex-basis: 110px;
    }
</style>
<script>
    function changeFlexBasis() {
        for(var i=1;i<3;i++){
            document.getElementsByTagName("DIV")[i].style.flexBasis="200px";
        }
        document.getElementById("Sample").innerHTML="flex basis 값이 200px로 증가했습니다";
    }
</script>
</head>
<body>
    <h2>데모 제목</h2>
    <div id="demo">
        <div><img src="https://www.tutorialspoint.com/images/home_tensor_flow.png"></div>
        <div><img src="https://www.tutorialspoint.com/images/home_blockchain_python.png"></div>
        <div><img src="https://www.tutorialspoint.com/images/multilanguage-tutorials.png"></div>
    </div>
    <p>아래 버튼을 클릭하면 div 안의 이미지 플렉스 아이템의 flex basis 속성이 변경됩니다.</p>
    <button onclick="changeFlexBasis()">Change Flex Basis</button>
    <p id="Sample"></p>
</body>
</html>

실행 결과

페이지를 처음 열면 각 이미지가 flex-basis: 110px 설정에 따라 배치된 것을 확인할 수 있습니다.

HTML DOM 스타일 flexBasis 속성 – 개념, 문법, 실전 예제까지 한눈에

그런 다음 “Change Flex Basis” 버튼을 클릭하면 JavaScript 함수가 실행되어 해당 플렉스 아이템들의 크기가 200px로 확장됩니다.

HTML DOM 스타일 flexBasis 속성 – 개념, 문법, 실전 예제까지 한눈에

정리

flexBasis 속성은 반응형 레이아웃에서 플렉스 아이템의 기준 크기를 동적으로 조절할 때 매우 유용합니다. 특히 auto가 아닌 값을 지정하면 width보다 우선 적용되므로, 플렉스 컨테이너 내부의 아이템 크기를 정밀하게 제어하고 싶다면 flexBasis 활용법을 반드시 익혀두는 것이 좋습니다.