html - 如何使粘性 div 漂浮在页面的其余部分上?
问题描述
我有一个浮动菜单粘在窗口顶部,仅占其宽度的 1/4。剩下的 3/4(以及菜单的 1/4 后面)应该被下一个文档部分的图像占据。但是,图像最初出现在菜单下方,即菜单没有像我想要的那样浮动。
我得到了什么:
我想要的是:
body,ul {
margin: 0;
overflow-x:hidden;
}
header {
background: green;
}
nav {
background: #ff000080;
width: 25vw;
position: sticky;
top: 0;
}
main img {
width: 100vw;
}
<header>Title</header>
<nav>
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
</ul>
</nav>
<main>
<img src='https://cdn.britannica.com/90/3890-050-F451C580/rainforest-coast-lowland-rainforests-Ecuador-tropics-evergreen.jpg' />
</main>
如何让粘性元素一直浮动,即在其右侧不显示空白?
编辑:图像不能在背景上。它应该在main
标签内,那里会有更多元素,包括文本和可能的其他图像。除了必须粘在顶部的菜单之外,所有内容都应该一起滚动。
解决方案
您可以考虑 float 和 shape-outside 技巧以确保元素不会占用空间:
body,ul {
margin: 0;
overflow-x:hidden;
}
header {
background: green;
}
nav {
background: #ff000080;
width: 25vw;
position: sticky;
top: 0;
float:left;
shape-outside:linear-gradient(transparent,transparent);
}
main img {
width: 100%;
}
<header>Title</header>
<nav>
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
</ul>
</nav>
<main>
<img src='https://cdn.britannica.com/90/3890-050-F451C580/rainforest-coast-lowland-rainforests-Ecuador-tropics-evergreen.jpg' />
</main>
另一个想法是考虑height:0
包装器
body,
ul {
margin: 0;
overflow-x: hidden;
}
header {
background: green;
}
nav {
background: #ff000080;
width: 25vw;
}
.nav {
position: sticky;
top: 0;
float: left;
height:0;
}
main img {
width: 100%;
}
<header>Title</header>
<div class="nav">
<nav>
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
</ul>
</nav>
</div>
<main>
<img src='https://cdn.britannica.com/90/3890-050-F451C580/rainforest-coast-lowland-rainforests-Ecuador-tropics-evergreen.jpg' />
</main>
推荐阅读
- sql - 如何在 Postgresql 中计算具有相同时间戳的值的平均值?
- python - 无论输出是真还是假,括号如何改变?
- google-cloud-platform - 是否可以强制云功能创建一个新实例来运行请求?
- android - Android Radio Group 3x2 大小
- spring-boot - Javax.persistence 和 hibernate-core maven 依赖项不适用于 spring-boot-starter-data-jpa
- powerbi - 日历日期切片器必须自动选择“请求开始日期”
- java - 将源代码和可执行文件放入 CD/DVD
- linux - 我如何在 linix 中对键盘进行键盘映射
- python - 我们如何在 python 中访问硬件寄存器
- c++ - 如何在 Windows-10 (VS 2019) 中编译 Apache Arrow Flight C++ 示例