无法将文本左对齐到html中的切换按钮

时间:2015-09-27 17:06:48

标签: html css

我最近看过一段视频并创建了此切换按钮代码

HTML:

<div class="display">
  <label class="label toggle">
    <input type="checkbox" class="toggle_input" />
    <div class="toggle-control"></div>
  </label>
</div>

CSS:

html {
  font-size: 16px;
  box-sizing: border-box;
}

body {
  font-size: 1em;
  font-family: arial, sans-serif;
}

.display {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.toggle .toggle-control {
  -webkit-transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
          transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
  width: 4em;
  height: 2em;
  display: block;
  border: 2px solid #8E8E93;
  border-radius: 2em;
  background-color: rgba(0, 0, 0, 0.06);
  position: relative;
}
.toggle .toggle-control:after {
  -webkit-transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
          transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
  content: "";
  width: 2em;
  height: 2em;
  display: block;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 3px 2px rgba(0, 0, 0, 0.4);
  position: absolute;
  top: 0;
  left: 0;
}
.toggle input {
  display: none;
}
.toggle input:checked + .toggle-control {
  border-color: #4cd964;
  background-color: #4cd964;
}
.toggle input:checked + .toggle-control:after {
  left: 2em;
}

现在我想添加一个与切换按钮左对齐的文字,但我无法做到。

预期输出:          (某些文字)(切换按钮)

请帮忙

1 个答案:

答案 0 :(得分:0)

将div的display:block(使其显示在自己的行上)更改为display:inline-block
我在此示例中添加了vertical-align:middle,但是由您决定如何将控件排除在外!

html {
  font-size: 16px;
  box-sizing: border-box;
}

body {
  font-size: 1em;
  font-family: 'Arial', sans-serif;
}

.display {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.toggle .toggle-control {
  -webkit-transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
          transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
  width: 4em;
  height: 2em;
  display: inline-block; /* changed */
  border: 2px solid #8E8E93;
  border-radius: 2em;
  background-color: rgba(0, 0, 0, 0.06);
  position: relative;
  vertical-align:middle; /* new; can be removed if desired */
}
.toggle .toggle-control:after {
  -webkit-transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
          transition: 0.3s cubic-bezier(0.98, 0.99, 1, 0.99);
  content: "";
  width: 2em;
  height: 2em;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 3px 2px rgba(0, 0, 0, 0.4);
  position: absolute;
  top: 0;
  left: 0;
}
.toggle input {
  display: none;
}
.toggle input:checked + .toggle-control {
  border-color: #4cd964;
  background-color: #4cd964;
}
.toggle input:checked + .toggle-control:after {
  left: 2em;
}
<div class="display">
  <label class="label toggle">
    Some text
    <input type="checkbox" class="toggle_input" />
    <div class="toggle-control"></div>
  </label>
</div>