Html 单选选项文本对齐

Posted

技术标签:

【中文标题】Html 单选选项文本对齐【英文标题】:Html radio option text alignment 【发布时间】:2013-03-16 11:47:11 【问题描述】:

我在对齐单选选项时遇到了这个问题。我正在尝试样式的一个示例是:

Question: How are you doing? 
A.I'm doing fine             B. OK                C. So so             D. not so good

A、B、C、D 各有一个单选按钮前缀,class= 'option'

为了确保 A 的选项(类似地,B、C、D)垂直对齐,我正在做:

.option 
   width: 25%; 
   display: inline-block;

如果文本不太长,这很好用。如果文本太长,我需要将它们安排为:

1) 如果可能,每行有 2 个选项

A. <long A text>                                       B. <B's text> 
C. <C's text>                                          D. <D's text> 

2) 如果任何文本对于上述设置 1) 来说确实太长,则每行有 1 个选项。

A. <too long A text>
B. <B's text>
...

我怎样才能达到这个效果?对 CSS、Js 的任何建议对我都有好处。

谢谢。

【问题讨论】:

这不取决于用户浏览页面的方式吗?在较大的分辨率下,长文本可能意味着 300 个字符,而在较小的分辨率下,可能是 30 个。 【参考方案1】:

使用无序列表作为容器。

<ul>
    <li>A</li>
    <li>B</li>
    <li>C</li>
    <li>D</li>
</ul>

设置样式,使列表项的宽度为列表本身的 1/2,并将它们向左浮动。

ul, li margin:0;padding:0;list-style:none
ul width:500px:
li float:left;width:250px

【讨论】:

【参考方案2】:

你可以使用JS来检查列表中每一项的字符长度,然后根据字符数有2种不同的样式。如果任何一个项目超过一定数量的字符,您可以将宽度设置为 50%,而不是 25%。

【讨论】:

【参考方案3】:

适当的样式和填充 html

<ul class="short">
  <li>a long text</li>
  <li>b text</li>
  <li>c long text</li>
  <li>d text</li>
</ul>

css

ul 
   width: 500px;

li float:left; margin-right:20px;
ul.long > li  width: 500px;
ul.med > li width: 220px; /* (500-40)/2 */
ul.short > li width: 105px; /* (500-80) /2 */

js

find width of longest li and add appropriate class to ul

看小提琴http://jsfiddle.net/QqDgA/

【讨论】:

谢谢杰梅尔。这正是我正在寻找的。​​span>

以上是关于Html 单选选项文本对齐的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 微信企业号办公系统-表单设计-单选按钮组

使用单选按钮隐藏和显示文本输入

如何根据淘汰赛js中的单选按钮选择填充文本框

使用文本作为单选按钮/将字符串变成单选按钮

Jquery验证单选按钮选项是不是为yes

仅从选定的单选按钮选项提交表单数据