Arhn - архитектура программирования

Невозможно отобразить встроенные формы с помощью загрузочного CSS

Я только начал использовать загрузочный CSS с формой настройки, которую я разрабатываю.

В форме есть 3 параметра верхнего уровня: радио1 (y или n), TopSettings (который имеет 3 дополнительных параметра: Включить, textbox1, textbox2) и mediaDir (textbox). Я пытаюсь выровнять эти 3 метки верхнего уровня слева и выровнять 3 поднастройки TopSettings справа.

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

-› См. изображение здесь ‹-

(На изображении: вверху — вид, который я хотел, и достигнутый с помощью жестко закодированных таблиц в html. Внизу — то, что выглядит с помощью начальной загрузки)

<form name="serverSetting">
    <fieldset> <legend> <b>Settings</b> </legend>
        <div> 
          <table class="code">        
            <tr> 
            <td class="padded"> radio1= </td>
            <td class="padded"> <input type="radio" name="radio1" value="Y">y
                <input type="radio" name="radio1" value="N">n  </td>
            </tr>

            <tr> 
            <td class="padded"> TopSettings=</td>
            <td class="padded">
                <table class="code"  cellspacing = "0" cellpadding = "0">
                <tr>
                <td>Enabled= </td>
                <td> <input type="radio" name="Enabled" value="Y">y
                <input type="radio" name="Enabled" value="N">n ; </td>
                </tr>

                <tr>
                <td>texbox1=</td> 
                <td><input type="number" name="textbox1" value=40>;</td>
                </tr>

                <tr><td>textbox2=</td>
                <td><input type="number" name="textbox2" value=640>;</td>
                </tr>
                </table>  
            </td>
            </tr>

            <tr>
            <td class="padded">mediaDir= </td>
            <td class="padded"><input type="text" name="mediaDir" value="/data/media">;</td>
            </tr>
          </table>
          </div>
          </fieldset>

    </form> 

Однако, когда я переключился на Bootstrap, встроенное свойство трех поднастроек было потеряно. Я добавил встроенный класс с помощью div, и радио Enable отображается встроенным, а textbox1 и textbox2 — нет.

   <form class="form-horizontal" name="serverSetting">
      <fieldset> <legend> <b>Settings</b> </legend>
        <div class="control-group code">
          <label class="control-label code" for="xcode">radio1=</label>
          <div class="controls">
            <input type="radio" name="radio1" value="Y">y
            <input type="radio" name="radio1" value="N">n
          </div>
        </div>

        <div class="control-group code">
          <label class="control-label code" for="TopSettings">TopSettings=</label>

          <div class="controls form-inline">
            <label class="inline" for="TopSettings">Enabled= </label> 
            <input class="code" type="radio" name="Enabled" value="Y">y
            <input class="code" type="radio" name="Enabled" value="N">n
          </div>

          <div class="controls form-inline">
            <label>textbox1e=</label>
            <input type="number" name="textbox1e" onblur="if(this.value=='') this.value = 40" placeholder=40>
          </div>

          <div class="controls form-inline">
            <label for="textbox2">textbox2=</label>
            <input type="number" name="textbox2" placeholder=640>
          </div>
        </div>

        <div class="control-group code">
          <label class="control-label code" for="mediaDir">mediaDir=</label>
          <div class="controls">
            <input type="number" name="mediaDir" placeholder="/data/meida/">
          </div>
        </div>

       </fieldset>
    </form> 

Я открывал html в Firefox. (Я также пытался хромировать, он отображался в строке, но не выравнивался.) Кто-нибудь знает, как добиться отображения, как на картинке выше?

РЕДАКТИРОВАТЬ: мой файл css:

div{
max-width:550px;
}
.code {
font-family: "Courier New", Courier, monospace;
}   


input{
}
.code {
font-family: "Courier New", Courier, monospace;
}


label.code {
font-family: "Courier New", Courier, monospace;
}

Ответы:


1

Вот рабочая версия вашего кода на скрипке.

Что было причиной проблемы:

При использовании горизонтальных форм Bootstrap всегда помните, что структура должна быть следующей:

<form class="form-horizontal">
    <div class="control-group">
        <label class="control-label" for="inputEmail">Email</label>
        <div class="controls">
             <input type="text" id="inputEmail" placeholder="Email">
        </div>
    </div>
</form>

Таким образом, в вашем случае вы должны вложить «поднастройки» в одиночный div class="controls": тот, который находится после блока метки "TopSettings=". Это логично, так как все «поднастройки» образуют один вложенный блок, который является элементом управления, соответствующим метке "TopSettings=".

Тогда нет необходимости использовать form-inline: обратите внимание, что вложенный блок (группа «поднастройки») не что иное, как еще один вложенный экземпляр form-horizontal. Поскольку свойства form-horizontal уже унаследованы от родительской формы, нет необходимости повторяться. Вместо этого вы должны обернуть каждую из трех "вложенных настроек" в блок control-group, который, в свою очередь, будет содержать метку и элемент управления.

Вот исправленный код:

<div class="control-group code">
    <label class="control-label code">TopSettings=</label>

    <div class="controls">
        <div class="control-group code">
            <label class="control-label">Enabled= </label>
            <div class="controls">
                <input class="code" type="radio" name="Enabled" value="Y"/>y
                <input class="code" type="radio" name="Enabled" value="N"/>n
            </div>
        </div>

        <div class="control-group code">
            <label class="control-label">textbox1=</label>
            <div class="controls">
                <input type="number" name="textbox1e" onblur="if(this.value=='') this.value = 40" placeholder=40 />
            </div>
        </div>

        <div class="control-group code">
            <label class="control-label">textbox2=</label>
            <div class="controls">
                <input type="number" name="textbox2" placeholder=640 />
            </div>
        </div>
    </div>
</div>

РЕДАКТИРОВАТЬ

Чтобы выровнять подэлементы управления, вы можете добавить следующие два пользовательских класса в свой css:

.form-horizontal .control-label.subcontrol-label{
    width: auto;
}

.form-horizontal .controls.subcontrols{
    margin-left: 80px;   
}

и используйте их соответственно с метками поднастроек, например.

<label class="control-label subcontrol-label">

и управляет div, например.

<div class="controls subcontrols">.

Вы можете найти обновленную версию демонстрации здесь.

07.08.2013
  • Спасибо! Это почти то, что я хочу. Однако есть ли способ выровнять 3 метки поднастроек с полями над ними и под ними? например, выровнять enable с [y, n] Radio1 над ним, а textbox2 с текстовым полем medirDir под ним? 09.08.2013
  • Да, это сработало, хотя и немного странно. Мне кажется, что в бутстрапе некоторая ширина (например, ширина столбца) также жестко закодирована как 80px? Но в любом случае, он достигает того, что мне нужно для этого случая, просто скрестите пальцы, что у меня нет длинной строки в качестве метки. 10.08.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..