js获取元素的高度

获取元素的高度

style.height

包括元素的滚动条,不包括边框,值为string,带单位px

使用style.height最坑的就是height必须使用行内样式,使用内联式和外嵌式是不行的

  1. height在<style>标签中设置,使用style.height是获取不到值的
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style> .div { height: 100px; } </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script> let div = document.querySelector(".div"); console.log(div.style.height); </script>
</body>
</html>
  1. 使用外部导入的css同样也获取不到

  2. 只有在行内才能获取到值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="div" style="height: 100px;border: 1px soled #000;">
    hello world
</div>
<script> let div = document.querySelector(".div"); //输出的是100px,并不是102px console.log(div.style.height); </script>
</body>
</html>

clientHeight

这个属性是只读属性,对于没有定义CSS或者内联布局盒子的元素为0,否则,它是元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距。

clientHeight 可以通过 CSS height + CSS padding - 水平滚动条高度 (如果存在)来计算.

不包括元素的滚动条和边框,值为number,不是string,即不带px

可以使行内、内联和外嵌

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style> .div { height: 100px; border: 1px solid #000; } </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script> let div = document.querySelector(".div"); console.log(div.clientHeight); </script>
</body>
</html>

offsetHeight

HTMLElement.offsetHeight是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数

包括元素的滚动条和边框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            height: 100px;
            border: 1px solid #000;
        }

    </style>
</head>
<body>
<div class="div">
    hello world
</div>
<script>
    let div = document.querySelector(".div");
    console.log(div.offsetHeight);
</script>
</body>
</html>

scrollHeight

用于判定元素是否滚动到底

运用

如果元素滚动到底,下面等式返回true,没有则返回false

element.scrollHeight - element.scrollTop === element.clientHeight

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务