html - flexbox 元素宽度缩小到文本

标签 html css flexbox

这段代码试图缩小单选按钮标签,它是一个用“黄色”着色的 span 标签,以匹配单选图标右侧的字符串。

当前的问题是 span' 太靠近下一个单选图标,如果移动用户想要单击第二个图标可能会误点击第一个单选按钮,因为 span` 是也可点击。

enter image description here

.radio-group {
    background-color: red;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row;
    -ms-flex-flow: row;
    flex-flow: row;
}

.radio-item {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row;
    -ms-flex-flow: row;
    flex-flow: row;
    align-items: baseline;
}

.radio-icon {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.radio-label {
    background-color: yellow;
    -webkit-flex: 15;
    -ms-flex: 15;
    flex: 15;
}
<template name="radio">
  <div class="radio-group">
    {{#each value}}
      <label class="radio-item">
        <input class="radio-icon" type="radio" name={{group}} checked={{value}} value={{name}}>
        <span class="radio-label">{{caption}}</span>
      </label>
    {{/each}}
  </div>
</template>

最佳答案

只需在 radio-item 上使用一些边距,如下所示。

.radio-item {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row;
    -ms-flex-flow: row;
    flex-flow: row;
    align-items: baseline;
    margin-right:30px; /* add margin here */
}

.radio-group {
    background-color: red;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row;
    -ms-flex-flow: row;
    flex-flow: row;
}

.radio-item {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row;
    -ms-flex-flow: row;
    flex-flow: row;
    align-items: baseline;
    margin-right:30px;
}

.radio-icon {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.radio-label {
    background-color: yellow;
    -webkit-flex: 15;
    -ms-flex: 15;
    flex: 15;
}
<div name="radio">
  <div class="radio-group">
      <label class="radio-item">
        <input class="radio-icon" type="radio" name={{group}} checked={{value}} value={{name}}>
        <span class="radio-label">{{caption}}</span>
      </label>
      <label class="radio-item">
        <input class="radio-icon" type="radio" name={{group}} checked={{value}} value={{name}}>
        <span class="radio-label">{{caption}}</span>
      </label>
  </div>
</div>

关于html - flexbox 元素宽度缩小到文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467229/

相关文章:

html - 设置 flex 元素间距

html - <div> 拉伸(stretch),同时环绕变得不必要的宽

html - 如何在 flexitem 中顶部对齐 TEXTAREA 和 TEXT-input 控件?

javascript - jQuery悬停功能显示覆盖但在悬停显示内容时关闭

html - 响应式移动设计未正确调整大小的问题

c# - 尝试在此 gridview 中为标题文本加下划线

html - 为什么这个元素在使用 'relative' 定位时将其大小设置为 0px x 0px?

javascript - 表单提交时的多个输入值

javascript - 绝对定位的 DIV 不可见

css - 将 SASS 文件目录导入应用到特定的 div