Я хочу, чтобы один из дочерних элементов дисплея: flex; подгонять высоту к остальным.
blockquote>Предположим, вы хотите, чтобы зеленая секция (
child3
) имела наибольшую высоту:
- убедитесь, что у вас есть
align-items: stretch
(по умолчанию так что не переопределяйте это) - это гарантирует, что каждый строки изгибает дочерний элемент до максимальной высоты изгибает дочерний элемент.- обернуть содержимое других разделов (
child1
иchild2
) в абсолютно позиционированный элемент .- сделайте этот элемент-обертку флексбоксом колонки , чтобы получить переполнение прямо на желтой секции .
См. Демонстрацию ниже:
<час>.parent { display: flex; flex-direction: row; flex-wrap: nowrap; /*align-items: baseline;*/ } .child1 { background-color: red; align-self: stretch; width: 25%; min-width: 25%; max-width: 25%; } .child2 { background-color: yellow; min-height: 0; min-width: 0; overflow: auto; margin: 0 15px; width: calc(50% - 30px); max-width: calc(50% - 30px); display: flex; flex-direction: column; flex-shrink: 1; } .child3 { background-color: green; width: 25%; min-width: 25%; max-width: 25%; } .child2 .tabl { flex-shrink: 1; min-height: 0; overflow: auto; /* changed to auto */ } .child1, .child2, .child3 { /* ADDED */ position: relative; } .child-wrap { /* ADDED */ position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; }
<div class="parent"> <div class="child1"> <div class="child-wrap"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p></div> </div> <div class="child2"> <div class="child-wrap"> <div class="info"> <h2>Element</h2> </div> <div class="tabl"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> </div> <div class="footer"> <button class="btn">Some button</button> </div> </div> </div> <div class="child3"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> </div> </div>
Предположим, вы хотите либо левой или правой секций, чтобы иметь максимальную высоту - в этом случае используйте вышеупомянутое абсолютное позиционирование только для среднего желтого элемента - см. Демонстрацию ниже, где самый высокий из левый или правый элементы определяют высоту всей обертки
parent
:
[1111 ].parent { display: flex; flex-direction: row; flex-wrap: nowrap; /*align-items: baseline;*/ } .child1 { background-color: red; align-self: stretch; width: 25%; min-width: 25%; max-width: 25%; } .child2 { background-color: yellow; min-height: 0; min-width: 0; overflow: auto; margin: 0 15px; width: calc(50% - 30px); max-width: calc(50% - 30px); display: flex; flex-direction: column; flex-shrink: 1; } .child3 { background-color: green; width: 25%; min-width: 25%; max-width: 25%; } .child2 .tabl { flex-shrink: 1; min-height: 0; overflow: auto; /* changed to auto */ } .child1, .child2, .child3 { /* ADDED */ position: relative; } .child-wrap { /* ADDED */ position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; }
<div class="parent"> <div class="child1"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> </div> <div class="child2"> <div class="child-wrap"> <div class="info"> <h2>Element</h2> </div> <div class="tabl"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> <p>Some element four</p> </div> <div class="footer"> <button class="btn">Some button</button> </div> </div> </div> <div class="child3"> <p>Some element one</p> <p>Some element two</p> <p>Some element three</p> </div> </div>
19задан Eddie 10 April 2009 в 04:21поделиться
HashMap<String, String> dataMap = new HashMap<String,String>();
Ваша переменная dataMap
на данный момент не инициализирована. Вы должны получить предупреждение компилятора об этом.
Где инициализируется карта данных? Он всегда равен нулю.
Чтобы уточнить, вы объявляете переменную и устанавливаете ее в ноль. Но вам нужно создать новую карту, независимо от того, является ли она HashMap или аналогичной.
Например,
datamap = new HashMap();
(оставляя в стороне дженерики и т. Д.)
dataMap объявлен, но не инициализирован. Его можно инициализировать с помощью
datamap = new HashMap ();
Хм, что именно ожидаете ли вы, когда делаете это?
HashMap<String, String> dataMap = null;
...
dataMap.put(...)
Ну, есть три объекта, к которым осуществляется доступ в этой строке. Если nextLine [0] и nextLine [6] не равны NULL, поскольку вышеуказанный вызов println сработал, то это оставляет dataMap. Вы делали dataMap = new HashMap (); somwehere?