javascript - 从 Javascript 检测真正的边框、填充和边距

标签 javascript css border padding margin

有没有办法从 Javascript 代码中检测元素的真实边框、填充和边距?如果您查看以下代码:

<html>
    <head>
        <style>
        <!--
        .some_class {
            padding-left: 2px;
            border: 2px solid green;
        }   
        -->
        </style>
        <script>
        <!--
        function showDetails()
        {
            var elem = document.getElementById("my_div");
            alert("elem.className=" + elem.className);
            alert("elem.style.padding=" + elem.style.padding);
            alert("elem.style.paddingLeft=" + elem.style.paddingLeft);
            alert("elem.style.margin=" + elem.style.margin);
            alert("elem.style.marginLeft=" + elem.style.marginLeft);
            alert("elem.style.border=" + elem.style.border);
            alert("elem.style.borderLeft=" + elem.style.borderLeft);
        }
        -->
        </script>
    </head>
    <body>
        <div id="my_div" class="some_class" style="width: 300px; height: 300px; margin-left: 4px;">
            some text here
        </div>
        <button onclick="showDetails();">show details</button>
    </body>
</html>

您可以看到,如果您单击该按钮,则不会正确报告填充。只有直接通过“style”定义的属性会被返返回告,那些通过 CSS 类定义的属性不会被报告。

有没有办法取回这些属性的最终值?我的意思是浏览器计算并应用所有 CSS 设置后获得的值。

最佳答案

style属性可以获得内联分配的样式,如

<div id="target" style="color:#ddd;margin:10px">test</div> 如果你想获得在外部 css 文件中分配的样式或 <style/>元素,试试这个:

var div = document.getElementById("target");
var style = div.currentStyle || window.getComputedStyle(div);
display("Current marginTop: " + style.marginTop);

如果您使用的是 jQuery,@vsync 的解决方案就可以了。

关于javascript - 从 Javascript 检测真正的边框、填充和边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/349257/

相关文章:

javascript - 比较距元素顶部的垂直距离和距页面顶部的滚动距离

javascript - 使用 jQuery/Javascript 在将鼠标悬停在文本上时切换 div 中的图像

html - html中用一行水平链接三个下拉框

css - 带有 CSS 的略带锯齿的边框线

javascript - jquery 中的循环 Action /事件

javascript - 为所选元素分配一个类名,并在 React 中分配正确的类名

javascript - 安全地解开 jQuery 实例以获取包装的 DOM 元素

javascript - 对于范围和变量来说,这是否被认为是一种不好的做法?

带有 gif 的 Html & Css 图像边框

css - 在网格系统/Bootstrap 网格中的跨度内放置边框或线