Proto.io的切换按钮位置不佳

时间:2015-06-10 21:54:51

标签: html css

我想使用Proto.io的切换按钮: https://proto.io/freebies/onoff

它可以正常工作但是当我将按钮放在图像后面时,开关不再是圆形的。看看它是如何在JSFiddle:https://jsfiddle.net/rvmcn7ju

Pro forma,这里是CSS:

.onoffswitch {
    position: relative; width: 90px;
    -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
}
.onoffswitch-checkbox {
    display: none;
}
.onoffswitch-label {
    display: block; overflow: hidden; cursor: pointer;
    border: 2px solid #999999; border-radius: 20px;
}
.onoffswitch-inner {
    display: block; width: 200%; margin-left: -100%;
    -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s;
    -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s;
}
.onoffswitch-inner:before, .onoffswitch-inner:after {
    display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px;
    font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
}
.onoffswitch-inner:before {
    content: "UP";
    padding-left: 10px;
    background-color: #009900; color: #FFFFFF;
}
.onoffswitch-inner:after {
    content: "DOWN";
    padding-right: 10px;
    background-color: #000099; color: #FFFFFF;
    text-align: right;
}
.onoffswitch-switch {
    display: block; width: 18px; margin: 6px;
    background: #FFFFFF;
    border: 2px solid #999999; border-radius: 20px;
    position: absolute; top: 0; bottom: 0; right: 56px;
    -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s;
    -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s; 
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
    margin-left: 0;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
    right: 0px; 
}

当我在.onoffswitch-switch中将top属性更改为292px时(使用此特定图像),它可以正常工作。我可能不得不将位置改为亲戚而做其他事。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

更新了你需要相对于包含开关的位置的小提琴。

.onoffswitch-label {
    position: relative;
    display: block; overflow: hidden; cursor: pointer;
    border: 2px solid #999999; border-radius: 20px;
}

https://jsfiddle.net/rvmcn7ju/1/

再次更新,因为开关看起来像ovaly

.onoffswitch-switch {
  ...
  margin: 4px; // changed margin
  height: 18px; // added height
  ...
}

https://jsfiddle.net/rvmcn7ju/3/