Процент пропуска макета CSS

0

Я создаю элемент HTML с 4 элементами в нем. Для этого родительский элемент является <ul> и каждый из 4 элементов <li>. Внутренние элементы должны занимать четверть высоты и всю ширину минус заполнение родителя, поэтому я дал родителям определенный размер в px, а у детей -%. Но вместо этого дети в конечном итоге занимают половину всего пространства, почему?

Изображение 174551

HTML

<ul class="content_selection_container">
    <li>
        <form name="search_form" class="search_form" id="FORM_3">
            <input type="text" name="search_input" class="search_bar" />
            <input type="submit" value="" class="search_button" name="search_button"/>
        </form>
    </li>
    <li>
        <button class="content_selection_button">
            My Timeline
        </button>
    </li>
    <li>
        <button class="content_selection_button">
            relevent
        </button>
    </li>
    <li>
        <button class="content_selection_button">
            mentions
        </button>
    </li>
</ul>

CSS

content_selection_container{
    background-color:red;
    padding: 5px;
    height: 150px;
    width: 300px;
}

.search_form{
    height: 25%;
    width: 100%;
    display: inline-block;
}
.content_selection_button{
    width: 100%;
    height: 25%;
    border: 1px;
}

.search_bar{
    background-color:white;
    box-shadow: rgb(204, 204, 204) 0px 0px 0px 1px inset;
    border: 1px solid rgb(178, 210, 203);
    border-radius: 8px;
    font-size: 12px;
    height: 100%;
    width: 90%;

}

.search_button {
    cursor: pointer;
    border: 1px;
    background-color: #d4d4d4;
    font-family: 'EntypoRegular';
    color: #5f615c;
    font-size: 20px;
    height: 100%;
    width: 10%;
}
  • 0
    Любопытно, почему, если вы даете своему родительскому элементу определенный размер, вы не просто даете детям также определенный размер, четверть родительского элемента? Или это родительский размер для тестирования?
  • 0
    Да вроде. Я сделал так, чтобы у детей были проценты, а у родителя - число, потому что таким образом мне нужно менять только родителя, а не каждого ребенка.
Теги:
layout
html-lists

1 ответ

3
Лучший ответ

Вы установили высоту кнопок до 25%, что означает, что они пытаются занять до 25% от высоты их родителя li тегов. Установите высоту тегов li на 25% и установите детей (кнопки и т.д.) На height: 100% (100% из 25% - ака 25% красного контейнера).

Что-то вроде этого: http://jsfiddle.net/45Y4Z/ (вам нужно исправить бит поиска)


Боковое замечание: я уже могу предсказать, что вы столкнетесь с проблемой, при которой у вас есть элемент, который на 100% широкий, и вы добавляете, скажем, границу в 3 пикселя, ширина становится равной 100% + 6 пикселей (слишком широкая!). Вероятно, вы захотите решить эту проблему с помощью следующего css:

-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box;    /* Firefox, other Gecko */
box-sizing: border-box;         /* Opera/IE 8+ */

Вот отличное объяснение того, как это работает: http://css-tricks.com/box-sizing/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню