使用JavaScript获取flexbox元素之间的空间

使用JavaScript获取flexbox元素之间的空间,javascript,css,flexbox,Javascript,Css,Flexbox,在使用JavaScript的flexbox中,是否有可能获得两个使用调整内容的元素之间的空间:在之间的空间?这是可能的 计算左一个的位置(红色)+它的宽度 找到正确的位置(蓝色) (蓝色.位置)-(红色)+(红色.宽度) 纯JavaScript 我使用了与纯JavaScript相同的函数。我想有人会觉得有用。请注意,我对JavaScript比较陌生,所以它可能没有得到很好的优化 function calcSpaceBetweenJavascript(){ var red_elem = d

在使用JavaScript的flexbox中,是否有可能获得两个使用
调整内容的元素之间的空间:在
之间的空间?

这是可能的

  • 计算左一个的位置(红色)+它的宽度

  • 找到正确的位置(蓝色)

  • (蓝色.位置)-(红色)+(红色.宽度)

  • 纯JavaScript

    我使用了与纯JavaScript相同的函数。我想有人会觉得有用。请注意,我对JavaScript比较陌生,所以它可能没有得到很好的优化

    function calcSpaceBetweenJavascript(){
        var red_elem = document.getElementById('d1')
        var blue_elem = document.getElementById('d2')
        var space_elem = document.getElementById('space')
    
        var red_pos = red_elem.offsetLeft + red_elem.getBoundingClientRect().width;
        var blu_pos = document.getElementById('d2').offsetLeft;
    
        var space = blu_pos - red_pos;
        space_elem.textContent = space + ' px';
    }
    

    给它们加边距?@Pete我想他想要它们之间的像素数。javascript可以做任何事情@Mihailo这是一个非常糟糕的问题,所以它可能意味着什么,但在你的例子中,我会测试2个左偏移,然后减去左偏移的宽度-(右元素偏移-(左元素偏移+左元素宽度))嗯,问题是,考虑到这一点:我想让第二个列表的框与第一个列表对齐。单独使用flexbox需要添加虚拟元素,并使用
    visibility:hidden
    切换到不可见。第二个想法是计算间距,并将其用作边距。
    function calcSpaceBetweenJavascript(){
        var red_elem = document.getElementById('d1')
        var blue_elem = document.getElementById('d2')
        var space_elem = document.getElementById('space')
    
        var red_pos = red_elem.offsetLeft + red_elem.getBoundingClientRect().width;
        var blu_pos = document.getElementById('d2').offsetLeft;
    
        var space = blu_pos - red_pos;
        space_elem.textContent = space + ' px';
    }