如何填充跨度的底部文本以与复选框图像对齐?

时间:2017-08-17 08:41:32

标签: html css

我正在尝试一种非常简单的设计,但仍无法找到解决方案。

我想制作一个基于图像的设计复选框。问题是使用这种技术,我无法使用输入的value属性来显示复选框旁边的文本。

所以,我尝试在它旁边放置<span>,但文字与底部对齐。我尝试通过各种属性填充其底部,但没有成功。

enter image description here

如何填充<span>的文字以与复选框'图像垂直对齐?我不想用另一个<div>包装这两个元素,它们会将它们显示为一个表格。

到目前为止,这是我尝试的片段:

.chkchk {
    display:none;
}
 
.chkchk + label {
    background-image:url(http://i.imgur.com/RnoKxPS.png);
    height: 22px;
    width: 35px;
    display:inline-block;
    padding: 0 0 0 0px;
    cursor:pointer;
}
.chkboxText {
    padding-bottom:10px;
    display:inline-block;
}
<input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
<label for="thing"></label>
<span class="chkboxText">dasdasdas</span>

6 个答案:

答案 0 :(得分:3)

添加包装器,然后添加display:flex;。我还重新订购html以匹配图片

.wrapper{
 display:flex;
}

.chkchk {
  display: none;
}

.chkchk+label {
  background-image: url(http://i.imgur.com/RnoKxPS.png);
  height: 22px;
  width: 35px;
  display: inline-block;
  padding: 0 0 0 0px;
  cursor: pointer;
}

.chkboxText {
  padding-bottom: 10px;
}
<div class="wrapper">
  <span class="chkboxText">dasdasdas</span>
  <input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
  <label for="thing"></label>
</div>

答案 1 :(得分:2)

vertical-align: middle;添加到label

.chkchk {
    display:none;
}
 
.chkchk + label {
    background-image:url(http://i.imgur.com/RnoKxPS.png);
    height: 22px;
    width: 35px;
    display:inline-block;
    padding: 0 0 0 0px;
    cursor:pointer;
    vertical-align: middle;
}
.chkboxText {
    display:inline-block;
}
<input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
<label for="thing"></label>
<span class="chkboxText">dasdasdas</span>

答案 2 :(得分:2)

只需使用vertical-align: middle即可。希望它有所帮助。

.chkchk {
  display: none;
}

.chkchk+label {
  background-image: url(http://i.imgur.com/RnoKxPS.png);
  height: 22px;
  width: 35px;
  display: inline-block;
  padding: 0 0 0 0px;
  cursor: pointer;
  vertical-align: middle
}

.chkboxText {
  padding-bottom: 10px;
  display: inline-block;
}
<input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
<label for="thing"></label>
<span class="chkboxText">dasdasdas</span>

答案 3 :(得分:1)

position:relativebottom提供给.chkboxText

.chkboxText {
    position: relative;
    bottom: 5px;//you can change this
    display:inline-block;
}

答案 4 :(得分:1)

您可以使用vertical-alignpadding

.chkchk {
    display:none;
}
 
.chkchk + label {
    background-image:url(http://i.imgur.com/RnoKxPS.png);
    height: 22px;
    width: 35px;
    display:inline-block;
    padding: 0 0 0 0px;
    cursor:pointer;
}
.chkboxText {
    display:inline-block;
    vertical-align: middle;
    padding-bottom: 1em;
    
    position: relative;
}

.chkboxText:before {
  content: '';
  background: red;
  height: 1px;
  width: 50px;
  left: -50px;
  top: 10px;
  position: absolute;
}
<input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
<label for="thing"></label>
<span class="chkboxText">dasdasdas</span>

答案 5 :(得分:0)

这是你需要的吗?

&#13;
&#13;
.chkchk {
    display:none;
}
 
.chkchk + label {
    background-image:url(http://i.imgur.com/RnoKxPS.png);
    height: 22px;
    width: 35px;
    display:inline-block;
    padding: 0 0 0 0px;
    cursor:pointer;
}
.chkboxText {
    /* padding-bottom:10px; */
    
}
.fl-bx {
    display:flex;
    align-items:center;
}
&#13;
<div class="fl-bx">
<input class="chkchk" type="checkbox" name="thing" value="valuable" id="thing" />
<label for="thing"></label>
<span class="chkboxText">dasdasdas</span>
</div>
&#13;
&#13;
&#13;