<div class="logo"><img src="logo.png"></div>
лучше делать так <img src="logo.png" class="logo">
<div>
<img>
____
<a></a>
</div>
<a class="..">
но о них вам валидатор скажет сразу, поэтому не вижу смысла описывать правила валидностиdisplay: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
flex-wrap: wrap;
display: flex;
justify-content: space-between;
#container {
box-sizing: border-box;
display: flex;
flex-wrap: nowrap;
width: 100%;
}
#container > div {
flex-basis: 100%;
}
#container > div:nth-child(1) {
flex-shrink: 4;
}
#container > div:nth-child(2) {
flex-shrink: 3;
}
#container > div:nth-child(3) {
flex-shrink: 2;
}
function isBalanced(str) {
// пары открывающих-закрывающих скобок
var br = "(){}[]";
// стек открытых скобок
var st = [];
// бежим по всей строке
for (var i = 0; i < str.length; ++i) {
// текущий символ
var ch = str[i];
// ищем символ в скобках
var ind = br.indexOf(ch);
// если скобка найдена
if (ind >= 0) {
// проверяем, какая это скобка
if (ind & 1) {
// если закрывающая скобка, проверяем стек
// стек пуст - плохо
if (!st.length) return false;
// извлекаем последнюю открытую скобку из стека
var last_br = st.pop();
// если она не соответствует закрывающей скобке - тоже плохо
if (last_br != br[ind - 1]) return false;
} else {
// открывающую скобку просто пихаем в стек
st.push(ch);
}
}
}
// если после обхода всей строки стек пуст - всё ок
return !st.length;
}