Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73

Fieldset на слоях

06.04.2017, 12:57. Показов 3257. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Хочу на слоях сделать эффект наподобие fieldset. Проблема в том, что когда в legend возникает вторая строка, он накладывается на контент родителя. Как этого можно избежать?

https://jsfiddle.net/w419kLfk/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<br /><br />
 
<div class="fieldset">
  <div class="legend">legend legend legend legend legend legend legend legend legend legend</div>
  fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</div>
 
<br /><br />
 
<div class="fieldset limit">
  <div class="legend">legend legend legend legend legend legend legend legend legend legend</div>
  fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.fieldset {
    border: 1px solid #777;
    position: relative;
  padding-top: 10px;
}
 
.legend {
    border: 1px solid #777;
    margin: 0;
    position: absolute;
    top: -10px;
    left: 10px;
    background: white;
}
 
.limit {
  width: 300px;
}
Вариант использовать fieldset - не вариант. Т.к. хочется свободы в изменении внешнего вида сайта путем правки CSS, без необходимости внесения изменений в саму HTML-верстку.

Спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2017, 12:57
Ответы с готовыми решениями:

fieldset
Здравствуйте, есть код: &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;Тег FIELDSET&lt;/title&gt; &lt;/head&gt;...

работа с fieldset
Всем добрый день! не подскажите как расположить два fieldset параллельно друг другу

подобие fieldset'a
У меня есть контент, мне внезапно понадобилось объединить блоки в один контейнер, для того чтобы с помощью jQuery управлять что нужно...

16
24 / 24 / 12
Регистрация: 01.03.2017
Сообщений: 93
06.04.2017, 14:47
Привет! если position убрать то будет родитель растягиваться но накрывать не будет пойдёт?
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.fieldset {
    border: 1px solid #777;
  padding-top: 10px;
}
 
.legend {
    border: 1px solid #777;
    margin: 0;
    background: white;
}
 
.limit {
  width: 300px;
}
0
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 14:55  [ТС]
Penetrator_, спасибо, но мне надо чтоб внешне был как fieldset.

Добавлено через 1 минуту
Проще говоря, чтоб было вот так:
https://jsfiddle.net/w419kLfk/4/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<br /><br />
 
<fieldset>
  <legend>legend legend legend legend legend legend legend legend legend legend</legend>
  fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</fieldset>
 
<br /><br />
 
<fieldset class="limit">
  <legend>legend legend legend legend legend<br>legend legend legend legend legend</legend>
  fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</fieldset>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
fieldset {
    border: 1px solid #777;
}
 
legend {
    border: 1px solid #777;
    margin: 0;
    background: white;
}
 
.limit {
  width: 300px;
}
0
24 / 24 / 12
Регистрация: 01.03.2017
Сообщений: 93
06.04.2017, 14:56
Не понял. внешне как fieldset это как? При появлении второй строки вы поднимаете выше по позиции top просто не -10 а -25 px. Лучше нарисуйте как должно быть при условии добавления второй строки
А всё понял... не увидел ваше добавление
0
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 14:58  [ТС]
Цитата Сообщение от Penetrator_ Посмотреть сообщение
При появлении второй строки вы поднимаете выше по позиции top просто не -10 а -25 px.
А если я не знаю, влезет текст на одну строку или в две. Или на все три будет?

Нужно чтоб было как в последнем примере.
0
24 / 24 / 12
Регистрация: 01.03.2017
Сообщений: 93
06.04.2017, 15:23
Лучший ответ Сообщение было отмечено ua30 как решение

Решение

пробуйте
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.fieldset {
    border: 1px solid #777;
    position: relative;
  padding-top: 10px;
}
 
.legend {
    border: 1px solid #777;
    margin: 0;
    position: relative;
    top: -20px;
    left: 10px;
    background: white;
}
 
.limit {
  width: 300px;
}
1
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 15:45  [ТС]
Penetrator_, спасибо за старания. Но как это поможет со случаями, когда будет не 2 строки, а 1 или 3, а может 10?
0
24 / 24 / 12
Регистрация: 01.03.2017
Сообщений: 93
06.04.2017, 16:05
Цитата Сообщение от ua30 Посмотреть сообщение
Penetrator_, спасибо за старания. Но как это поможет со случаями, когда будет не 2 строки, а 1 или 3, а может 10?
Я наверно вообще Вас к концу дня не понимаю(
извиняюсь вот ссылка на код
1
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 16:37  [ТС]
Penetrator_, сорри, протормозил!

Нет идей, как можно убрать лишнее пустое место после "legend" в этом примере? Я добавил обертку fieldset_body и поставил отрицательный верхний марджин, может можно проще как-то:

https://codepen.io/anon/pen/aJryWR

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<br /><br />
 
<div class="fieldset">
  <div class="legend">legend legend legend legend legend legend legend legend legend legend</div>
  fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</div>
 
<br /><br />
 
<div class="fieldset limit">
  <div class="legend">legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legendlegend legend legend legend legend legend legend legend legend legendlegend legend legend legend legend legend legend legend legend legendlegend legend legend legend legend legend legend legend legend legend</div>
  <div class="fieldset_body">fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset 
</div></div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.fieldset {
    border: 1px solid #777;
    position: relative;
  padding-top: 0px;
}
 
.legend {
  width:95%;
    border: 1px solid #777;
    margin: 0;
    position: relative;
    top: -20px;
    left: 10px;
    background: white;
}
 
.fieldset_body
{
  margin-top: -20px;
}
 
.limit {
  width: 300px;
}
0
24 / 24 / 12
Регистрация: 01.03.2017
Сообщений: 93
06.04.2017, 16:47
дак вам надо опустить ниже блок с legend -25px на -20 поставьте или как нужно вам -5 у меня нормально смотрится от первоначального варианта

Добавлено через 6 минут
padding-top только не забудьте убрать у fildset
1
34 / 34 / 14
Регистрация: 10.06.2015
Сообщений: 57
06.04.2017, 17:10
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="form">
  <div class="fieldset">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
      fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
  <div class="fieldset limit">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
    fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.form {
  padding-top: 50px;
}
.fieldset {
    border: 1px solid #777;
  margin-bottom: 50px;
}
.legend {
  border: 1px solid #777;
  display: table;
  text-align: center;
  transform: translateY(-50%);
  padding: 8px;
  margin: 0 auto;
  background: white;
  max-width: 80%;
}
.limit {
  width: 300px;
}
https://jsfiddle.net/w419kLfk/6/
1
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 17:52  [ТС]
Penetrator_, так надо чтоб при одной строчке легенда была посередине бордюра фиелдсета.

web-tech, спасибо и Вам, интересное решение. Не очень правда люблю display: table;
0
34 / 34 / 14
Регистрация: 10.06.2015
Сообщений: 57
06.04.2017, 17:54
Цитата Сообщение от ua30 Посмотреть сообщение
Не очень правда люблю display: table;
Не хотите css таблицы пользовать, замените на inline-block и задайте для .fieldset text-align: center
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="form">
  <div class="fieldset">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
      fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
  <div class="fieldset limit">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
    fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.form {
  padding-top: 50px;
}
.fieldset {
  border: 1px solid #777;
  margin-bottom: 50px;
  text-align: center;
}
.legend {
  border: 1px solid #777;
  display: inline-block;
  text-align: center;
  transform: translateY(-50%);
  padding: 8px;
  margin: 0 auto;
  background: white;
  max-width: 80%;
}
.limit {
  width: 300px;
}
https://jsfiddle.net/w419kLfk/7/
0
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 18:12  [ТС]
web-tech, спасибо, очень интересный вариант. Но у него есть существенный минус - чем больше высота legend, тем больше пустого места остается после него. Так понял, браузер резервирует его под слой, без учета смещения или х3 что...

https://jsfiddle.net/w419kLfk/8/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="form">
  <div class="fieldset">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
      fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
  <div class="fieldset limit">
    <div class="legend">
      legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend legend
    </div>
    <div class="form-group">
    fieldset fieldset fieldset fieldset fieldset fieldset fieldset
    </div>
  </div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.form {
  padding-top: 50px;
}
.fieldset {
    border: 1px solid #777;
  margin-bottom: 50px;
 
}
.legend {
    border: 1px solid #777;
  display: inline-block;
  transform: translateY(-50%);
  padding: 8px;
    margin-left: 10px;
    background: white;
  max-width: 80%;
}
.limit {
  width: 300px;
}
0
34 / 34 / 14
Регистрация: 10.06.2015
Сообщений: 57
06.04.2017, 18:25
Цитата Сообщение от ua30 Посмотреть сообщение
чем больше высота legend, тем больше пустого места остается после него.
Это за счет transform: translate - элемент смещается, но его место остается в потоке, аналогично смещению при position relative. Но этот способ решает выравнивание посередине блока при разном количестве строк контента (больше двух строк на практике редко оказывается, да и две строки не часто там окажется).
0
1 / 1 / 0
Регистрация: 01.09.2016
Сообщений: 73
06.04.2017, 18:35  [ТС]
Цитата Сообщение от web-tech Посмотреть сообщение
аналогично смещению при position relative
Неа... см. пример по ссылке Fieldset на слоях
0
34 / 34 / 14
Регистрация: 10.06.2015
Сообщений: 57
06.04.2017, 18:59
Цитата Сообщение от ua30 Посмотреть сообщение
Неа... см. пример по ссылке
Ну как же нет - элемент смещается, а место остается зарезервировано под него в потоке.
Разница только лишь в самом смещении: при transform: translate элемент в моем примере смещается на 50% от своей высоты, а в том случае - смещение на определенное количество пикселей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2017, 18:59
Помогаю со студенческими работами здесь

Выравнивание содержимого fieldset по центру
Добрый день! Не получается отцентровать содержимое внутри тега fieldset (а именно, несколько ссылок). Нижеприведённый код выравнивает...

Изменение размеров рамки тега <fieldset>
Всем привет! А можно ли изменить размер рамки тега fieldset? В стиле могу изменить ширину, цвет, а что то с размером не получается:(

Тег 'fieldset' нормально отображается только в Chrome
Привет, народ. Появилась проблема: 'fieldset' нормально отображается только в Chrome, то есть в других браузерах (FF,IE) криво...

разместил в слоях div
Посмотрел код сайта и решил поднять контент в верх, по причине удаленности контента от начала кода. Поднял на слоях &lt;div&gt; ...

Проблема. Флэшка в слоях
Проблема в том, что надо поместить флэшку на задний фон. А на передний план текст, к-рый берется из БД. Через слои и CSS не получаетя. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru