定义单选按钮大小,与屏幕分辨率无关

时间:2015-09-29 10:35:48

标签: html css radio-button

我正在格式化html单选按钮。我希望得到或多或少的东西(请忽略小字体大小和对齐)expected outcome

我是通过设置每个按钮的宽度和高度css属性来完成的。比如这里:

#r_starkeAblehnung.css-checkbox, #r_starkeZustimmung.css-checkbox {
border: 0px;
height: 50px; 
width: 50px;
}

当我以75%的缩放率查看我的Chrome窗口时这是有效的 - 这是我对此页面的默认设置 - 但是当我看到100%缩放时,单选按钮会回到所有小而且大小相同的位置。他们也失去了很酷的阴影 - 我想这与较差的分辨率有关。单选按钮尺寸仍然存在:我的元素占用更多空间。但是单选按钮不会相应缩放。我不太了解正在发生的事情。

我尝试用em来定义单选按钮大小,但它没有帮助。

例如,将三种不同的大小定义为1em,1.5em和3em会导致:

Non-desided outcome

编辑:jsfiddle,在更改浏览器缩放时具有相同的行为

3 个答案:

答案 0 :(得分:3)

您应该考虑为单选按钮创建自己的外观/样式。像这样:

input[type=radio] {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 10px;
  outline: none;
  box-shadow: inset 0 0 0 2px #FFF;
  border: 2px solid #CCC;
}
input[type=radio]:checked {
  background-color: #CCC;
}
<input type="radio" name="radio" id="radio1" />
<label for="radio1">Radio 1</label>
<input type="radio" name="radio" id="radio2" />
<label for="radio2">Radio 2</label>

答案 1 :(得分:1)

试试vertical-align: middle;它可能有所帮助

&#13;
&#13;
$("#questionAnswerRadio").css("display", "block");
&#13;
#questionAnswerRadio {
    vertical-align: middle;
    padding: 0;
    /*margin-bottom: 60px;*/
    text-align: center;
    display: none;
    margin: auto;
}
#r_neutral.css-checkbox {
    border: 0px;
    height: 1em;
    width: 1em;
    vertical-align: middle;
    margin: 0;
}
#r_ablehnung.css-checkbox, #r_zustimmung.css-checkbox {
    border: 0px;
    height: 1.5em;
    vertical-align: middle;
    width: 1.5em;
    margin: 0;
}
#r_starkeAblehnung.css-checkbox, #r_starkeZustimmung.css-checkbox {
    border: 0px;
    height: 3em;
    vertical-align: middle;
    width: 3em;
    margin: 0;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<div id="questionAnswerRadio">
    <label for="r_starkeAblehnung" class="css-label">
        <input type="radio" id="r_starkeAblehnung" value="StarkeAblehnung" name="radio" class="css-checkbox">	<span>Starke Ablehnung</span>

    </label>
    <label for="r_ablehnung" class="css-label">
        <input type="radio" id="r_ablehnung" value="Ablehnung" name="radio" class="css-checkbox">	<span>Ablehnung</span>

    </label>
    <label for="r_neutral" class="css-label">
        <input type="radio" id="r_neutral" value="Neutral" name="radio" class="css-checkbox">	<span>Neutral</span>

    </label>
    <label for="r_zustimmung" class="css-label">
        <input type="radio" id="r_zustimmung" value="Zustimmung" name="radio" class="css-checkbox">	<span>Zustimmung</span>

    </label>
    <label for="r_starkeZustimmung" class="css-label">
        <input type="radio" id="r_starkeZustimmung" value="StarkeZustimmung" name="radio" class="css-checkbox">	<span>Starke Zustimmung</span>

    </label>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我认为em尺寸不起作用的原因是因为你没有为文本定义基本尺寸:em尺寸没有定义为'1'。

添加

   body {
        font-size: 14px;
    }

应该在缩放时保持大小不变​​。