代码之家  ›  专栏  ›  技术社区  ›  user7674753

为什么我的边界没有完全围绕文本框?

  •  0
  • user7674753  · 技术社区  · 6 年前

    我使用的是JQuery Mobile css,我也有自己的css,其中包括:

    input.error{
          border: red 2px solid;
    }
    

    我这样做是因为当用户输入无效信息时,我希望文本框周围有一个红色的轮廓。问题是文本框周围的边框没有完全覆盖。这是一张它看起来像什么的照片。有人知道为什么会这样吗? enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   deblocker    6 年前

    这是因为JQM通过一个更吸引人的容器增强了文本输入 div 还有一个习惯 ui-input-text 班您需要更改 border-color box-shadow 父元素的。

    此外,还可以调整聚焦样式,将标准蓝色光环更改为红色。

    类似这样:

    $(document).on("pagecreate", "#page-one", function() {
      $("#pwd").parent().addClass("error");
      $("#pwd-confirm").parent().addClass("error");
      $('.pwd').bind('input', function() {
        var pwd = $("#pwd").val(), confirm = $("#pwd-confirm").val();
        var empty = pwd == "";
        var confirmed = !empty && pwd == confirm;
        $("#pwd").parent().toggleClass("error", empty);
        $("#pwd-confirm").parent().toggleClass("error", !confirmed);
      });
    });
    .ui-input-text.error  {
      border-color: rgba(255,0,0,.8) !important;
      -moz-box-shadow: inset 0 1px 3px rgba(255,0,0,.2) !important;
      -webkit-box-shadow: inset 0 1px 3px rgba(255,0,0,.2) !important;
      box-shadow: inset 0 1px 3px rgba(255,0,0,.2) !important;
    }
    .ui-input-text.ui-focus.error {
      -webkit-box-shadow: 0 0 12px #F00 !important;
      -moz-box-shadow: 0 0 12px #F00 !important;
      box-shadow: 0 0 12px #F00 !important;
    }
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
      <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css">
      <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
      <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script>
    </head>
    <body>
    <div data-role="page" id="page-one">
      <div role="main" class="ui-content">
        <input id="pwd" type="text" class="pwd" placeholder="Enter Password">
        <input id="pwd-confirm" type="text" class="pwd" placeholder="Confirm Password">
      </div>
    </div>
    </body>
    </html>