由纯 CSS 实现的 Switch 开关想到的(二)

2015/02/25 | 1分钟阅读 | 更新于 2015/02/25

事实上,用相对定位解决确实不好,两栏之间会凭空多出一行空行。

后来一想,直接去掉span,把文字写在label里,这时候checkbox就有点碍事儿了 height: 0 在 iE11 下效果非常棒,话说,Checkbox 在 IE11 下可以随意变大变小的,不过在 Firefox 下就不行了,死活有 13px 高度。

display: none 居然成功了,虽然看不到checkbox,但是它还是存在的。label也可以很好的接收点击。

现在的代码:

HTML 部分:

div,
input {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
div.cards {
  width: 200px;
  min-height: 40px;
}
div.cards input {
  display: none; /*直接不显示就好*/
}
div.cards label {
  display: block;
  width: 100%;
  height: 40px;
  background-color: #66aadd;

  line-height: 40px; /*令文字居中*/
  text-align: center;
}
div.cards div {
  width: 100%;
  height: 240px;
  background-color: #abcdef;
  display: block;
  height: 0px;
  transition-duration: 0.2s;
  overflow: hidden;

  padding: 0 5px;
}
div.cards input:checked + div {
  height: 240px;
}

div.cards img {
  margin: 0;
  padding: 0;
  background-color: #123456;
  float: left;
  margin: 5px;
  margin-top: 10px;
}
div.cards p {
  margin: 0;
  padding: 0;
  margin: 5px;
}

html部分

<div class="cards">
  <label for="b1">123</label>
  <input type="checkbox" id="b1" />

  <div>
    <img width="50" height="70" />
    <p>
      wqej qke lklk kjlqjle llz kljs skjflks slkjf, sjf slfj. sfhk, kjsf skfn,
      uheifw. wefhwef oqjiweoij kqwe oo qwei sc skhnfj sd, wfkh kwejf kjwef
      hnwjek kjwfeh wke, kwejfk kjf.
    </p>
  </div>
</div>

<div class="cards">
  <label for="b2">345</label>
  <input type="checkbox" id="b2" />
  <div>
    <p>
      wqej qke lklk kjlqjle llz kljs skjflks slkjf, sjf slfj. sfhk, kjsf skfn,
      uheifw. wefhwef oqjiweoij kqwe oo qwei sc skhnfj sd, wfkh kwejf kjwef
      hnwjek kjwfeh wke, kwejfk kjf.
    </p>
  </div>
</div>

<div class="cards">
  <label for="b3">567</label>
  <input type="checkbox" id="b3" />

  <div>
    <h3>Title 3</h3>
  </div>
</div>

在每一部分里可以实现图文混排,纯文字等等,当然这就是另一回事儿了 效果图:

IE11:

Firefox:

Opera, 现在的opera是webkit内核的吧:

© 2026 香蕉引擎故障报告

🌱 Powered by Hugo with theme Dream.

关于

要怎么介绍自己呢,🤔。

很早以前是作为 Web 前端在学习的,但是工作第一年就成为了全干工程师。喜欢尝试各种东西,什么都会一点。

一直很喜欢 Ebiten 游戏引擎 ,特别简洁,用它做过一些小东西,可以查看这个分类 。另外特别推荐这个木鱼 ,是一个相对完整的小玩意儿,包含手搓的一个简单的 UI 框架;支持鼠标和键盘操作;有多语言和主题切换功能;同时支持 Web 端和客户端。它的源代码在 bin16/wooden-fish

主题

网站基于 Hugo,当前使用的是 hugo-theme-dream 主题的修改版 ,根据我的需要,做了一些对 PaperMod 的兼容。

我自己也写过主题 ,但是没有别人写的好看。

正在从我的笔记中往外搬运内容

等待更新:

  • 从《锈湖》中学了些什么东西
  • 我拿 React 写解谜游戏的经过
  • 基于 Pocketbase 的 Pocket Memos
  • 数独!