Sar*_*rke 5 html css dom google-chrome-devtools firefox-developer-tools
当网站未包含在移动视口内时,有时我会遇到此问题,并且我需要确定导致宽度超出的原因。
通常,我通过隐藏不同元素的反复试验来做到这一点,直到元素重置为所需的 100% 宽度。然后我对每个子元素重复,直到找到导致它的子元素。
Firefox 或 Chrome 开发工具(或使用插件)是否有办法查看哪个 DOM 子元素正在决定当前元素的尺寸?
确定什么定义了元素的计算宽度和高度可能非常棘手。Chrome 和 Firefox DevTools 都没有提供在所有情况下获取该信息的简单方法。据我所知,也没有可用的扩展可以使这变得更容易。不过, Firefox DevTools 团队不久前就开始对此进行讨论。
\n元素可能比预期更宽或更高的原因有两个:元素本身或其子元素之一上的某些 CSS 或某些文本。
\n当没有其他解决方案时,隐藏或删除元素的解决方案可能是最快的解决方案。
\n尽管如此,这里还是一些如何使用 DevTools 来确定元素宽度和高度定义的提示:
\nwidth
展开或 的条目height
以查看应用了哪些 CSS 规则。还要检查min-width
和max-width
或min-height
和max-height
以及其他布局相关的属性,例如、margin
、border
以及padding
、、等!display
align-self
line-height
white-space: nowrap
.上面提到的步骤也可以通过使用一些 JavaScript 来遍历树并检查元素宽度或高度来自动化。一个相对简单的片段(可以在 DevTools 控制台中执行)是
\nrootElement = $0;\nrootWidth = rootElement.getBoundingClientRect().width;\nwalker = document.createTreeWalker(rootElement, NodeFilter.SHOW_ELEMENT, {\n acceptNode: element =>\n element.getBoundingClientRect().width === rootWidth ?\n NodeFilter.FILTER_ACCEPT :\n NodeFilter.FILTER_SKIP\n});\n\ncurrentNode = walker.currentNode;\nwhile (currentNode) {\n console.log(currentNode);\n currentNode = walker.nextNode();\n}\n
Run Code Online (Sandbox Code Playgroud)\n其中$0
指的是当前选定的元素。
归档时间: |
|
查看次数: |
1211 次 |
最近记录: |