2015-11-23 4 views
-2

Контейнер div. Я знаю, как легко использовать отображение и ширину, чтобы он выглядел так, но как использовать CSS3flexbox, чтобы сделать 4 макета кнопок следующим образом?Как использовать css3 'flexbox', чтобы сделать такой макет?

enter image description here

.container { 
 
    background-color: blue; 
 
    width: 200px; 
 
    padding: 10px; 
 
} 
 
button { 
 
    display: block; 
 
    width: 100%; 
 
} 
 
button:nth-of-type(2), 
 
button:nth-of-type(3) { 
 
    width: 49%; 
 
    display: inline; 
 
}
<div class="container"> 
 
    <button>Button1</button> 
 
    <button>Button1</button> 
 
    <button>Button1</button> 
 
    <button>Button1</button> 
 
</div>

+1

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

ответ

2

Использование flex-flow:row wrap и сделать верх/низ кнопки удвоиться пространство

div, div *{box-sizing:border-box;} 
div{display:flex;flex-flow:row wrap;padding:50px;} 
 
div button{flex:1;} 
 
div button:first-child, 
 
div button:last-child{flex:2 100%}
<div> 
 
    <button>1</button> 
 
    <button>2</button> 
 
    <button>3</button> 
 
    <button>4</button> 
 
</div>

+0

Как только я добавлю добавку в контейнер div, он просто сломает макет. –

+1

@ ZhenyangHua вам нужно «box-sizing: border-box», чтобы дополнение не добавлялось к ширине. –

+0

Что делать, если я хочу добавить прописку в контейнер div (а не кнопку)? что, похоже, нарушает гибкость. –

1

HTML

<div class="container"> 
    <button>Button1</button> 
    <button>Button2</button> 
    <button>Button3</button> 
    <button>Button4</button> 
</div> 

CSS

.container { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: space-between; 
    background-color: blue; 
    width: 200px; 
    padding: 10px; 
} 

button { margin: 5px 0; } 

button:nth-of-type(1), 
button:nth-of-type(4) { flex: 1 1 100%; } 

button:nth-of-type(2), 
button:nth-of-type(3) { flex: 0 1 45%; } 

DEMO

Смежные вопросы