每个浏览器的devtools都会显示一个元素的内容,填充,边框和边距框。有什么办法让浏览器(任何浏览器)向我展示元素的底线?这对调试行内盒对齐将有很大的帮助。如何查看HTML元素的基线?
0
A
回答
1
这不会完全回答你的问题,但我希望它可以至少使用一些 ......或者它甚至会激励某人想出一个更好的!
诀窍是a)计算基线的位置,b)使这些信息适用于所有元素。
计算基线的方法是令人惊讶的非直接的:我们需要创建两个元素,其中之一具有字体大小0,然后计算它们之间的顶部位置的差。
为了把这个计算到所有的HTML元素,我们使用defineProperty
方法到一个新的属性添加到HTMLElement
类的原型。
// the main functionality
Object.defineProperty(Element.prototype, 'baselinePosition',
{
get: function() {
var fs0 = document.createElement('span');
fs0.appendChild(document.createTextNode('X')); fs0.style.fontSize = '0'; fs0.style.visibility = 'hidden';
var fs1 = document.createElement('span');
fs1.appendChild(document.createTextNode('X'));
this.appendChild(fs1); this.appendChild(fs0);
var result = fs0.getBoundingClientRect().top - fs1.getBoundingClientRect().top;
this.removeChild(fs0); this.removeChild(fs1);
return result;
},
enumerable: true
});
// and a test run.
var pos = document.getElementById('test').baselinePosition;
console.log('The baseline is at ' + pos + ' px.');
<p id="test">This is the test.</p>
这里需要说明的是,你将需要一个浏览器,可以显示HTML元素节点的所有属性。到目前为止,我发现的唯一一个就是SeaMonkey的DOM Inspector。
其他浏览器没有任何显示的JavaScript节点属性的能力,或者他们只显示了内置的,而不是在用户添加的。
无论如何,希望这会有所帮助!
+0
这是一个很好的把戏!我可能会使用它来添加将绘制基线的背景图像渐变。 – Peeja
相关问题
- 1. 如何查看影响HTML元素的JavaScript代码?
- 2. 如何查看附加到html元素的事件?
- 3. 如何隐藏基于一系列父元素的HTML元素
- 4. 如何切换查看/显示自定义HTML元素?
- 5. 我如何让webdriver查看包含的html文件中的元素
- 6. 动态添加元素来查看基于xml解析的viewmodel
- 7. 用html连线两个元素线
- 8. 如何查看封面并查看HTML是如何呈现的?
- 9. “查看页面源代码”上的隐藏html元素
- 10. 显示基于PHP值的HTML元素
- 11. 如何在基于力的曲线路径上移动元素?
- 12. 如何更改Silverstripe跑网站中的HTML基本元素
- 13. 如何隐藏基于会话值的HTML元素
- 14. 如何禁用查看源代码并检查元素
- 15. 使元素外看不见,HTML CSS
- 16. 如何变灰HTML元素
- 17. 如何显示html元素
- 18. 如何解析HTML元素?
- 19. 如何移动HTML元素
- 20. 如何启用html元素
- 21. 如何去除html和css中元素周围的边框线?
- 22. 检查,看是否元素属于父HTML标签
- 23. 如何观看html元素集合并处理它们?
- 24. 只查看网页的1个元素
- 25. jQuery查看创建元素的来源
- 26. 查看Dreamweaver中的元素边界框
- 27. 如何让硒看不见的元素?
- 28. 如何查看网页上元素的“:hover”和“:active”属性?
- 29. 如何从控制器中查看DIV元素的风格?
- 30. 如何在设计WPF控件时查看折叠的元素?
此问题似乎有负面投票和投票结束,但没有解释的评论。我能做些什么来改善这个问题吗? – Peeja
的密切投票是“推荐一个工具”,所以,他们或许认为你所要求的调试库什么的。 –
啊,不,我在问是否浏览器能够显示它。 – Peeja