Я хотел сделать ввод только для чтения видимым, когда другой ввод находится в фокусе. Я попробовал css, я не вижу проблем, но все равно он не работает. По сути, когда пользователь сфокусирован, UsernameLabel display:block. Мне удалось это сделать, но удалив уже существующий фокус Username.
Подробности:
#Container {
height: 75vh;
width: 100%;
background-color: rgb(42, 95, 165);
}
.UsernameLabel {
font-size: 30px;
color: rgb(255, 255, 255);
height: 30px;
width: 75%;
border-radius: 5px;
text-align: center;
background-color: rgb(42, 95, 165);
position: fixed;
top: 7.5%;
left: 50%;
transform: translate(-50%, -50%);
transition: 0.3s;
display: none;
}
.Username {
height: 7.5vh;
width: 75%;
border-radius: 5vh;
border: none;
background-color: #313131;
position: fixed;
top: 15%;
left: 50%;
transform: translate(-50%, -50%);
transition: 0.3s;
color: white;
text-align: center;
font-size: 20px;
}
.Username:focus{
width: 90%;
margin-top: 30px;
}
.Username:focus .UsernameLabel{
display: block;
}
#Container2 {
height: 35vh;
width: 35vh;
background-color: #1a1a1a;
border-radius: 20px;
position: fixed;
top: 35%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
body {
margin: 0;
}
#InverseRadius {
height: 10vh;
width: 100%;
background-color: #1a1a1a;
border-radius: 50%;
margin-top: -5vh;
}
<body bgcolor = "#1a1a1a">
<div id = "Container">
<div id = "Container2">
<input class = "UsernameLabel" value = "Username" readonly>
<input type = "text" placeholder = "Username" class = "Username" id = "Username">
</div>
</div>
<div id = "InverseRadius"></div>
</body>
попробуй это:
#Container {
height: 75vh;
width: 100%;
background-color: rgb(42, 95, 165);
}
.UsernameLabel {
font-size: 30px;
color: rgb(255, 255, 255);
height: 30px;
width: 75%;
border-radius: 5px;
text-align: center;
background-color: rgb(42, 95, 165);
position: fixed;
top: 7.5%;
left: 50%;
transform: translate(-50%, -50%);
transition: 0.3s;
display: none;
}
.Username {
height: 7.5vh;
width: 75%;
border-radius: 5vh;
border: none;
background-color: #313131;
position: fixed;
top: 15%;
left: 50%;
transform: translate(-50%, -50%);
transition: 0.3s;
color: white;
text-align: center;
font-size: 20px;
}
.Username:focus{
width: 90%;
margin-top: 30px;
}
.Username:focus~.UsernameLabel{
display: block;
}
#Container2 {
height: 35vh;
width: 35vh;
background-color: #1a1a1a;
border-radius: 20px;
position: fixed;
top: 35%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
body {
margin: 0;
}
#InverseRadius {
height: 10vh;
width: 100%;
background-color: #1a1a1a;
border-radius: 50%;
margin-top: -5vh;
}
<body bgcolor = "#1a1a1a">
<div id = "Container">
<div id = "Container2">
<input type = "text" placeholder = "Username" class = "Username" id = "Username">
<input class = "UsernameLabel" value = "Username" readonly>
</div>
</div>
<div id = "InverseRadius"></div>
</body>
SPACE
selector occur only if the last is a descendant of the first.~
or +
selector
(and inverse their order in the html)
Выполнение фрагмента кода работает правильно, только когда вы нажимаете на всю страницу.