Настраиваемый флажок boostrap 4

у меня есть настраиваемый флажок asp.net bootstrap 4, который я не могу выровнять в строке группы форм, как показано на рисунке Проблема с флажком

Настраиваемый флажок boostrap 4

Код строки группы формы выглядит следующим образом.

<div class = "form-group row">

    <asp:Label ID = "lblHowDidYouHear" CssClass = "col-2 col-form-label" AssociatedControlID = "ddlHowDidYouHear" runat = "server" Text = "How Did You Hear:"></asp:Label>
    <div class = "col-4">
        <asp:DropDownList ID = "ddlHowDidYouHear" runat = "server" CssClass = "custom-select"></asp:DropDownList>
    </div>
    <%--ISSUE WITH THE FOLLOWING--%>
    <asp:Label ID = "lblNoDetails" CssClass = "col-2 col-form-label" runat = "server" Text = "Personal Information:"></asp:Label>
    <div class = "custom-control custom-checkbox">
        <input type = "checkbox" class = "custom-control-input" id = "customCheck" name = "customCheck" runat = "server" />
        <label class = "custom-control-label" for = "customCheck">Not Provided</label>
    </div>

</div>

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

Я погуглил эту проблему и безуспешно играл с css в Chrome.

Кто-нибудь сталкивался с этой проблемой раньше и мог бы предложить решение, пожалуйста?

Спасибо!

Улучшение производительности загрузки с помощью 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
0
3 259
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте следующий фрагмент. Проблема в том, что у вас есть элемент html label и span с классом col css. Не уверен, что это работает правильно, но я думаю, что нет. И custom-control custom-checkbox div не находится внутри div с классом col.

<div class = "row">
    <div class = "col-2 col-form-label">
        <asp:Label ID = "lblHowDidYouHear" AssociatedControlID = "ddlHowDidYouHear" runat = "server" Text = "How Did You Hear:"></asp:Label>
    </div>
    <div class = "col-4">
        <asp:DropDownList ID = "ddlHowDidYouHear" runat = "server" CssClass = "custom-select"></asp:DropDownList>
    </div>
    <div class = "col-2 col-form-label">
        <asp:Label ID = "lblNoDetails" runat = "server" Text = "Personal Information:"></asp:Label>
    </div>
    <div class = "col-4">
        <div class = "custom-control custom-checkbox">
            <input type = "checkbox" class = "custom-control-input" id = "customCheck" name = "customCheck" runat = "server" />
            <label class = "custom-control-label" for = "customCheck">Not Provided</label>
        </div>
    </div>
</div>

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

user3229936 12.03.2019 23:27

Да, ваш код сработал, спасибо! проблема с неустановленным флажком была в другом месте! Спасибо!

user3229936 13.03.2019 00:02

Использование этого решения будет сложным в управлении, если у вас UpdatePanel что-то изменилось на сервере.

Jamshaid K. 25.02.2020 09:29

Для тех, кто использует стандартный asp:RadioButtonList и т. д. Если вы добавите его в свой .master, то это станет одноразовой работой и автоматически подберет asp: элементы и стилизует их для вас:

При размещении элемента управления вам просто нужно определить

CssClass = "custom-form-style"

для списков и отдельных элементов. Если вы хотите использовать стиль переключения для флажков, вам нужно будет использовать

CssClass = "custom-form-style-switch"

Скрипт добавляет все обертки и классы за вас. Еще одна вещь, которую следует отметить, это то, что вы должны определить метки. Однако вам не нужно добавлять метки как отдельные элементы. Чтобы определить метку, вам нужно использовать

Text = "FooBar"

в контроле.

<asp:RadioButtonList ID = "rdGender" runat = "server" CssClass = "custom-form-style">
   <asp:ListItem Value = "M" Text = "Male" Selected = "True"></asp:ListItem>
   <asp:ListItem Value = "F" Text = "Female"></asp:ListItem>
</asp:RadioButtonList>

<asp:CheckBoxList ID = "cbGender" runat = "server" CssClass = "custom-form-style">
   <asp:ListItem Value = "M" Text = "Male" Selected = "True"></asp:ListItem>
   <asp:ListItem Value = "F" Text = "Female"></asp:ListItem>
</asp:CheckBoxList>

<asp:CheckBox ID = "CheckBox1" runat = "server" Text = "FooBar" CssClass = "custom-form-style" />
<asp:CheckBox ID = "CheckBox2" runat = "server" Text = "FooBar" CssClass = "custom-form-style-switch" />
<asp:RadioButton ID = "RadioButton1" runat = "server" Text = "FooBar" CssClass = "custom-form-style" />

По умолчанию элементы, размещенные в одном родительском div, будут отображаться вертикально. Вам придется поиграть с ним, если вы хотите горизонтальное расположение.

Скрипты, которые следят за форматированием, находятся в функции. Это сделано для того, чтобы стиль можно было вызвать, если вы создаете элементы на лету, без перезагрузки страницы.

Для вызова функции используйте

<script type = "text/javascript">
   BootStrapChecksRadios()
</script>

Вот скрипт загрузки страницы.

<script type = "text/javascript">
   $(document).ready(function () {
      BootStrapChecksRadios()
   });

   function BootStrapChecksRadios() {
      $('input', '.custom-form-style').each(function () {
         if ($(this).parent().attr('class') == 'custom-form-style')
         {
            $(this).unwrap();
         }
         $(this).addClass("custom-control-input " + $(this).attr('id'))
         $("label[for='" + $(this).attr('id') + "']").addClass("custom-control-label " + $(this).attr('id'))
         if ($(this).attr('type') == 'radio') {
            $("." + $(this).attr('id')).wrapAll("<div class='custom-control custom-radio' />");
         } else {
            $("." + $(this).attr('id')).wrapAll("<div class='custom-control custom-checkbox' />");
         }
      });
      $('input[type=checkbox]', '.custom-form-style-switch').each(function () {
         if ($(this).parent().attr('class') == 'custom-form-style-switch')
         {
            $(this).unwrap();
         }
         $(this).addClass("custom-control-input " + $(this).attr('id'))
         $("label[for='" + $(this).attr('id') + "']").addClass("custom-control-label " + $(this).attr('id'))
         $("." + $(this).attr('id')).wrapAll("<div class='custom-control custom-switch' />");
      });
   }
</script>

Превосходный ответ. Спасибо.

Graham Epps 04.04.2020 08:15
Ответ принят как подходящий

Это сработало для меня

<div class = "custom-control custom-switch">
            <asp:CheckBox ID = "Checkbox1" runat = "server" ValidationGroup = "Nuevo" />
            <label class = "custom-control-label" for='<%: Checkbox1.ClientID %>'>Visible</label>

<script>
    $(document).ready(function () {
        $('#' + '<%: VisibleChk.ClientID %>').addClass("custom-control-input");

    });</script>

Добро пожаловать в Stack Overflow. Обратите внимание, что это сайт только на английском языке! Отредактируйте свой вопрос, чтобы использовать английский язык, иначе он будет помечен для удаления.

Adrian Mole 15.11.2019 17:14

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