CSS: 如何在移除焦点后保留样式
CSS: how to keep styles after focus is removed
我们有一些按钮的样式如下 CSS:
.btn-outline-primary {
color: blue;
border: 1px solid blue;
background: transparent;
transition: all 0.3s ease 0s;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
background: blue;
border: 1px solid blue;
color: white;
}
但是,一旦单击按钮,然后在页面上的其他任何地方发生单击,样式就会按预期消失。有没有办法让样式持续到专门单击另一个按钮?
听起来像 Javascript 可能需要在用户单击按钮时添加或删除 CSS 类。
不用JS也能做到:
input[name='btn-focus'] {
display: none
}
.btn {
display: inline-block;
margin: 1em;
padding: .5em 1em;
color: blue;
border: 1px solid;
border-radius: .5em;
background: transparent;
transition: all 0.3s ease 0s;
}
.btn:hover,
:checked+.btn {
background: blue;
color: white;
}
<input type="radio" name="btn-focus" id="btn-focus1">
<label for="btn-focus1" class="btn">Button 1</label>
<input type="radio" name="btn-focus" id="btn-focus2">
<label for="btn-focus2" class="btn">Button 2</label>
我们有一些按钮的样式如下 CSS:
.btn-outline-primary {
color: blue;
border: 1px solid blue;
background: transparent;
transition: all 0.3s ease 0s;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
background: blue;
border: 1px solid blue;
color: white;
}
但是,一旦单击按钮,然后在页面上的其他任何地方发生单击,样式就会按预期消失。有没有办法让样式持续到专门单击另一个按钮?
听起来像 Javascript 可能需要在用户单击按钮时添加或删除 CSS 类。
不用JS也能做到:
input[name='btn-focus'] {
display: none
}
.btn {
display: inline-block;
margin: 1em;
padding: .5em 1em;
color: blue;
border: 1px solid;
border-radius: .5em;
background: transparent;
transition: all 0.3s ease 0s;
}
.btn:hover,
:checked+.btn {
background: blue;
color: white;
}
<input type="radio" name="btn-focus" id="btn-focus1">
<label for="btn-focus1" class="btn">Button 1</label>
<input type="radio" name="btn-focus" id="btn-focus2">
<label for="btn-focus2" class="btn">Button 2</label>