#css
#css
Вопрос:
Пожалуйста, посмотрите этот код:
$(document).ready(function () {
$(".toggle-password").click(function () {
$(this).toggleClass("fa-eye fa-eye-slash");
var input = $($(this).attr("toggle"));
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
});
.input-group .field-icon {
cursor: pointer;
padding-top: 10px;
padding-right: 10px;
align-items: center;
border-top: 1px solid #ced4da;
border-bottom: 1px solid #ced4da;
}
.input-group-append, .input-group-text {
border-left: 1px dashed #ced4da !important;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AdminLTE 3 | Log in</title>
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source Sans Pro:300,400,400i,700amp;display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/fontawesome-free/css/all.min.css">
<!-- icheck bootstrap -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/icheck-bootstrap/icheck-bootstrap.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/css/adminlte.min.css">
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href="../../index2.html"><b>Admin</b>LTE</a>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="../../index3.html" method="post">
<div class="input-group mb-3">
<input type="email" class="form-control" placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" placeholder="Password">
<div class="input-group-append">
<span toggle="#Password" class="fa fa-fw fa-eye field-icon toggle-password"></span>
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
<div class="social-auth-links text-center mb-3">
<p>- OR -</p>
<a href="#" class="btn btn-block btn-primary">
<i class="fab fa-facebook mr-2"></i> Sign in using Facebook
</a>
<a href="#" class="btn btn-block btn-danger">
<i class="fab fa-google-plus mr-2"></i> Sign in using Google
</a>
</div>
<!-- /.social-auth-links -->
<p class="mb-1">
<a href="forgot-password.html">I forgot my password</a>
</p>
<p class="mb-0">
<a href="register.html" class="text-center">Register a new membership</a>
</p>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
<!-- jQuery -->
<script src="https://www.desytec.com/adminlte/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="https://www.desytec.com/adminlte/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="https://www.desytec.com/adminlte/js/adminlte.min.js"></script>
</body>
</html>
Когда вы запустите его, вы увидите 2 квадрата справа от поля пароля.
Если вы переместите фокус на это поле, вы заметите, что вся граница будет окрашена в синий цвет, кроме левой квадратной области.
Я знаю, что мог бы добавить модификатор :focus к классу в CSS, но я не нашел этот модификатор в правом квадрате, и он работает, он окрашивается в синий цвет, когда фокус находится в элементе управления вводом.
Может быть, я чего-то не хватает.
Как я могу это сделать?
Комментарии:
1. Я не совсем понимаю ваш вопрос, но, насколько я понимаю, я могу предложить указать идентификатор в поле пароля для доступа к нему в DOM, а затем вы можете применить: класс наведения.
2. Было бы лучше, если бы вы уточнили свой вопрос
3. @RinkeshGolwala это не функциональная проблема, а визуальная. Пожалуйста, щелкните внутри поля ввода пароля и посмотрите границу элемента управления. Вы сразу заметите проблему.
4. Да, я видел эту проблему. Но css вынуждает это.
.input-group .field-icon
принудительно устанавливает другую границу.5. Это именно тот вопрос. Как я могу это сделать. Обратите внимание, что самый правый квадрат окрашивает границу в синий цвет (и он также делает границу серой), и для него нет модификатора :focus, чтобы перекрасить его в синий (обратите внимание также, что квадраты находятся вне элемента управления вводом, поэтому модификатор :focus не будет работать), поэтомуЯ думаю, что есть хороший способ добиться этого, то есть покрасить границу в синий цвет, когда фокус ввода находится в элементе управления.
Ответ №1:
Надеюсь, это поможет. Я нацелился на левый квадрат напрямую .login-card-body .input-group .form-control:focus~.input-group-append .field-icon
.
Но было бы лучше, если бы вы присвоили этому диапазону уникальный идентификатор или имя класса.
$(document).ready(function () {
$(".toggle-password").click(function () {
$(this).toggleClass("fa-eye fa-eye-slash");
var input = $($(this).attr("toggle"));
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
});
.input-group .field-icon {
cursor: pointer;
padding-top: 10px;
padding-right: 10px;
align-items: center;
border-top: 1px solid #ced4da;
border-bottom: 1px solid #ced4da;
}
.input-group-append, .input-group-text {
border-left: 1px dashed #ced4da !important;
}
.login-card-body .input-group .form-control:focus~.input-group-append .field-icon {
border-top: 1px solid #80bdff;
border-bottom: 1px solid #80bdff;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AdminLTE 3 | Log in</title>
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source Sans Pro:300,400,400i,700amp;display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/fontawesome-free/css/all.min.css">
<!-- icheck bootstrap -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/icheck-bootstrap/icheck-bootstrap.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="https://www.desytec.com/adminlte/css/adminlte.min.css">
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href="../../index2.html"><b>Admin</b>LTE</a>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="../../index3.html" method="post">
<div class="input-group mb-3">
<input type="email" class="form-control" placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" placeholder="Password">
<div class="input-group-append">
<span toggle="#Password" class="fa fa-fw fa-eye field-icon toggle-password"></span>
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
<div class="social-auth-links text-center mb-3">
<p>- OR -</p>
<a href="#" class="btn btn-block btn-primary">
<i class="fab fa-facebook mr-2"></i> Sign in using Facebook
</a>
<a href="#" class="btn btn-block btn-danger">
<i class="fab fa-google-plus mr-2"></i> Sign in using Google
</a>
</div>
<!-- /.social-auth-links -->
<p class="mb-1">
<a href="forgot-password.html">I forgot my password</a>
</p>
<p class="mb-0">
<a href="register.html" class="text-center">Register a new membership</a>
</p>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
<!-- jQuery -->
<script src="https://www.desytec.com/adminlte/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="https://www.desytec.com/adminlte/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="https://www.desytec.com/adminlte/js/adminlte.min.js"></script>
</body>
</html>
Комментарии:
1. Спасибо. Это сделало это. Я не могу найти, где менялся цвет границы для правильного квадрата.