batuman
batuman

Reputation: 7304

How to align <label> and text side by side in html

I have a label and a text. How can I align them side by side horizontally?

Currently is text is aligned at the bottom of label (as in the image). I would like to align text to the center of the label.

My html code is

<div>
    <label class="switchnmn">
       <input type="checkbox" checked>
       <div class="slidernmn round"></div>
    </label>
        <b style="font-size:15px">I am able to accept customer's any request date.</b>    
</dlv>

My css file is

.switchnmn {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switchnmn input {display:none;}

.slidernmn {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slidernmn:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slidernmn {
  background-color: #2196F3;
}

input:focus + .slidernmn {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slidernmn:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slidernmn.round {
  border-radius: 34px;
}

.slidernmn.round:before {
  border-radius: 50%;
}

Where should I change that?

enter image description here

Upvotes: 0

Views: 401

Answers (2)

Johannes
Johannes

Reputation: 67768

Define all three elements as display: inline-block; and vertical-align: middle; as shown below:

.x > * {
  display: inline-block;
  vertical-align: middle;
}

.switchnmn {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switchnmn input {
  display: none;
}

.slidernmn {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slidernmn:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked+.slidernmn {
  background-color: #2196F3;
}

input:focus+.slidernmn {
  box-shadow: 0 0 1px #2196F3;
}

input:checked+.slidernmn:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}


/* Rounded sliders */

.slidernmn.round {
  border-radius: 34px;
}

.slidernmn.round:before {
  border-radius: 50%;
}
<div class="x">
  <label for="y" class="switchnmn">
       <input type="checkbox" id="y" checked>
       <div class="slidernmn round"></div>
    </label>
  <b style="font-size:15px">I am able to accept customer's any request date.</b>
  </dlv>

Upvotes: 1

Nenad Vracar
Nenad Vracar

Reputation: 122047

You can add vertical-align: middle on label and b element.

.switchnmn {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switchnmn input {display:none;}

.slidernmn {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slidernmn:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slidernmn {
  background-color: #2196F3;
}

input:focus + .slidernmn {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slidernmn:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slidernmn.round {
  border-radius: 34px;
}

.slidernmn.round:before {
  border-radius: 50%;
}
label, b {
  vertical-align: middle;
}
<div>
  <label class="switchnmn">
    <input type="checkbox" checked>
    <div class="slidernmn round"></div>
  </label>
  <b style="font-size:15px">I am able to accept customer's any request date.</b>
</div>

Upvotes: 1

Related Questions