本文介绍了如何创建3列响应式布局?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有3列布局。当从桌面访问它时,它显示如下:

  --------------- ---------------------------- 
| columnleft | columncenter | columnright |
-------------------------------------------

我想在移动设备/平板电脑/调整大小浏览器中查看时,它就像这样:

  ---------------- 
| columnleft |
----------------
| columncenter |
----------------
| columnright |
----------------

我的示例如下,这里是。

 <风格> 
.column-left {float:left;宽度:33%; }
.column-right {float:right;宽度:33%; }
.column-center {display:inline-block;宽度:33%; }
< / style>
< div class =container>
< div class =column-left>左栏< / div>
< div class =column-center>列中心< / div>
< div class =column-right>列右侧< / div>
< / div>


解决方案

有很多方法可以做到。首先,您需要将div显示为大屏幕的列,然后使用媒体查询将它们更改为中/小屏幕的行。

HTML for all:

 < div class =container> 
< div class =section> 1< / div>
< div class =section> 2< / div>
< div class =section> 3< / div>
< / div>



1。 Flexbox:



  .container {
display:flex;
}

.section {
flex:1; / *增长* /
border:1px solid;
}

@media(max-width:768px){/ *断点* /
.container {
flex-direction:column;
}
}



2。 Float:



  .container:after {/ * clear float * / 
content: ;
display:table;
明确:两者;
}

.section {
float:left;
宽度:33.3333%;
border:1px solid;
box-sizing:border-box;
}

@media(max-width:768px){/ *断点* /
.section {
float:none;
width:auto;
}
}



3。内联块:



.container {
  display: flex;
}

.section {
  flex: 1; /*grow*/
  border: 1px solid;
}

@media (max-width: 768px) { /*breakpoint*/
  .container {
    flex-direction: column;
  }
}

2. Float:

.container:after { /*clear float*/
  content: "";
  display: table;
  clear: both;
}

.section {
  float: left;
  width: 33.3333%;
  border: 1px solid;
  box-sizing: border-box;
}

@media (max-width: 768px) { /*breakpoint*/
  .section {
    float: none;
    width: auto;
  }
}

3. Inline block:

.container {
  font-size: 0; /*remove white space*/
}

.section {
  font-size: 16px; /*reset font size*/
  display: inline-block;
  vertical-align: top;
  width: 33.3333%;
  border: 1px solid;
  box-sizing: border-box;
}

@media (max-width: 768px) { /*breakpoint*/
  .section {
    display: block;
    width: auto;
  }
}

4. CSS table:

.container {
  display: table;
  table-layout: fixed; /*euqal column width*/
  width: 100%;
}

.section {
  display: table-cell;
  border: 1px solid;
}

@media (max-width: 768px) { /*breakpoint*/
  .section {
    display: block;
  }
}

5. CSS grid:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /*fraction*/
}

.section {
  border: 1px solid;
}

@media (max-width: 768px) { /*breakpoint*/
  .container {
    grid-template-columns: none;
  }
}

这篇关于如何创建3列响应式布局?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 18:49