Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以仅使用样式相对于另一个动态大小的元素定位一个元素?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 是否可以仅使用样式相对于另一个动态大小的元素定位一个元素?

Javascript 是否可以仅使用样式相对于另一个动态大小的元素定位一个元素?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果某些维度是动态的,是否可以仅使用CSS样式将一个元素相对于另一个特定元素进行定位 我知道我可以很容易地用jQuery实现这一点,但我正试图尽可能地将所有内容都放入样式表中,而不是依靠javascript 下面的代码或多或少完成了我试图完成的任务,尽管我希望摆脱javascript,但仍然具有相同的效果: 内容: <div id="reference"> Some text - lorem ipsum, or short, shouldn't matter. See C

如果某些维度是动态的,是否可以仅使用CSS样式将一个元素相对于另一个特定元素进行定位

我知道我可以很容易地用jQuery实现这一点,但我正试图尽可能地将所有内容都放入样式表中,而不是依靠javascript

下面的代码或多或少完成了我试图完成的任务,尽管我希望摆脱javascript,但仍然具有相同的效果:

内容:

<div id="reference">
    Some text - lorem ipsum, or short, shouldn't matter.  See CSS
</div>
<div id="relative">
    Relative
</div>
JS:

截图:


是的。有很多方法可以做到这一点。您可以通过将橙色正方形放置在文本div中,并将其右值设置为“-50px”,将其底部值设置为“0px”来进行绝对定位

您的HTML如下所示:

    <div id="reference">
    Some text - lorem ipsum, or short, shouldn't matter.  See CSS

<div id="relative">
    Relative
</div>
</div>

一些文字-lorem ipsum,或简称,应该无关紧要。参见CSS
相对的
试试这样的。无论参考div的大小如何,橙色正方形应始终位于底部和右侧

var reference = $("div#reference");
var refPos = reference.offset();
var refWidth = reference.outerWidth();
var refHeight = reference.outerHeight();

var relative = $("div#relative");
var relHeight = relative.outerHeight();

relative
    .css({
        "position":"absolute",
        "left":(refPos.left + refWidth) + "px",
        "top":(refPos.top + refHeight - relHeight) + "px"
    })
    .show();
    div#reference {
        position: relative;
    }

    div#relative {
        position: absolute;
        right: -50px;
        bottom: 0px;
   }
    <div id="reference">
    Some text - lorem ipsum, or short, shouldn't matter.  See CSS

<div id="relative">
    Relative
</div>
</div>