简体   繁体   English

将Bootstrap单选按钮与文本对齐

[英]Aligning Bootstrap Radio Buttons with text

I am trying to get my radio buttons to align but I am having difficulty doing this. 我试图使单选按钮对齐,但是这样做很困难。 What I am trying to do is have the buttons align with an indentation because I am going to display a caret if the option has been selected. 我正在尝试做的是使按钮与缩进对齐,因为如果选择了该选项,我将显示插入符号。 I also want the text to come up just a bit because it's not inline with the actual radio button. 我还希望文本稍微浮出水面,因为它与实际的单选按钮不符。

 input[type=radio] { z-index: 3; width: 26px; height: 26px; -moz-appearance: none; } label { font-weight: normal; font-size: 1.5em; cursor: pointer; } .question-label { margin-left: 15px; } 
 <div class="radio"> <label> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">True</span> </label> </div> <div class="radio"> <label> <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">False</span> </label> </div> 

Here is what it looks like right now. 这就是现在的样子。

在此处输入图片说明

Try adding .radio span.button{ position:relative; top: 4px;} 尝试添加.radio span.button{ position:relative; top: 4px;} .radio span.button{ position:relative; top: 4px;} and input[type=radio] {margin:0;} to your css .radio span.button{ position:relative; top: 4px;}然后将input[type=radio] {margin:0;}到您的CSS

 input[type=radio] { z-index: 3; width: 26px; height: 26px; margin:0; -moz-appearance: none; } label { font-weight: normal; font-size: 1.5em; cursor: pointer; } .question-label { margin-left: 15px; } .radio span.button{ position:relative; top: 4px;} 
 <div class="radio"> <label> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">True</span> </label> </div> <div class="radio"> <label> <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">False</span> </label> </div> 

So I did a few things to your code: 所以我对您的代码做了几件事:

  1. Align the items inside the label using inline-block s: 使用inline-block对齐label inline-block的项目:

     .radio label > span { display: inline-block; vertical-align: middle; } 

    This is better than positioning using px . 这比使用px定位更好。

  2. Now add the caret icon to both radio so that the horizontal alignment will be automatically done (and you can contextually show the green caret). 现在,将插入符号图标添加到两个radio以便将自动完成水平对齐(并且您可以根据上下文显示绿色的插入符号)。 To make that work apply these: 为了使这项工作适用这些:

     .correct-answer { color: green; } .wrong-answer { opacity: 0; } 

Let me know your feedback. 让我知道您的反馈。 Thanks! 谢谢!

 input[type=radio] { z-index: 3; width: 26px; height: 26px; -moz-appearance: none; } label { font-weight: normal; font-size: 1.5em; cursor: pointer; } .question-label { margin-left: 15px; } .radio label > span { display: inline-block; vertical-align: middle; } .correct-answer { color: green; } .wrong-answer { opacity: 0; } 
 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"> <div class="radio"> <label> <span><i class="fa fa-caret-right fa-2x wrong-answer" aria-hidden="true"></i></span> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">True</span> </label> </div> <div class="radio"> <label> <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">False</span> </label> </div> 

 input[type=radio] { z-index: 3; width: 26px; height: 26px; -moz-appearance: none; } label { font-weight: normal; font-size: 1.5em; cursor: pointer; } .question-label { margin-left: 5px; position:absolute; margin-top:3px; } 
 <div class="radio"> <label> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">True</span> </label> </div> <div class="radio"> <label> <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span> <span class="button"><input type="radio" name="optionsRadios" value="20"></span> <span class="question-label">False</span> </label> </div> 

i did some changes in your dom as you want caret before radio button.you can set visibility of those caret when you dont want it to be visible as changing visibility will still occupy space on screen as compare to display:none which will affect indentation of radio 我在单选按钮之前按想要插入符的方式对dom进行了一些更改。您可以设置不希望插入符的可见性,因为与显示相比,更改可见性仍会占据屏幕空间:无,不会影响缩进无线电

<div class="radio">
   <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span>
   <label>
   <span class="button"><input type="radio" name="optionsRadios" value="20"></span>
   <span class="question-label">True</span>
   </label>
</div>
<div class="radio">
   <span><i class="fa fa-caret-right fa-2x correct-answer" aria-hidden="true"></i></span>
   <label>
   <span class="button"><input type="radio" name="optionsRadios" value="20"></span>
   <span class="question-label">False</span>
   </label>
</div>

fiddle 小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM