【问题标题】:remove shadow from input type checkbox in chrome?从chrome中的输入类型复选框中删除阴影?
【发布时间】:2017-11-19 11:34:01
【问题描述】:

如何从输入类型复选框中删除框阴影。

< input type="checkbox" name="run" value="" style="" >

基本上我想改造

我尝试了不同的方法,如边框、轮廓、框阴影等,但在复选框类型的情况下都没有。
任何方便的 CSS 或任何其他方式?
请注意,这是针对使用 chromium 引擎的应用程序,所以我希望它仅适用于 Google Chrome。

【问题讨论】:

  • @downvoter 介意告诉 b4 否决票的原因?
  • 有些人只是乐于给任何人投票,我希望 Stackoverflow 社区可以解决这个问题(投票)

标签: javascript html css google-chrome


【解决方案1】:

这是我的解决方案,我曾经隐藏实际的复选框,然后用具有所需设计的 div 替换它,还制作了使复选框工作所需的脚本。

$(document).ready(function() {
  $('.control--checkbox').click(function() {

      if ($('#mycheckbox').is(':checked')) {
        $('#mycheckbox').attr('checked', false);
      } else {
        $('#mycheckbox').attr('checked', true);
      }
    }

  );
});
.control input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}

.control__indicator {
  position: absolute;
  top: 2px;
  left: 0;
  height: 20px;
  width: 20px;
  border: 1px solid black;
}

.control input:disabled~.control__indicator {
  opacity: 0.6;
  pointer-events: none;
}

.control__indicator:after {
  content: '';
  position: absolute;
  display: none;
}

.control input:checked~.control__indicator:after {
  display: block;
}

.control--checkbox .control__indicator:after {
  left: 8px;
  top: 4px;
  width: 3px;
  height: 8px;
  border: solid black;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<div class="container">
  <div class="control-group">

    <label class="control control--checkbox">
      <input type="checkbox" id="mycheckbox" checked="checked"/>
      <div class="control__indicator"></div>
    </label>
  </div>
</div>

【讨论】:

  • 这正是我的想法。 .control__indicator 的出色工作
  • @JerryGoyal 很高兴为您提供帮助,先生
  • @JerryGoyal 你能接受这个作为解决方案吗
【解决方案2】:

受 Neji 解决方案的启发,我制作了一个更简单的自定义复选框版本。
它不使用图像,因此具有可扩展性和可定制性。用户可以通过$('#id_of_custom_checkbox').val()->true/false获取自定义复选框的值

HTML:

<div>

            <div id='mycheckbox' class='custom-checkbox'>
                <div class='custom-tick'></div>
            </div>

            <span>I agree</span>

        </div>

JS:

$(document).ready(function () {
    $('.custom-checkbox').click(function (e) {
        toggleCustomCheckbox(e.target);
    })
});

function toggleCustomCheckbox(el) {
    var tickEl = $(el).find('.custom-tick').addBack('.custom-tick');
    if (tickEl.css('visibility') === 'hidden') {
        tickEl.css('visibility', 'visible')
        $('.custom-checkbox').val(true)
        alert('you ticked me')
    } else {
        tickEl.css('visibility', 'hidden')
        $('.custom-checkbox').val(false)
        alert('you un-ticked me')
    }

}
function setCustomCheckbox(checkboxid, val) {
    var tickEl = $(checkboxid).find('.custom-tick').addBack('.custom-tick');
    if (val && val === true) {
        tickEl.css('visibility', 'visible')
        $('.custom-checkbox').val(true)
    }
    else {
        tickEl.css('visibility', 'hidden')
        $('.custom-checkbox').val(false)
    }
}

CSS:

.custom-checkbox{
    border: solid 2px orange;
    height: 15px;
    width: 15px;
    display: inline-block;
    cursor: pointer;
    -webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
  }
.custom-tick{
    border: inherit;
    display: inherit;
    cursor: inherit;
    visibility: hidden;
    height: 8px;
    width: 5px;
    transform: rotate(45deg);
    border-left: 0;
    border-top: 0;
    border-width: 2px;
    margin: 0px 0px 3px 4px;
}

这是工作小提琴:https://jsfiddle.net/JerryGoyal/xr62yara/8/

【讨论】:

    【解决方案3】:
    input[type="checkbox"]{
      height: 140px;
      width: 140px;
     -webkit-appearance: unset !important;
      border: 1px solid red;
    }
    
    
    <input type="checkbox" >
    

    只需取消复选框的外观。但是在检查时你必须做一个解决方法。

    在这里工作小提琴https://jsfiddle.net/d2tfo790/

    【讨论】:

    • 我无法“勾选”您的复选框
    • 你将无法做到我告诉你的。您将无法修改复选框的默认外观。要么你必须在它上面创建一个遮罩,让它看起来像一个复选框。
    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 2013-04-09
    • 2011-08-30
    • 1970-01-01
    • 2014-09-21
    • 2019-04-12
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多