css 设置点击按钮获取焦点或者焦点在该div的时候显示 否则不显示
时间: 2024-09-08 22:00:56 浏览: 121
在CSS中,你可以使用`:focus`伪类选择器来实现当按钮获得焦点或当焦点在特定的`div`元素内时显示某种样式,否则不显示。这通常用于表单元素,比如输入框、按钮等,当它们获得焦点时显示一些视觉效果以提示用户。
以下是一个简单的例子:
```css
/* 为获得焦点的按钮设置样式 */
button:focus {
background-color: yellow; /* 当按钮获得焦点时背景变为黄色 */
}
/* 为获得焦点的div设置样式 */
div:focus-within {
border: 1px solid red; /* 当div内有元素获得焦点时,div的边框变为红色 */
}
```
在HTML中,你可能有如下结构:
```html
<button>点击我</button>
<div>
<input type="text" />
</div>
```
当用户点击按钮或者在`div`内的输入框内点击时,相应的样式就会显示。请注意,`:focus`选择器仅适用于可获得焦点的元素,比如`<input>`, `<button>`, `<textarea>`等表单元素。
相关问题
javaweb做一个用户登录页面,有用户ID,用户密码输入框,登录和重置按钮,字体红色,所有字体均是红色 2 用户ID输入框获取焦点的时候边框变成浅蓝也失去焦点的时候边框变成原来的灰色或者黑色;密码输入框效果也是这样 3点击登录按钮完成form表单验证: 用户ID不能为空,只能是字母 密码纯数字6位否则不跳转 校验通过跳转到showMess.html展示用户信息
好的,这里给出一份JavaWeb实现的代码示例,供参考:
1. HTML代码(login.html)
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
<style>
input {
font-size: 16px;
color: red;
border: 1px solid gray;
padding: 5px;
}
input:focus {
border-color: lightblue;
}
.error {
color: red;
font-size: 14px;
}
</style>
</head>
<body>
<form action="login" method="post">
<label>用户ID:</label>
<input type="text" name="userId" id="userId" required pattern="[a-zA-Z]+" />
<br /><br />
<label>密码:</label>
<input type="password" name="password" id="password" required pattern="\d{6}" />
<br /><br />
<input type="submit" value="登录" />
<input type="reset" value="重置" />
</form>
<div id="errorDiv"></div>
<script>
var userId = document.getElementById("userId");
var password = document.getElementById("password");
var errorDiv = document.getElementById("errorDiv");
userId.addEventListener("blur", function() {
this.style.borderColor = "gray";
});
userId.addEventListener("focus", function() {
this.style.borderColor = "lightblue";
});
password.addEventListener("blur", function() {
this.style.borderColor = "gray";
});
password.addEventListener("focus", function() {
this.style.borderColor = "lightblue";
});
function validateForm() {
var userIdValue = userId.value.trim();
var passwordValue = password.value.trim();
if (userIdValue === "") {
errorDiv.innerHTML = "<p class='error'>用户ID不能为空!</p>";
return false;
} else if (!/^[a-zA-Z]+$/.test(userIdValue)) {
errorDiv.innerHTML = "<p class='error'>用户ID只能是字母!</p>";
return false;
} else if (passwordValue === "") {
errorDiv.innerHTML = "<p class='error'>密码不能为空!</p>";
return false;
} else if (!/^\d{6}$/.test(passwordValue)) {
errorDiv.innerHTML = "<p class='error'>密码必须是6位纯数字!</p>";
return false;
} else {
return true;
}
}
var form = document.querySelector("form");
form.addEventListener("submit", function(event) {
if (!validateForm()) {
event.preventDefault();
}
});
</script>
</body>
</html>
```
2. Java代码(LoginServlet.java)
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userId = request.getParameter("userId");
String password = request.getParameter("password");
if (userId.equals("admin") && password.equals("123456")) {
response.sendRedirect("showMess.html");
} else {
request.setAttribute("error", "用户名或密码错误!");
request.getRequestDispatcher("login.html").forward(request, response);
}
}
}
```
3. HTML代码(showMess.html)
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户信息</title>
</head>
<body>
<h1>欢迎登录!</h1>
<p>您的用户ID是:admin</p>
<p>您的密码是:123456</p>
</body>
</html>
```
这个示例代码中,使用了HTML、CSS和JavaScript来实现页面效果,使用了Java来实现表单验证和页面跳转。在表单验证中,使用了HTML5的required和pattern属性来实现必填和正则验证,同时使用JavaScript来实现输入框的边框变化和错误提示。在Java代码中,使用了Servlet来接收表单数据并进行验证,如果验证通过则跳转到showMess.html页面,否则返回登录页面并显示错误信息。
jQuery所有字体均是红色,用户id输入框获取焦点的时候边框变成浅蓝色,失去焦点时边框变成原来的灰色或黑色,密码输入框也是这样,点击登录按钮完成form表单验证,用户id不能为空,只能是字母,密码纯数字6位否则不跳转,校验通过跳转到show.html展示用户信息,登录按钮旁是重置按钮
好的,我明白你的问题了。你需要实现一个功能,其中包括以下几个要求:
1. jQuery所有字体均是红色
2. 用户ID输入框获取焦点的时候边框变成浅蓝色,失去焦点时边框变成原来的灰色或黑色,密码输入框也是这样
3. 点击登录按钮完成form表单验证,用户ID不能为空,只能是字母,密码纯数字6位否则不跳转
4. 校验通过跳转到show.html展示用户信息
5. 登录按钮旁是重置按钮
下面是实现该功能的代码,你可以参考一下:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<style>
body {
font-size: 16px;
color: red;
}
input[type="text"], input[type="password"] {
border: 1px solid gray;
outline: none;
padding: 5px;
}
input[type="text"]:focus, input[type="password"]:focus {
border-color: lightblue;
}
button {
padding: 10px;
background-color: green;
color: white;
border: none;
cursor: pointer;
}
button[type="reset"] {
margin-left: 10px;
}
.error {
color: red;
}
</style>
</head>
<body>
<h1>Login</h1>
<form id="login-form" action="show.html">
<div>
<label for="user-id">User ID:</label>
<input type="text" id="user-id" name="user-id" required pattern="[a-zA-Z]+">
<span class="error" id="user-id-error"></span>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required pattern="[0-9]{6}">
<span class="error" id="password-error"></span>
</div>
<div>
<button type="submit">Login</button>
<button type="reset">Reset</button>
</div>
</form>
<script>
$(function() {
$('body').css('color', 'red');
$('input[type="text"], input[type="password"]').on('focus', function() {
$(this).css('border-color', 'lightblue');
}).on('blur', function() {
$(this).css('border-color', 'gray');
});
$('#login-form').on('submit', function(event) {
var userId = $('#user-id').val();
var password = $('#password').val();
var userIdRegex = /^[a-zA-Z]+$/;
var passwordRegex = /^[0-9]{6}$/;
var hasError = false;
if (!userIdRegex.test(userId)) {
$('#user-id-error').text('User ID can only contain letters');
hasError = true;
} else {
$('#user-id-error').text('');
}
if (!passwordRegex.test(password)) {
$('#password-error').text('Password must be 6 digits');
hasError = true;
} else {
$('#password-error').text('');
}
if (hasError) {
event.preventDefault();
}
});
});
</script>
</body>
</html>
```
这段代码中,我们首先引入了 jQuery 库,并设置了页面的基本样式。然后,我们为输入框添加了获取和失去焦点的样式,并设置了表单的校验规则。最后,我们使用 jQuery 为登录按钮和重置按钮添加了事件处理函数,完成了表单的提交和重置操作。
希望这个回答能够帮助到你!
阅读全文
相关推荐

















