gpt4 book ai didi

html - 将文本添加到 CSS 复选框开关

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:02 25 4
gpt4 key购买 nike

我正在尝试仅使用 CSS 设计一个看起来像开关的复选框,并尽可能多地使用 em 以便它可以缩放到任何大小并且仍然看起来不错。

我有一个看起来非常敏锐,我只是希望能够在开关本身内添加“O​​N”/“OFF”之类的文本,这就是我需要你帮助的地方。

这是我目前所拥有的:

JSfiddle:https://jsfiddle.net/rcsngjhm/2/

.switch {
display: table-cell;
vertical-align: middle;
padding: 10px;
}
.cmn-toggle {
position: absolute;
margin-left: -9999px;
visibility: hidden;
}
.cmn-toggle + label {
display: block;
position: relative;
cursor: pointer;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
input.cmn-toggle-jwr + label {
width: 3em;
height: 1.5em;
background-color: #dddddd;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
overflow: hidden;
}
input.cmn-toggle-jwr + label:before,
input.cmn-toggle-jwr + label:after {
display: block;
position: absolute;
top: 1px;
left: 1px;
bottom: 1px;
content: "";
}
input.cmn-toggle-jwr + label:before {
right: 1px;
background-color: #f1f1f1;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
-o-transition: background 0.3s;
transition: background 0.3s;
}
input.cmn-toggle-jwr + label:after {
width: 1.5em;
width: calc(1.5em - 2px);
background-color: #fff;
-webkit-border-radius: 100%;
-moz-border-radius: 100%;
-ms-border-radius: 100%;
-o-border-radius: 100%;
border-radius: 100%;
-webkit-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-webkit-transition: margin 0.3s;
-moz-transition: margin 0.3s;
-o-transition: margin 0.3s;
transition: margin 0.3s;
}
input.cmn-toggle-jwr:checked + label:before {
background-color: #8ce196;
}
input.cmn-toggle-jwr:checked + label:after {
margin-left: 1.5em;
}
<div class="switch">
<input id="cmn-toggle-1" class="cmn-toggle cmn-toggle-jwr" type="checkbox">
<label for="cmn-toggle-1"></label>
</div>

此外,如果您发现任何我可以进一步清理它的方法,请告诉我。

最佳答案

我稍微修改了 CSS 以尝试将文本置于开关内。

根据您希望文本的大小,您可能需要调整字体大小、边距等。

See updated fiddle

.em1-0 {
font-size: 1em;
}

.em4-0 {
font-size: 4em;
}

.switch {
display: table-cell;
vertical-align: middle;
padding: 10px;
}

.cmn-toggle {
position: absolute;
margin-left: -9999px;
visibility: hidden;
}

.cmn-toggle + label {
display: block;
position: relative;
cursor: pointer;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}

input.cmn-toggle-jwr + label {
width: 3em;
height: 1.5em;
background-color: #dddddd;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
overflow: hidden;
}

input.cmn-toggle-jwr + label:before,
input.cmn-toggle-jwr + label:after {
display: block;
position: absolute;
top: 1px;
left: 1px;
bottom: 1px;
content: "";
}

input.cmn-toggle-jwr + label:before {
right: 1px;
background-color: #f1f1f1;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
-o-transition: background 0.3s;
transition: background 0.3s;
/* added these four */
font-size: 0.75em;
content:"off";
text-align: right;
padding: 0.25em 0.35em;
}

input.cmn-toggle-jwr + label:after {
width: 1.5em;
width: calc(1.5em - 2px);
background-color: #fff;
-webkit-border-radius: 100%;
-moz-border-radius: 100%;
-ms-border-radius: 100%;
-o-border-radius: 100%;
border-radius: 100%;
-webkit-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-webkit-transition: margin 0.3s;
-moz-transition: margin 0.3s;
-o-transition: margin 0.3s;
transition: margin 0.3s;
}

input.cmn-toggle-jwr:checked + label:before {
background-color: #8ce196;
/* added these two */
content: "on";
text-align:left;
}

input.cmn-toggle-jwr:checked + label:after {
margin-left: 1.5em;
}
<div class="switch em4-0">
<input id="cmn-toggle-0" class="cmn-toggle cmn-toggle-jwr" type="checkbox">
<label for="cmn-toggle-0"></label>
</div>

<br />

<div class="switch em1-0">
<input id="cmn-toggle-1" class="cmn-toggle cmn-toggle-jwr" type="checkbox">
<label for="cmn-toggle-1">on</label>
</div>

关于html - 将文本添加到 CSS 复选框开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com