Dragonball Online Goku Hand
본문 바로가기
Javascript

요소 크기 메서드

by 별의 코비 2022. 9. 1.
728x90

Javascript: 요소 크기 메서드

Javascript 요소 크기 메서드에 대해 알아봅시다!


📎 Javascript 요소 크기 메서드 종류


속성은 가져오는 것 밖에 못하고 메서드는 값을 설정해줄 수 있습니다.
번호 속성/메서드 이름 설명
01 element.clientWidth 요소의 가로값(마진/보더 미포함)
02 element.clientHeight 요소의 높이값(마진/보더 미포함)
03 element.clientTop 요소의 Y축값(부모기준)
04 element.clientLeft 요소의 X축값(부모기준)
05 element.offsetWidth 요소의 가로값(보더/패딩 포함)
06 element.offsetHeight 요소의 가로값(보더/패딩 포함)
07 element.offsetTop 요소의 Y축값(문서 기준)
08 element.offsetLeft 요소의 X축값(문서 기준)
09 element.getBoundingClientRect() op, left, right, bottom, x, y, width, height

📎 완성본


코드 보기 : HTML
<div class="main_sample">
    <div id="sample01" class="sample">
        <h3 class="blue">01. 위치 및 크기를 표현하는 속성 및 메서드</h3>
        <div class="view">
            <div class="sbox">
                <span>
                    width: 400px<br>
                    margin: 20px<br>
                    border: 1px<br>
                    padding: 20px
                </span>
            </div>
            <p class="sResult">여기에 결과값이 표시됩니다.</p>
        </div>
        <div class="button">
            <a href="#" class="btn1">박스의 가로값(clientWidth)을 구합니다.</a>
            <a href="#" class="btn2">박스의 높이값(clientHeight)을 구합니다.</a>
            <a href="#" class="btn3">박스의 Y축값(clientTop)을 구합니다.</a>
            <a href="#" class="btn4">박스의 X축값(clientLeft)을 구합니다.</a>
            <a href="#" class="btn5">박스의 가로값(offsetWidth)을 구합니다.</a>
            <a href="#" class="btn6">박스의 높이값(offsetHeight)을 구합니다.</a>
            <a href="#" class="btn7">박스의 Y축값(offsetTop)을 구합니다.</a>
            <a href="#" class="btn8">박스의 X축값(offsetLeft)을 구합니다.</a>
            <a href="#" class="btn9">박스의 X축값(getBoundingClientRect())을 구합니다.</a>
        </div>
    </div>
코드 보기 : CSS
.sample .view {
    border: 1px solid #e6e6e6;
    padding: 30px 20px 20px 20px;
}
.sample .blue{
    background-color: #7db0e391;
    padding: 10px 20px;
    border-radius: 5px 5px 0 0;
    margin-bottom: 0;
    color: rgb(0, 0, 0);
}
.sample .sbox {
    width: 400px;
    height: 200px;
    background-color: #a2cbfa;
    border: 1px solid #4390e1;
    padding: 20px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px auto;
    color: #fff;
    text-align: center;
}
.sample .sbox::after {
    content: '';
    width: 480px;
    height: 280px;
    border: 1px dashed #4390e1;
    position: absolute;
    left: -21px;
    top: -21px;
}
.sample .sbox::before {
    content: '';
    width: 398px;
    height: 198px;
    border: 1px dashed #4390e1;
    position: absolute;
    left: 20px;
    top: 20px;
}
.sample .sResult {
    text-align: center;
    padding-top: 10px;
}
.sample .button {
    border: 1px solid  #e6e6e6;
    padding: 20px;
    border-top: 0;
    text-align: center;
}
.sample .button a{
    border: 1px solid  #4390e1;
    color: rgb(90, 176, 247);
    border-radius: 40px;
    padding: 10px 20px;
    display: inline-block;
    margin: 5px;
    text-decoration: none;
}
.sample .button a:hover {
    background-color: #4390e1;
    color: #fff;
    text-decoration: none;
}
코드 보기 : JS
const box1 = document.querySelector("#sample01 .sbox");

document.querySelector("#sample01 .btn1").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 가로값은" + box1.clientWidth + "px(마진/보더 불포함, 패딩포함) 입니다."
})
document.querySelector("#sample01 .btn2").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 높이값은" + box1.clientHeight + "px(마진/보더 불포함, 패딩포함) 입니다."
})
document.querySelector("#sample01 .btn3").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 Y축값은" + box1.clientTop + "px(부모 기준) 입니다."
})
document.querySelector("#sample01 .btn4").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 X축값은" + box1.clientLeft + "px(부모 기준) 입니다."
})
document.querySelector("#sample01 .btn5").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 가로값은" + box1.offsetWidth + "px(보더/패딩 포함) 입니다."
})
document.querySelector("#sample01 .btn6").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 높이값은" + box1.offsetHeight + "px(보더/패딩 포함) 입니다."
})
document.querySelector("#sample01 .btn7").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 Y축값은" + box1.offsetTop + "px(문서 기준) 입니다."
})
document.querySelector("#sample01 .btn8").addEventListener("click", (e) => {
    e.preventDefault()
    document.querySelector("#sample01 .sResult").innerHTML = "이 박스의 X축값은" + box1.offsetLeft + "px(문서 기준) 입니다."
})
document.querySelector("#sample01 .btn9").addEventListener("click", (e) => {
    e.preventDefault()
    const box = document.querySelector("#sample01 .sbox")
    const result = document.querySelector("#sample01 .sResult")
    const rect = box.getBoundingClientRect();

    result.innerHTML = "";

    for(let key in rect){
        //변수 안에 데이터 타입 아는 방법 //키값에서 함수가 아닌 것 찾기
        if(typeof rect[key] !== "function"){
            //데이터 span에 넣어주기
            let span = document.createElement("span");
            span.textContent = `${key}: ${rect[key]}`;
            result.appendChild(span);
        };
    }; 
});

'Javascript' 카테고리의 다른 글

mouseEnter / mouseOver 차이점  (2) 2022.09.06
GSAP  (5) 2022.08.30
charAt()  (4) 2022.08.23
match()  (3) 2022.08.23
search()  (2) 2022.08.23

댓글