【问题标题】:Define radio button size independently of screen resolution独立于屏幕分辨率定义单选按钮大小
【发布时间】:2015-12-26 19:14:27
【问题描述】:

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

我通过设置每个单独按钮的宽度和高度 css 属性来做到这一点。比如这里:

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

当我以 75% 的缩放比例查看我的 Chrome 窗口(这是我在此页面的默认设置)时,此功能有效,但当我查看 100% 的缩放比例时,单选按钮又变小了,并且大小相同。他们也失去了凉爽的阴影——我想这与较差的分辨率有关。单选按钮尺寸仍然存在:我的元素占用了更多空间。但是单选按钮不会相应地缩放。我不太明白发生了什么事。

我尝试根据 em 定义单选按钮大小,但没有帮助。

例如,将三种不同的尺寸定义为 1em、1.5em 和 3em,结果如下:

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

【问题讨论】:

  • 你能把你的代码放到jsfiddle.net里吗
  • 刚刚添加了一个指向 jsfiddle 的链接 - 代码很丑,但现在它并不重要..

标签: html css radio-button


【解决方案1】:

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

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>

【讨论】:

  • 谢谢!这有助于将input[type=radio] 更改为input[name=radioBig]input[name=radioSmall] 等,以便能够独立控制按钮大小。现在选择每个单选按钮并不是唯一的,但就我而言,我不在乎。
  • 这是一个非常干净的单选按钮样式。 (Y)
【解决方案2】:

我认为 em 大小不起作用的原因是因为您没有为文本定义基本大小:em 大小没有任何东西可以定义为 '1' em。

添加

   body {
        font-size: 14px;
    }

在缩放时应保持尺寸不变。

【讨论】:

    【解决方案3】:

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

    $("#questionAnswerRadio").css("display", "block");
    #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;
    }
    <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>

    【讨论】:

    • 谢谢。解决了对齐问题(现在看起来很棒),但尺寸问题仍然存在。这是new jsfiddle,包括垂直对齐和下面@Ash 的建议,设置正文的字体大小。
    • @elisa 对不起,我听不懂你想说什么
    • 我的意思是添加vertical-align:middle 有助于将标签与单选按钮的垂直中点对齐。但我最初的问题仍然存在:所需的单选按钮大小在 75% 或 90% 缩放时存在,但在 100% 缩放时消失。
    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多