分离式滑动兄弟姐妹,一个兄弟姐妹影响另一个兄弟姐妹的悬停。

我试图实现类似于Navy.com头像的效果,即你把鼠标悬停在一个兄弟姐妹上,它就会滑动占据大部分空间,同时缩小并隐藏另一个兄弟姐妹的内容。

由于CSS的标准是不能选择之前的兄弟姐妹,所以我只能实现一边的效果,而不能实现另一边的效果。我明白仅靠CSS可能无法实现。

先谢谢您的帮助!

这是我目前使用的代码。

.container {
  display: flex;
  flex-direction: row-reverse;
}

.b1 {
  display: flex;
  order: 2;
  width: 50%;
  height: 150px;
  padding: 10px;
  background-color: rgb(40, 251, 202);
  transition: all 0.5s;
}

.b2 {
  display: flex;
  width: 50%;
  order: 1;
  height: 150px;
  padding: 10px;
  background-color: rgb(227, 29, 103);
  transition: all 0.5s;
}

.b1:hover {
  width: 80%;
}

.b2:hover {
  width: 80%;
}

.b1:hover~.b2 {
  background-color: rgba(227, 29, 103, 0.4);
  width: 20%;
}

.b2:hover~.b1 {
  background-color: rgba(40, 251, 202, 0.4);
  width: 20%;
}

.b1:hover~.b2 span {
  display: none;
}

.b2:hover~.b1 span {
  display: none;
}
<div class="container">
  <div class="b2">
    <span>This content will show up directly in its container.</span>
  </div>
  <div class="b1">
    <span>This content will show up directly in its container.</span>
  </div>
</div>

解决方案:

只要稍微调整一下结构,只用CSS就能达到你想要的效果。在这个实现中,我使用了 CSS选择器,结合一些多层次的 :hover 选择器(它的工作原理是 .container.child 占用同一空间)

虽然,只是作为一个建议:利用flex的自动生长功能,并删除了 width: 20%; 的逻辑。这样一来,未悬停组件的子代将占据相等的空间,而悬停的子代仍将增长到80%的宽度。这将允许你动态地添加更多的项目,而不必改变硬编码的CSS。

.container {
  display: flex;
}

.child {
  width: 50%;
  height: 150px;
  padding: 10px;
  transition: all 0.5s;
}

.child--red {
  background-color: rgba(227, 29, 103, 1);
}

.container:hover .child--red:not(:hover) {
  background-color: rgba(227, 29, 103, 0.4);
}

.child--green {
  background-color: rgba(40, 251, 202, 1);
}

.container:hover .child--green:not(:hover) {
  background-color: rgba(40, 251, 202, 0.4);
}

.container:hover .child:not(:hover) span {
  display: none;
}

.container:hover .child {
  width: 20%;
}

.container:hover .child:hover {
  width: 80%;
}
<div class="container">
  <div class="child child--green">
    <span>This content will show up directly in its container.</span>
  </div>
  <div class="child child--red">
    <span>This content will show up directly in its container.</span>
  </div>
</div>

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在python 3中使用for循环创建新的数组?

2022-9-8 17:14:16

未分类

宏程序无休止地循环运行

2022-9-8 17:14:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索