如何在Javascript中添加忽略父元素左边距和填充的子元素
How to add a child element that ignores the left marging and padding of the parent in Javascript
请看一下这个jsfiddle:
http://jsfiddle.net/dd4g4re5/
这是代码:
HTML
<div class="a"></div>
CSS
div{
width: 200px;
height: 200px;
background: red;
}
.a {
padding-left: 6px;
}
.b {
position: relative;
background: blue;
}
JAVASCRIPT
var divA = document.getElementsByTagName("div")[0];
var divB = document.createElement("div");
divB.className="b";
divA.appendChild(divB);
我想将子div定位在容器div,因此它与父级完全重叠。但正如你所看到的,这是不可能的,因为父项的左侧填充。
我想我可以做这样的事情:
divB.style.left = -(divA.leftPadding + divA.leftMargin)+"px";
但我希望有一种更好的方法可以做到这一点,比如Javascript中的一些原生函数,所以我不希望必须进行那种计算。
此外,我希望避免给孩子设置一个绝对的位置。
在此处使用边框可以确保它们都符合所需的宽度。您需要给子元素一个负的左边距,该值与其父元素的左填充值相同。
var divA = document.getElementsByTagName("div")[0];
var divB = document.createElement("div");
divB.className="b";
divA.appendChild(divB);
div{
width: 200px;
height: 200px;
background: red;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.a {
padding-left: 6px;
}
.b {
position: relative;
background: blue;
margin-left: -6px;
}
<div class="a"></div>
您可以将子对象完全定位在(相对)父对象中,如下所示:
.parent {
position: relative;
padding: 10px;
}
.child {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
http://jsfiddle.net/bvaughn/ouxsdmfc/
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 如何在Javascript中添加忽略父元素左边距和填充的子元素
- 要插入二叉树的第一个元素,请将其放在左边还是右边
- 我想在单击图像时更改 ul 元素的“左边距”
- 在li'上循环;s,并在每个元素的左边进行填充
- 设置元素的左边距和宽度以匹配另一个元素的边距和大小
- 当第一个元素被选中时,工具提示不显示第一个元素的左边
- 当元素经过某个左边位置时显示警告
- 同位素/砌体+ json饲料加载所有元素到左边
- 改变各种元素的样式.左边和上面用脚本
- 当浏览器调整大小时刷新左边元素的位置