使用js判断元素的宽度是否由其内容决定?
我想知道是否有一种方法可以使用 jQuery 或 javascript 来确定给定一个元素,其宽度是否由 css 样式(内联、继承或直接)设置,或者是否由其大小/长度确定内容。
I want to know if there's a way I can use jQuery or javascript to determine, given an element, if its width is set by a css style (either inline, inherited or directly) or if its being determined by the size/length of its content.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想到了一个想法:
存储元素的
.width()
删除元素的所有子元素,将它们移到其他地方,或使它们
display: none
检查输出元素的
.width()
。如果有变化,那就要看内容了。如果没有改变,那就是使用 CSS 设置的。恢复子项的
display
属性或在必要时将其移回原处。这里是一个非常原始的原型,它只是删除所有元素的内容:
有块级元素的一个副作用:由于它们的宽度不依赖于内容,因此脚本将返回“...不依赖...”,即使该元素可能没有在 CSS 中设置显式宽度根据您的要求。
One idea comes to mind:
Store the element's
.width()
Remove all children of the element, move them elsewhere, or make them
display: none
Check out the element's
.width()
. If it has changed, it depended on the content. If it has not changed, it was set using CSS.Restore the children's
display
property or move them back if necessary.Here is a very primitive prototype that simply removes all the element's content:
There's one side-effect for block level elements: Since their width doesn't depend on the content, the script will return "...did not depend...." even though the element may not have had an explicit width set in CSS as you require.