zoukankan      html  css  js  c++  java
  • JS 盒子模型

    盒子模型

    内容的宽度和高度:
    我们设置的width/ height这两个样式就是内容的高和宽, 如果没有设置height, 容器的高度会根据里面内容自己进行适应, 这样获取的值就是真实的内容; 如果设置固定的高度了, 不管内容是多了还是少了, 其实我们内容的高度指的都是设定的那个值;

    真实内容的宽度和高度:
    这个代指的是实际内容的宽高(和我们设置的height没有必然的联系), 例如: 我设置高度为200px, 如果内容溢出, 那么真实内容的高度还要加上我们溢出的高度

    client

    获取当前元素可视区域的宽度

    clientWidth / clientHeight:
    内容的宽度/高度 + 左右/上下填充(和内容溢出没有关系)

    clientLeft: 左边框的宽度, clientTop:
    上边框的高度( border[Left/Top]Width )

    offset

    offsetWidth/ offsetHeight:
    在client的基础上加上border

    offsetTop/ offsetLeft:
    获取当前盒子距离其父级参照物的偏移量(上偏移/ 左偏移) 当前盒子的外边框开始 ~ 父级参照物的内边框

    offsetParent:
    当前盒子的父级参照物
    "参照物":
    同一个平面中, 元素的父级参照物和结构没有必然联系, 默认他们的父级参照物都是BODY(当前平面最外层的盒子)BODY的父级参照物是NULL

    scroll

    scrollWidth/ scrollHeight:
    容器中的内容没有溢出时: 和我们的clientWidth/ ClientHeight的值一样.
    如果容器中的内容有溢出时: 我们获取的结果是如下规则:
    scrollWidth:
    真实内容的宽度(包含溢出) + 左填充
    scrollHeight:
    真实内容的宽度(包含移除) + 上填充

    获取的值都是约等于值
    因为: 同一个浏览器, 我们是否设置overflow="hidden"对于最终的结果是有影响的, 在不同的浏览器中我们获取到的结果也是不相同的.

    scrollLeft/ scrolTop:
    滚动条卷去的宽度/ 高度

    JS盒子模型

    我们通过这13个属性值获取的结果永远不可能出现小数, 都是整数; 浏览器在获取结果的时候, 在原来真实结果的基础上进行四舍五入.

    关于操作浏览器本身盒子模型

    scrollWidth/ scrollHeight 是当前页面的真实宽度/ 高度, (所有屏加起来的宽度和高度 但是是一个越等于的值)
    我们不管那些属性, 也不管是什么浏览器, 也不管是获取还是设置, 想要都兼容的话, 需要写两套
    document.documentElement[attr] || document.body[attr];
    必须document.documentElement在前
    设置, 也要写两套
    document.documentElement.scrollTop = 0;
    document.body.scrollTop = 0;

    兼容写法
    function win(attr, value){
        if(typeof value === "undefined"){
            return documentElement[attr] || document.body[attr];
        }
        document.documentElement[attr] = value
        document.body[attr] = value
    }
    
  • 相关阅读:
    .net core系列之《.net平台历程介绍以及.net framework和.net core对比》
    C++ 拷贝构造函数
    C++ const引用
    C++ 引用和指针
    C++ 将派生类赋值给基类(向上转型)
    C++ 虚继承
    C++ 基类和派生类的构造函数以及析构函数
    C++ 类继承时的作用域嵌套和对象内存模型
    C++ private + protected + public
    C++ const成员变量、成员函数和对象
  • 原文地址:https://www.cnblogs.com/xiaoxu-xmy/p/13655922.html
Copyright © 2011-2022 走看看