Скачет содержимое flex

192
16 февраля 2019, 12:30

Извиняюсь. Переделал немного.

Вот пример https://codepen.io/gluhovalexey/pen/OBjzGY

Здесь есть шапка и элемент из 3 частей, который включает списки ul слева и справа и div с контентом посередине, находящиеся в flex-contaner

Суть вопроса если убрать элемент со списками ul, то ширина шапки уменьшится. Тоесть если со страницы сайта в которой есть ul как на примере перейти на другую, где списков нет, то шапка сайта и другие постоянные элементы будут "прыгать" из за изменения размеров.

<div class="flex-container">
    <div  class="flex-row header">
        <img src="https://d.radikal.ru/d17/1810/b9/7bd548daa75f.png">
        <img src="https://d.radikal.ru/d17/1810/b9/7bd548daa75f.png">
        <img src="https://d.radikal.ru/d17/1810/b9/7bd548daa75f.png">
    </div>
    <div class="flex-row content">
        <div class="left">
            <ul>
                <li class=""><a href="" target="_blank">Пункт a</a></li>
                <li class=""><a href="" target="_blank">Пункт b</a></li>
                <li class=""><a href="" target="_blank">Пункт c</a></li>
                <li class=""><a href="" target="_blank">Пункт d</a></li>
                <li class=""><a href="" target="_blank">Пункт e</a></li>
                <li class=""><a href="" target="_blank">Пункт f</a></li>
                <li class=""><a href="" target="_blank">Пункт j</a></li>
                <li class=""><a href="" target="_blank">Пункт h</a></li>
            </ul>
        </div>
        <div class="center">
            Какой то контент посередине
        </div>
        <div class="right">
            <ul>
                <li class=""><a href="" target="_blank">Пункт 1</a></li>
                <li class=""><a href="" target="_blank">Пункт 2</a></li>
                <li class=""><a href="" target="_blank">Пункт 3</a></li>
                <li class=""><a href="" target="_blank">Пункт 4</a></li>
                <li class=""><a href="" target="_blank">Пункт 5</a></li>
                <li class=""><a href="" target="_blank">Пункт 6</a></li>
                <li class=""><a href="" target="_blank">Пункт 7</a></li>
                <li class=""><a href="" target="_blank">Пункт 8</a></li>
            </ul>
        </div>
    </div>
</div>

Стили:

.header {
    justify-content: center;
    flex-direction: row;
    flex-wrap: wrap;
}
.header img {
    width: 32%;
    margin: 1px;
    height: 100%;
}
.flex-container {
  display: flex;
  margin: 10px auto;
  max-width: 1300px;
  flex-wrap: wrap;
  flex-direction: column;
}
.flex-row {
  display: flex;
  margin-bottom: 50px
}
.content {
    flex-direction: row;
    width: 100%;
}
.content .left {
    flex: 2;
    width: 20%;
}
.content .center {
    flex: 4;
    justify-content: center;
    width: 60%;
}
.content .right {
    flex: 2;
    width: 20%;
}
Answer 1

Я думаю понял что вы хотели: https://codepen.io/Rusic/pen/EdvQee

Суть в том, что нужно ограничить рост и уменьшение флексов: краток это flex: 0 0 60% но ранее с этим были проблемы в записе по порядку:

flex-grow: 0
flex-shrink: 0
flex-basis: 60%
Answer 2

Видимо происходит это из за того, что контент меняется динамически в теге . С самого начала надо было сказать что делается все в Angular. Создал две статические странички одна с шапкой и колонками, другая с шапкой без колонок, ничего не прыгает, ширина контейнера всегда одна.

READ ALSO
Проблема с маской для input

Проблема с маской для input

Проблема с input и библиотекой для маски на input jQuery Mask Plugin

150
html5 Background

html5 Background

Работаю над тем, что бы страница загружалась с опозданиемПодумал, что для этого можно поставить ( background-image ), и при запуске сайта, с начало...

138
Создание элементов в java Script

Создание элементов в java Script

Подскажите как более продуктивно создавать громоздкие элементы в JS, например всплывающее окно с инпутами - делать это через documentcreateElement или...

184