Почему высота span не такая как у родителя при height:100%?

Ссылка скопирована
28 января 2026 1 ответ

Привет у меня есть переключатель вкладок, однако я хочу что б высота каждого елемента при включенной вкладке (белом бекгранде) была у всех вкладок одинаковая и не выходила за предел родителя, родитель должен быть как максимальный елемент по высоте
ширина макс контент

Почему высота span не такая как у родителя при height:100%?

https://jsfiddle.net/puq1hwza/1/

<div class="holder">         <label>           <input type="radio" name="tab" value="0" />           <span>Lorem</span>         </label>         <label>           <input type="radio" name="tab" value="1" />           <span>isput</span>         </label>         <label>           <input type="radio" name="tab" value="2" />           <span>long text here</span>         </label>         <label>           <input type="radio" name="tab" value="3" />           <span>dolorsitamet</span>         </label>       </div>

<div class="holder"> <label> <input type="radio" name="tab" value="0" /> <span>Lorem</span> </label> <label> <input type="radio" name="tab" value="1" /> <span>isput</span> </label> <label> <input type="radio" name="tab" value="2" /> <span>long text here</span> </label> <label> <input type="radio" name="tab" value="3" /> <span>dolorsitamet</span> </label> </div>

body{   background:blue; }         .holder {       position: relative;        border: 1px solid #fff;       background: black;        width: max-content;       height: max-content;        display: flex;       flex-direction: row;       align-items: center;       justify-content: space-between;       gap: 10%;        label {         width: max-content;         height: max-content;                  input {           display: none;         }          span {           color: #fff;           display: flex;                    }         input[name='tab']:checked ~ span {           background: #fff;           color: green;         }       }     }

body{ background:blue; } .holder { position: relative; border: 1px solid #fff; background: black; width: max-content; height: max-content; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 10%; label { width: max-content; height: max-content; input { display: none; } span { color: #fff; display: flex; } input[name='tab']:checked ~ span { background: #fff; color: green; } } }

Дополнительно:

1. jsfiddle не работает в России. Переложите на codepen.io, если хочется, чтобы мы посмотрели.
2. В приложенном к вопросу коде вообще нет ничего с чего бы спан стал как label и нет ничего с чего бы все label были бы одинаковыми. (label могли бы, если бы вы перестали задавать им высоту)

Выводы:
- Убрать вертикальное центрирование у holder.
- Убрать высоту у label
- Задать высоту 100% для span
- Задать центрирование для span

Ответы:

Ну вот например:

snippet

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

Проблема, с которой вы столкнулись, связана с тем, что у элемента span не устанавливается высота 100% относительно его родителя. Это происходит потому, что у элемента span по умолчанию не задано свойство display: block, которое позволяет элементу занимать всю доступную ширину родителя.

Чтобы исправить эту проблему, вам необходимо явно указать для элемента span свойство display: block. Таким образом, элемент span будет вести себя как блочный элемент и займет всю доступную высоту своего родителя.

Пример кода на языке PHP:

 
    .parent {
        height: 200px;
        background-color: lightblue;
        position: relative;
    }
 
    .child {
        display: block;
        height: 100%;
        background-color: lightcoral;
    }
 
 
<div class="parent">
    <span class="child">Этот текст будет занимать всю высоту своего родителя</span>
</div>

.parent { height: 200px; background-color: lightblue; position: relative; } .child { display: block; height: 100%; background-color: lightcoral; } <div class="parent"> <span class="child">Этот текст будет занимать всю высоту своего родителя</span> </div>

В данном примере мы создали родительский элемент с классом "parent" и дочерний элемент span с классом "child". Установив для элемента span свойство display: block, мы гарантируем, что он будет занимать всю доступную высоту своего родителя.

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно