Javascript 在父级计算边距为的outerHeight
给定Javascript 在父级计算边距为的outerHeight,javascript,jquery,html,css,height,Javascript,Jquery,Html,Css,Height,给定 下面是jsfiddle:子元素的边距在父元素之外。但它们不是父元素的边距,这就是outerHeight不注意它们的原因 找到父项高度+子项边距的最佳方法取决于您的用例: 如果子元素是父元素中的唯一元素,并且您希望使用边距使父元素比子元素大,我建议将padding:5px提供给父元素,而不是margin:5px提供给子元素 添加溢出:auto将使父级包含子级的边距 如果您希望孩子和家长共享边距,请将margin:5px交给家长 在所有这些情况下,outerHeight将返回所需的值。子元
下面是jsfiddle:子元素的边距在父元素之外。但它们不是父元素的边距,这就是outerHeight不注意它们的原因 找到父项高度+子项边距的最佳方法取决于您的用例:
- 如果子元素是父元素中的唯一元素,并且您希望使用边距使父元素比子元素大,我建议将
提供给父元素,而不是padding:5px
提供给子元素margin:5px
- 添加
将使父级包含子级的边距溢出:auto
- 如果您希望孩子和家长共享边距,请将
交给家长margin:5px
在所有这些情况下,outerHeight将返回所需的值。子元素的边距在父元素之外。但它们不是父元素的边距,这就是outerHeight不注意它们的原因 找到父项高度+子项边距的最佳方法取决于您的用例:
- 如果子元素是父元素中的唯一元素,并且您希望使用边距使父元素比子元素大,我建议将
提供给父元素,而不是padding:5px
提供给子元素margin:5px
- 添加
将使父级包含子级的边距溢出:auto
- 如果您希望孩子和家长共享边距,请将
交给家长margin:5px
在所有这些情况下,Outerlight将返回您想要的值。您的子div溢出父div。您可以在父div中使用此值:
console.log($('#parent').outerHeight()); //= 14
console.log($('#parent').outerHeight(true)); //= 14
console.log($('#parent')[0].offsetHeight); //= 14
console.log($('#parent')[0].getBoundingClientRect().height); //=14
//but
console.log($('#child').outerHeight()); //= 14
console.log($('#child').outerHeight(true)); //= 24 !!
示例代码:
overflow:auto
您的子div溢出父div。您可以在父div中使用此选项:
console.log($('#parent').outerHeight()); //= 14
console.log($('#parent').outerHeight(true)); //= 14
console.log($('#parent')[0].offsetHeight); //= 14
console.log($('#parent')[0].getBoundingClientRect().height); //=14
//but
console.log($('#child').outerHeight()); //= 14
console.log($('#child').outerHeight(true)); //= 24 !!
示例代码:
overflow:auto
设置父项“显示:内联块;
”
设置父级“显示:内联块;
”
父级没有边距,只有14像素高尝试修复代码应该是这样工作的父级没有边距,只有14像素高尝试修复代码应该是这样工作的