Javascript 如何根据另一个元素的宽度设置元素的宽度?

Javascript 如何根据另一个元素的宽度设置元素的宽度?,javascript,css,reactjs,ecmascript-6,Javascript,Css,Reactjs,Ecmascript 6,我试图找出如何使元素的宽度动态 我有一个宽度为350px的侧栏,当一个全*宽度模式出现时,侧栏应该仍然可见 这就是modal的功能: position: fixed; top: 0; right: 0; z-index: 1050; width: 73%; height: 100%; outline: 0; 宽度设置73%它现在可以工作了,侧边栏总是可见的,但是如果侧边栏改变了宽度会发生什么呢 我在用React。我想这应该用JavaScr

我试图找出如何使元素的宽度动态

我有一个宽度为350px的侧栏,当一个全*宽度模式出现时,侧栏应该仍然可见

这就是modal的功能:

    position: fixed;
    top: 0;
    right: 0;
    z-index: 1050;
    width: 73%;
    height: 100%;
    outline: 0;
宽度设置
73%它现在可以工作了,侧边栏总是可见的,但是如果侧边栏改变了宽度会发生什么呢

我在用React。我想这应该用JavaScript来完成

我应该做些什么来实现我所需要的?

您可以使用(仅css)如下:

其中
350px
是侧边栏的宽度


如果侧边栏的宽度改变,您需要获得新的宽度,并用一个变量holdign替换
350px
,指定新宽度的值。

我觉得您可能只需要获得侧边栏的宽度,获得整个窗口的宽度,然后做一些简单的数学运算,计算出需要将模态的宽度设置为什么。但是,您还需要考虑窗口的大小调整。因此,它可能与此类似

setModalSize();

$('window').on('resize', function() {
    setModalSize();
}

function setModalSize() {
    var windowWidth = $('window').width(),
        sidebarWidth = $('#sidebar').css('width');

    $('#modal').css('width', (windowWidth - sidebarWidth));
}

有两种不同的方法可以拉伸元素的宽度。我已经将它们包含在这个快速代码示例中。

侧边栏的宽度是如何变化的?它可以调整大小吗?是不是73%的宽度是侧边栏宽度的总和?如果边栏宽度发生变化,则边栏宽度将为新边栏宽度的73%。
setModalSize();

$('window').on('resize', function() {
    setModalSize();
}

function setModalSize() {
    var windowWidth = $('window').width(),
        sidebarWidth = $('#sidebar').css('width');

    $('#modal').css('width', (windowWidth - sidebarWidth));
}