【问题标题】:Different Chrome checkbox size不同的 Chrome 复选框大小
【发布时间】:2017-07-31 14:16:44
【问题描述】:

我想以某种优雅的方式解决仅在 Chrome 中发生的设计问题。 当我用div 包装“输入”类型复选框时,它具有引导类col-…。这个div div 由复选框填充,但在 Chrome 中,复选框也会改变大小(变大) 我找到了一个解决方案,基本上可以解决问题,但并不理想。

 @media (-webkit-min-device-pixel-ratio: 0) {
       [class*="col-"] input[type=checkbox] {
            -webkit-transform: scale(0.5) !important;
        }
    }

JSFiddle example

首先,我只需要为 Chrome 制定此规则,因为根据 MDN 这不是最佳实践。 其次,scale的变化不仅影响checkbox的大小,还影响div内的一切。因此,我失去了该功能,该客户不得完全单击复选框以进行检查。 有没有更好的解决方案?

【问题讨论】:

    标签: html css google-chrome


    【解决方案1】:

    您的问题是,在 JSFiddle 中提供的代码中,您使用的是具有固定高度的 form-control 类。关于 FF 和 Chrome 的行为,似乎只有 Chrome 实际上允许您使用 CSS 设置复选框的尺寸...

    我建议您检查 Bootstrap docs 并查看该复选框在 Bootstrap 中是如何实现的。

    【讨论】:

    • 因为本网站是用 ASP.NET MVC 分别开发的,所以包含了一些类、属性等。剃刀。我认为您正在解决一个稍微不同的问题。我想在检查器周围创建一个“框”,使其在所有浏览器中都具有相同的大小(就像在 Firefox 中一样)。
    • 重点是为 PC 和平板电脑优化响应式表单。我的想法是,当您从手机或平板电脑(或其他一些小屏幕设备)上使用它并想要选中该框时,它会很小且在这种情况下很容易错过,会有一个稍大的隐形“框”,即使您实际上错过了可见元素,它也会检查检查器。我想避免这种解决方案,因为我有标签,我认为这并不理想。 Like this
    • 嗯,我不知道 Razore 和 ASP.NET MVC,但我很确定有一些方法可以覆盖默认行为,这可能需要这样做。
    • 关于你的想法,我不确定这种优化是否真的有必要,因为我认为在移动设备上点击复选框很容易(刚刚尝试过)。但是,如果您真的需要这样做,那么您必须使用与您提到的文档中相同的方法。您必须使用 label 元素(或使用 for 属性)包装复选框并设置标签样式。我认为以这种方式直接设置复选框的样式是非常糟糕的主意......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多