Сделайте два набора полей одинаковой высоты - PullRequest
3 голосов
/ 23 июня 2010

У меня есть два <fieldset> внутри одного div (ничего больше), которые расположены рядом друг с другом (positon: absolute, div установлен в относительный).

Есть ли способ сделать этоfieldsets и одинаковой высоты без установки фиксированной высоты?

У меня есть идея, что, может быть, я могу сделать так, чтобы максимальная высота родительского элемента и минимальная высота auto?

Кроме того,тогда можно ли было бы сделать так, чтобы содержимое позиции наборов полей центрировалось вертикально?

Меня не интересует, работает ли это с IE, но нужно работать с Firefox и Webkit и, если возможно, с Opera.

Спасибо

Редактировать: Вы можете увидеть страницу здесь: https://dl.dropbox.com/u/2318402/SO/login.html

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

Я немного опоздал, но вы всегда можете использовать таблицы (они тоже не нравятся, но хорошо .. таблица в этой ситуации работает).

<table>
  <tr>
      <td style="vertical-align:top">
           <fieldset></fieldset>   
      </td>   
      <td style="vertical-align:top">
           <fieldset></fieldset>   
      </td>   
  </tr>
</table>
3 голосов
/ 23 июня 2010

Вы можете поместить их в родительский контейнер, например таблицу или div, и сделать так, чтобы два дочерних элемента были на height=100%.

Единственными двумя другими вариантами являются те, которые вам не нужны, на фиксированной высоте, например height=59px, или вы можете сделать это с помощью javascript.

Для вертикального позиционирования вы можете поместить их в родительский контейнер, например таблицу или div, а затем добавить туда vertical-align:center

1 голос
/ 23 июня 2010

Следующее работает без использования js / jQuery, но в этом примере полагается на использование псевдоэлемента css3 :nth-of-type(odd), хотя это можно заменить, применив класс css к нечетные наборы полей.

Он также основан на использовании height: 100% для fieldset s, что само по себе зависит от родительского элемента (в данном случае form), имеющего указанную высоту. Если это проблема, то для демонстрации я использовал overflow-y: auto; для наборов полей, чтобы ограничить их размеры до размеров их родительского элемента, но с поведением прокрутки, чтобы выявить переполнение.

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="http://davidrhysthomas.co.uk/mindez/css/stylesheet.css" />

    <style type="text/css" media="all">

        form        {
                width: 50%;
                height: 200px;
                }

        fieldset    {
                width: 30%;
                height: 100%;
                margin: 0 1em 0 0;
                padding: 0.5em 1em;
                overflow-y: auto;
                }

        fieldset:nth-of-type(odd)
                {
                float: left;
                }

        label       {
                display: inline-block;
                width: 30%;
                }

        input[type=text]
                {
                display: inline-block;
                width: 50%;
                }

    </style>
</head>

<body>

    <div id="wrap">

        <form enctype="form/multipart" method="post" action="">
            <fieldset>
                <label for="one">Label 1</label><input id="one" name="one" type="text" />
                <label for="two">Label 2</label><input id="two" name="two" type="text" />
            </fieldset>

            <fieldset>
                <label for="three">Label 3</label><input id="three" name="three" type="text" />
                <label for="four">Label 4</label><input id="four" name="four" type="text" />
                <label for="five">Label 5</label><input id="five" name="five" type="text" />
                <label for="six">Label 6</label><input id="six" name="six" type="text" />
            </fieldset>
        </form>

    </div>

</body>

</html>

Демонстрация онлайн по адресу: http://www.davidrhysthomas.co.uk/so/fieldsets.html.

Очевидно, что если есть какие-либо вопросы или проблемы, не стесняйтесь ставить их в комментариях, и я сделаю все возможное, чтобы помочь вам. =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...