Как показать несколько RadioButton в двух столбцах

Я показываю переключатели динамически в двух столбцах. Как вы можете видеть на картинке Как показать несколько RadioButton в двух столбцах

Он выглядит нормально в некоторых условиях, но иногда, когда текст большой, он выглядит нечетким. Как я могу решить эту проблему

Вот код:

.radiobox-padding-top{
    padding-top:15px;
}

input[type=radio] {
  float: left;
  display: block;
  margin-top: 4px;
}

label {
  margin-left: 15px;
  display: block;
}

вот html-код (я использую angular)

<div class = "col-xs-12 col-sm-12 col-md-8 col-lg-8 col-xl-8 remove-padding question-row-face">

  <div class = "col-12" >
    <p class = "grey-text inlineBlock question-padding">{{data.help_text}}</p>
  </div>

  <div class = "row" style = "margin: 0px">
    <div class = "col-12 radiobox-padding-top">
      <div class = "form-group">

        <span *ngFor = "let entry of options; index as i">

          <div class = "col-5 inlineBlock">
            <div class = "radio">

              <input type = "radio" name = "{{data.slug}}" checked value = "{{options[i]}}">
              <label>
                {{options[i]}}
              </label>
            </div>
          </div>

        </span>

      </div>
    </div>
  </div>
</div>

Вопрос непонятный, что ты имеешь в виду выглядит отвратительно?

KENZiE 29.10.2018 09:11

Как показано на рисунке, в первом разделе правая сторона не совмещена с левой стороной. Мне нужно это исправить

Zohab Ali 29.10.2018 09:14

Можете ли вы показать HTML для ваших радиовходов, где находится класс, есть ли оболочки и т. д.? здесь также могут быть другие правила CSS, которые вы не показывали и которые необходимы для этого отображения

Kaddath 29.10.2018 09:15

Я обновил свой вопрос @Kaddath, я использую другой файл CSS, но он не содержит ничего, связанного с компонентом radioButton

Zohab Ali 29.10.2018 09:19

Прежде всего исправьте свой сломанный HTML - вы не можете вкладывать div в span. И тогда мне кажется, что вы просто хотите указать vertical-align ...?

misorude 29.10.2018 09:46
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
5
1 797
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я создал работает stackblitz.

Измените свой код следующим образом:

<div class = "col-xs-12 col-sm-12 col-md-8 col-lg-8 col-xl-8 remove-padding question-row-face">

  <div class = "col-12" >
    <p class = "grey-text inlineBlock question-padding">{{data.help_text}}</p>
  </div>

  <div class = "row" style = "margin: 0px">
    <div class = "col-12 radiobox-padding-top">
      <div class = "form-group">
        <div class = "row">    
          <div class = "col-6" *ngFor = "let entry of options; index as i">    
            <div class = "inlineBlock">
              <div class = "radio">
                <input type = "radio" name = "{{data.slug}}" checked value = "{{options[i]}}">
                <label>
                  {{options[i]}}
                </label>
              </div>
            </div>
          </div>    
        </div>
      </div>
    </div>
  </div>
</div>

Дополнительно измените свой CSS следующим образом:

.radiobox-padding-top{
  padding-top:15px;
}

input[type=radio] {
  float: left;
  margin-top: 4px;
}

label {
  padding-left: 5px;
  margin-left: 15px;
  display: block;
}

Для получения дополнительной информации о точках останова начальной загрузки см. здесь.

в большинстве случаев это выглядит нормально, но все же, когда я даю длинный текст опции, текст перемещается на новую строку. вы можете проверить это в созданном вами stackblitz.

Zohab Ali 29.10.2018 09:42

Моя вина. Я обновил свой css-код выше, чтобы он работал правильно с длинными текстами опций. Это должно решить вашу проблему.

Tommy 29.10.2018 09:48

Гений! Спасибо за ваше время и за правильное понимание вопроса, потому что большинство парней не голосуют за этот вопрос только потому, что не смогли его решить :)

Zohab Ali 29.10.2018 09:55

Другие вопросы по теме