【发布时间】:2020-09-21 03:28:24
【问题描述】:
背景资料
我正在处理 HTML(Pug) 和 CSS(SASS) 中的水平菜单。我想让它每当你点击一个图标时,它就会突出显示。这是我想要的近似值:
[像我想要的菜单一样来自 https://codepen.io/ainalem/pen/pXrVmQ][1]
问题
我想使用一个单独的元素(称为 .bg-block),它将位于所选元素的后面。别开始取笑我了……
听起来像初学者的问题,对吧?position: absolute
完成!没问题,而且可能是您学习的第一件事!但是如果你不能使用 position: absolute 怎么办?
进入正题...
我想禁用碰撞并拥有一个具有_position:absolute_行为的元素,而不使用_position:absolute_。甚至可能吗?我怀疑它,但我不怀疑 StackOverflow 的力量。但是为什么呢?
我这样做是因为如果我的元素是 position: relative,我可以使用 top:、left:、right: 和 bottom: 相对于它的正常位置。我认为当我想调整 .bg-block 的位置时,这会更好。此外,我对任何其他可能的方式以及 StackOverflow 的强大功能感兴趣。
如果你需要一些背景代码来玩,这里是我的笔:
.menu
display: flex
flex-direction: row
align-items: center
justify-content: center
*
height: 100px
width: 100px
margin: 10px
cursor: pointer
display: flex
flex-direction: column
align-items: center
justify-content: center
transition: transform 80ms ease-in
p
cursor: text
margin-top: 0
letter-spacing: 0px
img
margin-bottom: 5px
.home, .search, .inbox
&:active
transform: scale(0.95)
.bg-block
position: absolute
background-color: lightblue
z-index: -1
position: relative
.menu
.bg-block
.home
img(src="https://cdn0.iconfinder.com/data/icons/typicons-2/24/home-256.png")
p Home
.search
img(src="https://cdn3.iconfinder.com/data/icons/wpzoom-developer-icon-set/500/67-256.png")
p Search
.inbox
img(src="https://cdn2.iconfinder.com/data/icons/maki/100/post-256.png")
p Inbox
请注意:我的 HTML 使用的是 SASS(使用 SASS 格式,而不是 SCSS)和 Pug。对于您可能遇到的任何不便,我深表歉意,但如果您有普通 HTML 和 CSS 的答案,我也很乐意听到它们(而且 PUG 和 SASS 中的内容相同,只是更好看)。
【问题讨论】:
-
这听起来像是一个 XY 问题,您不想使用 position:absolute 因为您无法轻松定位元素?你说如果我的元素是位置:相对,我认为当我想调整 .bg-block 的位置时这会更好。所以基本上问题不是位置:绝对而是如何定位元素?
-
@TemaniAfif 是的,但我想通过替换位置来解决它:绝对。如果您有针对此特定项目的答案,您可以评论另一种类型的答案(非常感谢您),但我还想添加另一个位置:绝对到我的开发人员工具箱????。我希望你明白。谢谢!