【发布时间】:2019-12-18 01:12:19
【问题描述】:
我希望将一个元素定位为粘性(不固定),因为它在屏幕上 每次滚动时,我们称之为 menuV,但我也需要它 定位为绝对,因此它不会与 div 交互 坐在它下面,我们称它为 todo。 “todo” div 覆盖了屏幕的整个宽度 (100%) 并位于 “菜单V”。
在下一个代码中,“menuV”将显示为浅蓝色 div,“todo” div 将显示为灰色 div。
如果我将“menuV”设置为absolute,当我滚动时它不会停留在屏幕上,如果我将它设置为sticky,“todo” div 会放在“menuV”下方,因为它有一个宽度为 100%,所以我需要一种同时设置两个位置的方法。
这里可以看到代码:
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
margin: 0;
}
#header {
width: 100%;
height: 200px;
background-color: blueviolet;
border: 6px solid #5b00b5;
padding: 0;
}
#div_padre {
background-color: sandybrown;
width: 100%;
border: 6px solid #a86002;
position: absolute;
}
#menuH {
position: sticky;
top: 0;
height: 50px;
background-color: royalblue;
border: 6px solid #0000f5;
}
#menuV {
width: 50px;
height: 92vh;
width: 20%;
top: 50px;
position: sticky;
background-color: #00ffe5;
border: 6px solid #0079ad;
float: left;
}
#todo {
width: 100%;
background-color: #454545;
border: 6px solid #000000;
float: left;
}
<div id="header">HEADER</div>
<div id="div_padre">
<div id="menuH"></div>
<div id="menuV"></div>
<div id="todo">
<pre style="margin:0;">
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
asd
</pre>
</div>
</div>
我一直在做一些研究,我发现唯一的东西是this,这确实是我需要的,但是由于某种原因,我不能像他们在 cmets 中所说的那样将元素的 id 封装在 css 上.
【问题讨论】:
-
尝试从“todo” div css 中删除 float:left。我认为它应该可以正常工作。
-
这行得通,但是“todo” div 中的文本不断被“menuV” div 向右推,因为它不是绝对定位。
-
好的。让我检查你的代码。将制定一个准确的答案,然后发布。