当前位置: 首页 > 知识库问答 >
问题:

我可以用同一个复选框hack触发2个动作吗? CSS的使用

方苗宣
2023-03-14

在本例中,我有一个侧边菜单,在选中“复选框Hack”后从左边滑动。 当菜单出现时,我如何在整个页面中放置阴影覆盖(将焦点放在侧边菜单上)? 我尝试用复选框应用相同的方法,但似乎不起作用。 有人帮忙吗?

null

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* You can't modify checkbox so hide it */

#hamburger-checkbox {
  display: none;
}


/* Use label instead */

.hamburger {
  font-size: 30px;
  position: absolute;
  z-index: 99;
}


/* Use :checked to indicate when it's checked */

#hamburger-checkbox:checked~.nav {
  transition: 2s ease;
  transform: translateX(0px);
}

.nav {
  width: 200px;
  height: 100vh;
  background: orange;
  transform: translateX(-200px);
  transition: 2s ease;
  padding: 40px 10px;
}

.nav a {
  display: block;
  text-align: center;
  padding: 10px;
}

.color-overlay{
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  opacity: .58;
  background: #787777;
  transition: 0.1s ease;
}

#hamburger-checkbox:checked ~ .color-overlay{
  width: 100%;
  transition: 0.1s ease;
}
<div class="color-overlay"></div>
<header>
  <input type="checkbox" id="hamburger-checkbox">
  <label class="hamburger" for="hamburger-checkbox">☰</label>

  <nav class="nav">
   <a href="#">Home</a>
   <a href="#">About</a>
   <a href="#">Contact</a>
   <a href="#">Projects</a>
  </nav>
</header>

null

共有1个答案

骆磊
2023-03-14

作为一个变体,您可以添加伪元素(更新):

null

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


/* You can't modify checkbox so hide it */

#hamburger-checkbox {
  display: none;
}


/* Use label instead */

.hamburger {
  font-size: 30px;
  position: absolute;
  z-index: 99;
}


/* Use :checked to indicate when it's checked */

#hamburger-checkbox:checked~.nav {
  transition: 2s ease;
  transform: translateX(0px);
}

#hamburger-checkbox:checked~.color-overlay {
 opacity: .58;
}

.nav {
  width: 200px;
  height: 100vh;
  background: orange;
  transform: translateX(-200px);
  transition: 2s ease;
  padding: 40px 10px;
  position: relative;
}

.color-overlay {
  width: 100vw;
  position: fixed;
  height: 100vh;
  background: #787777;
  top: 0;
  left: 0;
  z-index: -1;
  opacity: 0;
  transition: opacity 2s ease;
}

.nav a {
  display: block;
  text-align: center;
  padding: 10px;
  z-index: 2;
  position: relative;
}
<header>
  <input type="checkbox" id="hamburger-checkbox">
  <label class="hamburger" for="hamburger-checkbox">☰</label>
  <div class="color-overlay"></div>
  <nav class="nav">
    <a href="#">Home</a>
    <a href="#">About</a>
    <a href="#">Contact</a>
    <a href="#">Projects</a>
  </nav>
</header>
 类似资料:
  • 我想从多个SQS队列中触发一个lambda函数。lambda将进行的大部分处理都是相同的,只是一个小步骤将基于表名。我不想为此保留两个单独的lambda。拥有相同/多个lambda的利弊是什么?

  • 我有以下示例代码片段(我正在使用React,但不想在这里发布之前花时间清理实际的项目代码): null null 当前,当我点击按钮打开导航菜单时,页面将禁用滚动,菜单将淡入。当我再次单击该按钮时,滚动将重新启用,菜单将淡出。 我实际上想要的是一个擦拭过渡而不是褪色,像这样: 使用上图作为类比,主页面内容将是A,而菜单将是B。但是,我想要的擦拭不是水平的,而是垂直的,即当我打开菜单时,擦拭将从上到

  • 使用下面的PyMongo查询。我使用了Mongo网上研讨会的一些技巧,他们建议使用_id字段来存储时间戳,以提高性能和内存使用。 我得到的结果只按天排序。在管道的$sort步骤中,我只使用了 结果是按年月正确排序的。在$sort step上可以使用多少字段有限制吗? 以下是一些示例文档

  • 我需要向3个服务发送消息,并在最后聚合结果 这很容易通过发布订阅频道实现- 当其中一个服务实际上是对其他服务的2次调用时,就会出现问题。现在我想介绍另外的和聚合器。 例如。 因此不会对消息进行分组(逐个发送)。 聚合器1从聚合器2获取结果并发送消息,无需等待service activator组1的消息。 有什么建议吗?

  • 问题内容: 为TextView和ImageView设置相同的ID是否正确?由于它们属于一个实体,因此我给了他们两个相同的ID。如果是..那我怎么能分别通过id找到这些视图呢? 问题答案: 为TextView和ImageView设置相同的ID是否正确? 简短答案: 否 长答案:使用相同的ID 是 不 正确的,因为这样做可能会导致运行时错误。考虑下面的例子 layout.xml LocationAct

  • 问题内容: 为TextView和ImageView设置相同的ID是否正确?由于它们属于一个实体,因此我给了他们两个相同的ID。如果是..那我怎么能分别通过id找到这些视图呢? 问题答案: 为TextView和ImageView设置相同的ID是否正确? 简短答案: 否 长答案:使用相同的ID 是 不 正确的,因为这样做可能会导致运行时错误。考虑下面的例子 layout.xml LocationAct

  • 我正在使用Flink流读取来自Kafka的数据,并对数据进行处理。在使用Kafka之前,当应用程序启动时,我需要使用DataSet API读取一个文件,并根据一些条件对文件进行排序,然后从中创建一个列表。然后开始以流媒体的方式从Kafka那里消费。我已经编写了一个逻辑,使用DataSet API从文件中读取数据并对其进行排序。但当我尝试调谐程序,它从来没有执行,闪烁立即开始消耗Kafka。有没有办

  • 我正在尝试编写一个存储过程,其中我使用2个表来获取基于条件的数据,但它给出了错误。 我的SP是: 错误: 以下查询失败:“CREATE DEFINER=@PROCEDURE(在DATETIME中,在INT中,在INT中,以及在INT中)不确定性包含SQL安全定义器,如果dateposteds