html响应式div自动浮动,CSS - 三栏响应式布局(左右固宽,中间自适应)的五种方法...

这种布局方式除了是很常见的面试题,更重要的,他还是很常见的一种页面布局。因此必须要掌握几种制作情况。

这里我先列出几种我总结的,可能有些不足,希望大家也可以留言补充,我再整理成更完善的。

在分条展示实现方案前,我先把通用的css贴一下:*{

margin: 0;

padding: 0;

}

html{

font-family: "微软雅黑";

}

ul li{

list-style: none;

}

a:link,a:hover{

text-decoration: none;

}

.clearfix{

*zoom:1;

}

.clearfix:after{

height: 0;

clear: both;

content: "";

visibility: hidden;

display: block;

}

.fl{

float: left;

}

.fr{

float: right;

}

h3,.tips-info{

margin: 8px 0;

font-size: 14px;

}

li{

margin-bottom: 10px

}

.tips,ol{

background: #fffbfb;

padding: 10px 20px;

}

.tips-ex{

font-size: 12px;

color: #99c1c1;

}

.block{

padding: 10px 20px;

border-top: 5px solid #99c1c1;

margin: 30px 0 0px;

background: #f5f5f5;

}

.browser,.container{

padding: 20px;

}

.container{

font-size: 14px;

}

.container,.img-box{

background: #eee;

border: 1px solid #999;

}

.box{

background: #fff;

padding: 20px;

border: 1px solid #999;

}

.team-box{

width: 158px;

}

.info-box{

}

.person-box{

width: 78px;

}

.person-box .img-box{

margin-bottom: 20px;

}

.person-box .img-box:last-child{

margin: 0;

}

.img-box{

width: 78px;

}

.img-txt{

line-height: 20px;

margin: 20px 0;

text-align: center;

padding: 0 5px;

}

.team-name{

width: 78px;

height: 80px;

text-align: center;

}

/* others */

.top{

margin-top: 150px;

}

.bottom{

margin-bottom: 150px;

}

主要是以下几种方案基础代码、无关痛痒的样式代码和左中右三栏各自需要提前固定的尺寸代码。

以下分几种情况实现:

第一种,float布局实现

这绝对是我大脑能第一下想到的!

AAffA0nNPuCLAAAAAElFTkSuQmCC

左右两栏分别左浮动、右浮动。

中间栏使用margin/padding撑开左右两栏需要占据的位置即可。

代码:

html:

团队logo 80x80
团队名称
个人logo 80x80
个人logo 80x80
个人logo 80x80
个人logo 80x80

关于你们团队的介绍

可以给我们解释一下团队名称得来历,或是分别介绍你们的团队成员。(以下为示例)

页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。index.json 是页面的配置文件:页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

又一个小标题

页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

css:.f-cont .team-box,.img-box,.team-name{

float: left;

}

.f-cont .person-box{

float: right;

}

.f-cont .info-box,.p-cont .info-box{

margin: 0 140px 0 220px;

}

看下动态效果:

妈耶传不了动图

第二种,定位布局+margin

AAffA0nNPuCLAAAAAElFTkSuQmCC

左右栏分别使用absolute定位,同float一样,左边的定位left 0,右边的定位right 0;

中间还是用margin或padding撑开左右栏需要占据的位置即可。(利用了浮动或定位时,结构飘起来不占据文档空间的特点)

代码:

html:

团队logo 80x80
团队名称

关于你们团队的介绍

可以给我们解释一下团队名称得来历,或是分别介绍你们的团队成员。(以下为示例)

页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。index.json 是页面的配置文件:页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

又一个小标题

页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

个人logo 80x80
个人logo 80x80
个人logo 80x80
个人logo 80x80

css:.p-cont{

position: relative;

height: 430px;

}

.p-cont .team-box,.p-cont .person-box{

position: absolute;

top: 20px;

z-index: 9;

}

.p-cont .team-box{

left: 20px;

}

.p-cont .person-box{

right: 20px;

}

不足点:

不过这种布局有点缺点就是,父元素需要设置固定高度,中间自适应时,如果内容过多而宽度又过窄,会导致高度被迫增加,严重时冲破父元素高度,产生溢出的现象:

看动图,看不了就去my博客看吧,无奈:(

第三种,display:table 实现

AAffA0nNPuCLAAAAAElFTkSuQmCC

父元素display:table;

左右子元素使用display:table-cell;

中间正常文档流,margin撑开间距即可

代码:

html:

团队logo 80x80
团队名称

关于你们团队的介绍

可以给我们解释一下团队名称得来历,或是分别介绍你们的团队成员。(以下为示例)

页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。index.json 是页面的配置文件:页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

又一个小标题

页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

个人logo 80x80
个人logo 80x80
个人logo 80x80
个人logo 80x80

css:.d-cont{

display: table;

}

.d-cont .cell{

display: table-cell;

vertical-align: top;

}

.d-cont .info-box{

margin: 0 20px;

}

这种的高度就不会被撑破,父元素高度就会自适应子元素的高度进行伸缩;

同样,动图飞了...

第四种,浮动 + margin负边距

AAffA0nNPuCLAAAAAElFTkSuQmCC

代码:

html:

关于你们团队的介绍

可以给我们解释一下团队名称得来历,或是分别介绍你们的团队成员。(以下为示例)

页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。index.json 是页面的配置文件:页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

又一个小标题

页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

团队logo 80x80
团队名称
个人logo 80x80
个人logo 80x80
个人logo 80x80
个人logo 80x80

css:.m-l,.m-c,.m-r{

float: left;

}

.m-l{

margin-left: -100%;

}

.m-c{

margin: 0 140px 0 220px;

}

.m-r{

margin-left: -120px;

}

第五种,css3 - flex

AAffA0nNPuCLAAAAAElFTkSuQmCC

代码:

html:

团队logo 80x80
团队名称

关于你们团队的介绍

可以给我们解释一下团队名称得来历,或是分别介绍你们的团队成员。(以下为示例)

页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。index.json 是页面的配置文件:页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

又一个小标题

页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

个人logo 80x80
个人logo 80x80
个人logo 80x80
个人logo 80x80

css:.fx-cont{

display: -webkit-flex;

display: flex;

}

.fx-cont .info-box{

flex: 1;

margin: 0 20px;

}

最后,想看动图的效果的还请您移驾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值