【问题标题】:Bootstrap 4.1.1 form-check form-check-inline radio buttonBootstrap 4.1.1 form-check form-check-inline 单选按钮
【发布时间】:2018-06-12 19:34:05
【问题描述】:

我正在尝试将单选按钮显示为内联选项。 在 Bootstrap 4.1.1 文档中,示例代码是:

<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
  <label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
  <label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
  <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
  <label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
</div>

尽管我将它克隆到我的 html 中,但它不起作用并且单选按钮显示正常。

我的Html代码是:

{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'surveys/style.css' %}" />
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TFM Survey</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="{{ STATIC_URL }}/static/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="{{ STATIC_URL }}/static/bootstrap/js/bootstrap.js" rel="stylesheet" media="screen">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
     <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="../../assets/js/html5shiv.js"></script>
      <script src="../../assets/js/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<div class="container">
    <form action="{% url 'surveys:vote' %}" method="post">
        {% csrf_token %}

        {% if questions %}
        <ul class="list-group">

        {% for question in questions %}
            <li class="list-group-item list-group-item-dark">{{ question.question_text}}</li>
            {% if question.choice_set.all %}
                {% for choice in question.choice_set.all %}
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="radio" name="{{ question.id }}" id="choice{{ forloop.counter }}" value="{{ choice.choice_text }}">
                        <label class="form-check-label" for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label>
                    </div>
                {% endfor %}
            {% else %}
                <input type="text" class="form-control" placeholder="Type some answer..." name="{{ question.id }}"/>
            {% endif %}
        {% endfor %}
        </ul>
        {% else %}
            <p>No questions are available.</p>
        {% endif %}
        <input type="submit" class="btn btn-primary" value="Vote" />
    </form>
</div>
</body>
</html>

我也尝试使用class="checkbox-inline",但它也不起作用。 我看到div倾向于使用所有宽度,所以我也指定:

#radio-div{
 width:auto
}

但两者都不起作用(我在无线电输入中使用了 id 语句)。 如果这个实现中有一些明显的错误,有人吗?

【问题讨论】:

    标签: html css twitter-bootstrap bootstrap-4


    【解决方案1】:

    在这里,您的 &lt;ul&gt; &lt;li&gt; 元素无效。 这意味着在 a 中只能有多个 &lt;li&gt; 元素。 &lt;ul&gt; 应该只包含 li 元素。

    您的代码示例:在这里,您将单选按钮元素放在&lt;li&gt; 元素之外。

    <ul class="list-group">
      <li class="list-group-item list-group-item-dark">YOUR TEXT CONTENT</li>
      <div class="form-check form-check-inline">
        <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
        <label class="form-check-label" for="inlineRadio1">1</label>
      </div>
      <div class="form-check form-check-inline">
        <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
        <label class="form-check-label" for="inlineRadio1">1</label>
      </div>
    </ul>
    

    更正的代码示例:您需要将单选按钮元素代码放入 &lt;li&gt; 元素中。

    <ul class="list-group">
      <li class="list-group-item list-group-item-dark">YOUR TEXT CONTENT
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
          <label class="form-check-label" for="inlineRadio1">1</label>
        </div>
        <div class="form-check form-check-inline">
          <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
          <label class="form-check-label" for="inlineRadio1">1</label>
        </div>
      </li>
    </ul>
    

    【讨论】:

      【解决方案2】:

      您需要按照Bootstrap 标记和classes 来实现此目的

      • 首先,您需要添加custom-controlcustom-radio 类 与form-check-inline
      • input 中添加custom-control-input
      • label 中添加custom-control-label

      .row {
        background: #f8f9fa;
        margin-top: 20px;
      }
      
      .col {
        border: solid 1px #6c757d;
        padding: 10px;
      }
      
      /* just to make inline radio, You can remove this if you want */
      .custom-control {
        display: inline-block !important;
      }
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" />
      
      <div class="custom-control custom-radio form-check form-check-inline">
      
        <input class="custom-control-input form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
        <label class="custom-control-label form-check-label" for="inlineRadio1">1</label>
      
      </div>
      
      <div class="custom-control custom-radio form-check form-check-inline">
        <input class="custom-control-input form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
        <label class="custom-control-label form-check-label" for="inlineRadio2">2</label>
      </div>
      
      
      <div class="custom-control custom-radio form-check form-check-inline">
        <input class="custom-control-input form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
        <label class="custom-control-label form-check-label" for="inlineRadio3">3 (disabled)</label>
      
      </div>

      【讨论】:

        【解决方案3】:

        您在链接标签中添加了 bootstrap.js,请将其更改为 as

        <script src="{{ STATIC_URL }}/static/bootstrap/js/bootstrap.js"></script>
        

        还要注意必须先需要jquery,像这样

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <link href="{{ STATIC_URL }}/static/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
        <script src="{{ STATIC_URL }}/static/bootstrap/js/bootstrap.js"></script>
        

        如果问题仍然存在, 添加类radio-inline 而不是form-check form-check-inline,像这样

            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
            <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
            <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        
        
            <div class="radio-inline">
              <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
              <label class="form-check-label" for="inlineRadio1">1</label>
            </div>
            <div class="radio-inline">
              <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
              <label class="form-check-label" for="inlineRadio2">2</label>
            </div>
            <div class="radio-inline">
              <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled>
              <label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
            </div>

        【讨论】:

          猜你喜欢
          • 2019-04-04
          • 2014-04-10
          • 1970-01-01
          • 1970-01-01
          • 2013-01-22
          • 2016-02-24
          • 1970-01-01
          • 1970-01-01
          • 2013-08-01
          相关资源
          最近更新 更多