如何使单选按钮看起来像切换按钮

2024-02-28

我希望一组单选按钮看起来像一组切换按钮(但功能仍然像单选按钮一样)。它们不必看起来完全像切换按钮。

我怎样才能只使用 CSS 和 HTML 来做到这一点?

编辑:当选中/取消选中按钮时,我会满意地使小圆圈消失并更改样式。


根据您想要支持的浏览器,您可以使用:checked伪类 http://www.w3.org/TR/css3-selectors/#checked除了隐藏单选按钮之外,还可以使用选择器。

使用这个 HTML:

<input type="radio" id="toggle-on" name="toggle" checked
><label for="toggle-on">On</label
><input type="radio" id="toggle-off" name="toggle"
><label for="toggle-off">Off</label>

您可以使用类似以下 CSS 的内容:

input[type="radio"].toggle {
  display: none;
}

input[type="radio"].toggle:checked + label {
  /* Do something special with the selected state */
}

例如,(为了保持自定义 CSS 的简洁)如果您使用引导程序 http://twitter.github.com/bootstrap/,你可以添加class="btn"给你的<label>元素并适当设置它们的样式以创建如下所示的切换:

...只需要以下额外的 CSS:

input[type="radio"].toggle:checked + label {
  background-image: linear-gradient(to top,#969696,#727272);
  box-shadow: inset 0 1px 6px rgba(41, 41, 41, 0.2),
                    0 1px 2px rgba(0, 0, 0, 0.05);
  cursor: default;
  color: #E6E6E6;
  border-color: transparent;
  text-shadow: 0 1px 1px rgba(40, 40, 40, 0.75);
}

input[type="radio"].toggle + label {
  width: 3em;
}

input[type="radio"].toggle:checked + label.btn:hover {
  background-color: inherit;
  background-position: 0 0;
  transition: none;
}

input[type="radio"].toggle-left + label {
  border-right: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

input[type="radio"].toggle-right + label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

我已将其以及额外的后备样式包含在单选按钮切换 jsFiddle 演示 http://jsfiddle.net/tms/uPv6X/。注意:checked仅 IE 9 支持,因此此方法仅限于较新的浏览器。

但是,如果您需要支持 IE 8 并且愿意依赖 JavaScript*,您可以破解对 IE 8 的伪支持:checked没有太多困难(尽管此时您可以直接在标签上轻松设置类别)。

使用一些快速而肮脏的 jQuery 代码作为解决方法的示例 http://jsfiddle.net/tms/DBZPh/:

$('.no-checkedselector').on('change', 'input[type="radio"].toggle', function () {
    if (this.checked) {
        $('input[name="' + this.name + '"].checked').removeClass('checked');
        $(this).addClass('checked');
        // Force IE 8 to update the sibling selector immediately by
        // toggling a class on a parent element
        $('.toggle-container').addClass('xyz').removeClass('xyz');
    }
});
$('.no-checkedselector input[type="radio"].toggle:checked').addClass('checked');

然后,您可以对 CSS 进行一些更改来完成任务:

input[type="radio"].toggle {
  /* IE 8 doesn't seem to like to update radio buttons that are display:none */
  position: absolute;
  left: -99em;
}

input[type="radio"].toggle:checked + label,
input[type="radio"].toggle.checked + label {
  /* Do something special with the selected state */
}

*If you're using Modernizr, you can use the :selector test https://gist.github.com/paulirish/441842 to help determine if you need the fallback. I called my test "checkedselector" in the example code, and the jQuery event handler is subsequently only set up when the test fails.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使单选按钮看起来像切换按钮 的相关文章

  • 如何使用 CSS 绘制一个向左的三角形?

    我已经很久没有建造这个向上的三角形了 我怎样才能改变我的 CSS 使角指向左边 http jsfiddle net 3sP8q http jsfiddle net 3sP8q left corner width 0 height 0 bor
  • 更改单选按钮上输入字段中的值

    我正在开发一个项目 用户必须在两个选项中选择一个 选项是单选按钮 目前我正在获取 keyup 事件的结果 当用户选择一个选项 然后在输入字段中输入值时 他会在另一个结果输入字段中得到结果 它工作正常 但是当用户想要更改选项并选择其他选项时出
  • 为什么 z-index 对 div 不起作用?

    我试图让我的页脚显示在页脚背景的顶部 但 z index 似乎不起作用 有人看出它有什么问题吗 http jsfiddle net f2ySC http jsfiddle net f2ySC 你必须明确地定义position财产 foote
  • Firefox 中出现图像映射问题

    我的图像地图无法在 Firefox 中运行 但可以在 Chrome 和 Safari 中运行 我认为这与 div 内的一些标签有关 你们能帮帮我吗 因为我对此不太了解 div style font size 14px img src dat
  • 生成基于内联 HTML 样式的样式表?

    一段时间以来 我一直致力于对网站的不同部分进行样式设计 但是我尚未将内联样式放入样式表中 我想知道是否存在一个工具可以解析 HTML 文件并从中生成样式表 例如 这是我网站的一个片段 div class block style border
  • 如何使用 JavaScript 提高音频加载速度?

    我已经创建了播放代码 mp3使用 JavaScript 文件 但该文件在 Android 上播放需要很长时间 我想在点击文本图像后快速播放声音 如何提高 Android 的加载速度 我的 JavaScript 代码 if window au
  • 在聚合物元素中动态注入共享样式(聚合物1.2.3)

    我确实有几个自己创建的嵌套聚合物元素 目前 通过使用聚合物共享样式 我可以将自定义样式注入其他元素 不幸的是 这种方法仅限于静态使用 因此 在实现时 我确实需要通过导入共享样式模块来知道哪个元素应该使用哪种共享样式 and 但在我的用例中
  • 使用 jquery 触发 css3 关键帧

    我写了一个关键帧动画 webkit keyframes cubemove 0 webkit transform translateZ 194px rotateY 0deg 20 webkit transform translateZ 194
  • 使用 Flexbox 时 Apex 图表无法正确调整大小

    最近 我将 Floats 更改为 FlexBox 以便更轻松地使用面板 正如我在其他问题上所建议的那样 虽然大多数事情都按我的预期工作 但更改后我在使用 Apex Charts 时遇到了问题 完整代码在这里 https github com
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • 带有 HTML 的 UIActivityViewController

    当我将包含 HTML 内容的字符串作为数组元素传递给UIActivityViewController initWithActivityItems方法中 它不会在选定的 共享 控制器中将其呈现为 HTML 而是呈现 HTML 源 即标记而不是
  • Bootstrap“navbar-brand”导致“navbar-nav”项目从导航栏中的中心位置向右移动?

    我正在尝试创建一个导航栏 其左侧有 品牌 LOGO 而实际的导航项目位于整个栏的中心 我正在使用默认的 Bootstrap 导航栏 因为我一周前才开始学习 Web 开发 到目前为止 情况是这样的 但是 您可以看到导航项稍微移动到页面实际中心
  • height:100% 在 Internet Explorer 中不起作用

    我有一个关于 CSS 属性的问题height 100 在 Internet Explorer 中 height 100 在 IE 中不起作用 但在 Firefox 和 Chrome 中可以 HTML 文件 div ul ul div
  • 一种用javascript创建随机噪声背景图像(png)的方法?

    YouTube的新布局添加了我非常喜欢的背景随机噪声 在其他网站上看到了几乎完全相同的效果 所以我计划在我的网页原型中使用相同的技术 或者至少在其中使用这个 技巧 我的工具箱以供将来使用 图片是这样的 取自http g raphaeljs
  • 不透明度如何影响元素顺序?

    我发现 CSS 有一个非常奇怪的行为opacity与浮动元素相结合 考虑以下 HTML div div Right button div div div Overlay div 最后div将覆盖前两个浮动的 删除不透明度会将最新的 div
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • 垂直滚动,与 div/元素/锚点对齐/对齐

    我发现了一些可爱的网站 http www mini jp event campaign big point http www mini jp event campaign big point http www twenty8twelve c
  • Selenium 查看鼠标/指针

    有什么方法可以在运行测试时真正看到硒鼠标吗 要么是 Windows 光标图像 要么是某种点或十字线或任何东西 我正在尝试使用拖放功能selenium and java in an HTML5Web 应用程序 并且能够看到光标以了解它实际在做
  • JavaScript - 替换 html 字符串中的特定单词索引

    我在 JS 字符串操作方面面临着一项具有挑战性的任务 有一个 HTML 字符串 我需要在其中替换特定单词索引处的单词 单词索引是忽略 HTML 标签时单词的编号 例如 下面是 HTML 字符串 span style font family
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis

随机推荐

  • ASP.NET MVC - Castle ActiveRecord - 显示 SQL 查询

    我正在使用 ASP NET MVC城堡活动记录 http www castleproject org activerecord index html作为我的持久层 我想知道是否可以显示在我的 MySQL 服务器上执行的 SQL 查询 我知道
  • JSF 2.0 编码

    要使 JSF 2 0 应用程序 在 Tomcat 6 上 使用 UTF 8 编码 需要哪些设置和注意事项 下面列出了关于该主题的两篇精彩文章 它们是由在这里布道的 balusC 编写的 关于UTF 8支持的一件事 http balusc b
  • ruby ssh:交互式命令“su”:成功登录后如何进一步?

    我想在 SSH 会话中的远程计算机上工作 登录远程服务器 su 做我的工作 使用我的脚本 a 可以完成步骤 1 和 2 的工作 在执行 su 命令时 我可以发送密码 并得到了我期望的答案 on data data gis v04ree gt
  • 在索引处每行插入多个值

    我正在尝试矢量化以下操作 将较小的数组放入较大的数组中 从而使每行的索引随着另一个数组的函数而变化 示例数据 array large 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 array small 1 2 3 4 5 6
  • Linux 和 Windows 上的 Python sys.maxint、sys.maxunicode

    在 64 位 Debian Linux 6 上 Python 2 6 6 r266 84292 Dec 26 2010 22 31 48 GCC 4 4 5 on linux2 Type help copyright credits or
  • 如何判断用户是否选择了浅色主题或深色主题

    有没有办法判断用户是否选择了浅色主题或深色主题 Thanks 有一个属性可以对此进行测试 而不是比较实际的资源颜色 Visibility v Visibility Resources PhoneLightThemeVisibility if
  • 函数 try 块是否允许我们解决异常?

    所以我正在阅读有关函数 try 块的内容link https www learncpp com cpp tutorial 14 7 function try blocks 还有一行描述了普通 try 块和函数 try 块之间的区别 如下所示
  • 一次性登录应用程序 - FirebaseAuth

    我正在开发一个使用 Firebase 身份验证通过电话号码登录用户的应用程序 我想添加一项功能 使用户只能一次性登录 即即使用户杀死应用程序并再次启动它 他也应该登录 另外 我不想添加注销功能 为此可以做什么 实现此目的的最简单方法是使用侦
  • java LocalDateTime 解析具有模式 MM/d/yyyy HH:mm:ss a 的日期的异常

    我在使用 java datetime API 执行下面的代码时遇到异常 String strDate 12 4 2018 5 26 28 PM DateTimeFormatter formatter DateTimeFormatter of
  • Spring 3 表达式语言如何与属性占位符交互?

    Spring 3 引入了新的表达语言 http docs spring io spring docs 3 0 x spring framework reference html expressions html SpEL 可以在 bean
  • 如何检测产品搜索中的拼写错误并提出可能的更正建议?

    给定一个非常大的产品名称数据库 您如何检测用户搜索中可能存在的拼写错误并建议可能的更正 有点像谷歌呈现它们的方式 E g 用户输入 fork handels 并按 搜索 他们回来了 没有结果 您是说 叉柄 吗 解决这个问题有几种方法 保留一
  • G++ 找不到 boost 库。我说他们就在众目睽睽之下

    我正在尝试构建一些代码 这是我收到的错误 main o In function static initialization and destruction 0 home jmbeck Downloads boost 1 48 0 boost
  • Visual Studio 2013 缺少转换为 Web 应用程序

    我正在管理一个旧的 Web 应用程序 它仍然具有 Framework 1 的遗留代码 你相信吗 目前使用 Framework 4 0 当我需要修复或升级网页时 我通过单击 转换为 Web 应用程序 将其转换为 Web 应用程序网页 VS 2
  • order Graphviz - 固定子图

    我喜欢创建一个像这样的 3 柱形图 Code digraph g rankdir LR node shape circle fontsize 14 fontsize 18 labeljust l rank same edge style i
  • Docker 容器超时?

    对于我在大学的论文 我正在研究一个编码排行榜系统 用户可以通过临时 Docker 容器编译 运行不受信任的代码 到目前为止 系统似乎运行良好 但我面临的一个问题是 当提交无限循环的代码时 例如 while True print infini
  • Twitter 回调 URL

    我正在使用 twitter SDK 与 ios 应用程序集成 当我遵循所有步骤并创建客户密钥并将其放入我的应用程序中时 当我运行应用程序时 它会显示 TwitterKit 确实遇到了消息错误 获取用户身份验证令牌时出错 错误域 TWTRLo
  • 如何在我自己的 C shell 中正确等待前台/后台进程?

    In this https stackoverflow com questions 873620 how do i clear this array pointer in c上一个问题我发布了大部分我自己的 shell 代码 我的下一步是实
  • 从子查询更新多列

    此类问题之前已被问过几次 但并不完全是我想要的 我需要SET两行等于子查询的不同部分 我目前正在使用 UPDATE records SET leads SELECT COUNT FROM leads table WHERE leads ta
  • 替换字符串中的字符列表

    我有一个字符串 它是网页的标题 所以它可以有 和其他特殊字符 我想编写一个函数 它将接受一个字符串并替换一个字符列表 试图找到最好的方法来做到这一点 我应该使用列表 数组或枚举来保存特殊字符列表 还是 java 中已经有一些东西可以做到这一
  • 如何使单选按钮看起来像切换按钮

    我希望一组单选按钮看起来像一组切换按钮 但功能仍然像单选按钮一样 它们不必看起来完全像切换按钮 我怎样才能只使用 CSS 和 HTML 来做到这一点 编辑 当选中 取消选中按钮时 我会满意地使小圆圈消失并更改样式 根据您想要支持的浏览器 您