offsetLeftoffsetTopDOM操作,之写入内容

    科技2022-07-16  109

    offsetLeft offsetTop

    <style> *{ margin: 0; padding: 0; } body{ padding: 50px; } .div1{ margin-left: 100px; position: fixed; } .div2{ position: fixed; } </style> </head> <body> <div class="div1"> <div class="div2">我是div</div> </div> <script> // offsetLeft // 到定位父级左边界的间距 // offsetTop // 到定位父级上边界的间距 var oDiv = document.querySelector('.div2'); // 每一个标签对象,都有一个属性,叫 offsetParent // 表示这个标签的定位父级对象是谁 // (1)标签本身,没有定位属性,定位父级对象 是 body // 此时是这个标签到body的间距 // 不管是body的padding,还是标签的margin,都是到body的间距 // 如果有父级,计算的也是当前标签到 body 的总间距 // (2)标签本身有定位,要看定位父级对象是谁 // position: relative; 定位父级仍然是 body // position: absolute; 要看具体的定位是谁 // position: fixed; 定位父级是 null 指的是 视窗窗口 /// 表示的仍然是到定位父级的间距,只是定位父级有可能不同 // (3)本身没有定位,父级有定位属性 // 此时定位对象父级是 带有定位属性的父级标签 // 表示的是到这个父级标签的间距 // 总结: // offsetLeft offsetTop 情况很复杂 // 需要先确定 offsetParent 定位父级对象标签 // 获取的数据,就是当前标签,到父级定位标签的总间距 // 先找爹,确定爹,到爹的间距 console.dir(oDiv);

    // DOM操作,之写入内容

    <div> 我是文字内容 <span>1</span> <a href="#">2</a> <ul> <li>3</li> </ul> <h1>4</h1> </div> <script> // DOM操作,之写入内容 // 给标签对象,写入内容 // 是,全覆盖写入 // 新写的内容,会覆盖标签中,之前定义的内容 // 包括文字,以及子级标签 // 标签对象.innerHTML() 支持标签 // 标签对象.innerText() 不支持标签 // 对div标签,写入内容 // 新写入的内容,会覆盖,之前div标签的所有内容 // 包括文字,标签等 var oDiv = document.querySelector('div'); // oDiv.innerHTML = '我是写入的内容'; // 1, 标签对象.innerHTML 获取标签对象中所有的内容,包括标签 // 标签对象.innerText 获取标签对象中所有的内容,不包括标签 console.log(oDiv.innerHTML); console.log(oDiv.innerText); // 2, 标签对象.innerHTML = '内容' 设定标签对象的内容,支持解析标签 // 标签对象.innerText = '内容' 设定标签对象的内容,不支持,不解析标签 // 解析h1 标签,执行结果是 写入一个 h1标签,标签内容是 我是innerHTML写入的 oDiv.innerHTML = '<h1>我是innerHTML写入的</h1>'; // 不支持,不解析标签,执行结果就是,纯字符串写入 oDiv.innerText = '<h1>我是innerHTML写入的</h1>'; </script>
    Processed: 0.013, SQL: 8