您现在的位置是:网站首页> 编程资料编程资料
结合CSS3的布局新特征谈谈常见布局方法CSS3哪些新特性值得称赞
2021-09-05
1010人已围观
简介 这篇文章主要结合CSS3的布局新特征谈谈常见布局方法,进行一次基于CSS2、3的各种布局的方法总结,感兴趣的小伙伴们可以参考一下
一、常见的页面布局
在拿到设计稿时,作为一个前端人员,我们首先会做的应该是为设计图大致地划分区域,然后选择一种最合理的,结构清晰的布局。下面我先根据一些典型的网站案例列举一下几种常见的页面布局。
1、T型布局
这个是我们比较常见的布局,其页面的顶部一般放置横网站的标志或Banner广告,下方左侧是导航栏菜单,下方右侧则用于放置网页正文等主要内容。
Segmentfault的主页就是T型布局的。由于网页太长了,没有截取底部。
2、国字型布局
国字型布局下最上面是网站的标题以及横幅广告条,接下来是网站的主要内寄,左右分列一些小条内容,中问是主要部分,与左右一起罗列到底,最下方是网站的一些基本信息、联系方式、版权声明等。
案例图片来自腾讯11年的一道前段笔试题,有兴趣的同学可以去看一下。2011腾讯前端面试稿
3、POP布局
POP布局指页面布局像一张宣传海报,以一张精美图片作为页面的设计中心。常用于时尚类站点。优点显而易见:漂亮吸引人。缺点就是速度慢。
人大的主页就类似这种布局。
4、左右布局型
顾名思义,就是网页主体分为左右两大块,多见为后台管理系统页面。一般左右布局型的页面需要做到两列等高。
如:
5、上下布局型
参见苹果的官网,类似于整屏显示的网页都为上下布局。
二、如何实现——常见的布局方法
关于布局的类型就先说这么多,下面来总结一下上述的布局怎么来实现。下面提一下大家应该都很熟悉的两大布局方法。圣杯布局和双飞燕布局。其实这两种方法一般多用国字型布局上。就是针对三行三列布局的。进行相应的改造也可以用在T字型布局上。用这两种方法可以很好地解决主体部分优先加载的问题。
1、圣杯布局
基础布局:
- <div id="header">div>
- <div id="main">div>
- <div id="footer">div>
重点来看main部分的代码
- "main">"m_content">这里是主体"m_leftside">这是左侧边栏"m_rightside">这是右侧边栏
以上就是圣杯布局方法,基本思路是运用浮动加定位的方法,缺点是代码较复杂,不能模拟三栏等高效果。
2、双飞燕布局
布局的效果跟圣杯的一样,代码有所不同。双飞燕布局的代码更加简单,只是多加了一个div用来布局。
基础布局部分代码一样。
main部分:
- "main">"m_content">"m_c_wrap">这里是主体"m_leftside">这是左侧边栏"m_rightside">这是右侧边栏
了解了以上两种布局的方法后,很多布局都能写得得心应手了。但是应对多栏等高布局还有点欠缺。那么现在来谈谈多栏等高布局的方法。
3、多栏等高布局
这里详细总结了等高布局的八大方法 Click,我再谈谈实际项目中比较常用的,或者说比较简单的三种方法。
图片模拟
比如我们需要做一个上图的布局,那么需要截取这样一个侧边的小图片对侧边和内容部分包裹的元素进行背景平铺,用来模拟出侧边栏的高度跟内容高度一致的视觉效果。
4、table布局
只需要将需要等高的若干栏设置display属性为table-cell;若其中一列希望是自适应宽度,还需将父元素的display设置成table,width为100%。
代码如下:
- "main">"m_content">"m_rightside">
5、padding补白
这是前不久在网上看到的一种办法,实质就是为栏目添加一个足够大的padding-bottom值,将栏目撑开,然后再添加相同大小的负的margin-bottom值将内容移动回来。注意要在负盒子上加上overflow: hidden的属性。
代码如下:
- "main">"m_content">"m_rightside">
CSS2的布局方法总结得到这里就告一段落了。现在来看看CSS3新增的布局方法。
一、Flex布局
因为书面上的解释比较抽象,我这里就尽量说得简单通俗一点。
要进行flex布局,需要定义一个flex容器,然后再处理其子项目。只要一个容器被定义为flex容器,那么其子元素都称作它的子项目。
flex布局的基本思想是通过flex容器来伸缩控制子项目的宽度和高
相关内容
- css3 border旋转时的动画应用CSS border虚线边框属性教程CSS中使用border来创建三角形的基本方法讲解CSS3 flex布局之快速实现BorderLayout布局深入浅析css3 border-image边框图像详解实例讲解CSS3中的border-radius属性详解CSS3中border-image的使用CSS3使用border-radius属性制作圆角css border属性的使用方法和技巧
- css实现鼠标滑过五角星高亮效果 纯CSS3实现鼠标滑过按钮动画第二节CSS实现鼠标滑过鼠标点击代码写法CSS3制作炫酷带方向感应的鼠标滑过图片3D动画纯CSS3实现8组超炫酷鼠标滑过图片动画纯CSS实现鼠标滑过显示子菜单的二级菜单效果CSS实现鼠标滑过文字弹出一段说明文字无JS代码纯css实现鼠标滑过弹出层效果CSS控制当鼠标滑过时更换图片的效果css实现鼠标滑过改变文字(中文变英文)使用css的filter写鼠标滑过效果的实现示例
- CSS学习总结 简要总结CSS编程中的响应式设计CSS的一些编程规范总结10个必备的CSS技巧总结CSS清除浮动方法总结css 调试方法与经验总结CSS多浏览器兼容总结(个人经验)CSS样式的基础学习总结深入CSS3 动画效果的总结详解IE下css常见问题总结及解决CSS(Cascading Style Sheet)级联样式表常用术语总结
- CSS文本超出div或者span时用省略号代替 文本超出部分隐藏的两种方法css3实现渐变、阴影、超出指定文本省略号显示等一些效果实例CSS文本超出指定宽度后隐藏并显示为省略号的实现方法CSS控制文本超出指定宽度显示省略号和文本不换行效果的实现CSS超出文本指定宽度用省略号代替和文本不换行css实现li中文本超出行宽自动隐藏CSS文本超出2行就隐藏并且显示省略号
- CSS3实现swap交换动画css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- 让IE6支持兼容min-width、max-width CSS样式属性的方法浅谈前端制作中,IE6还有必要兼容吗使用语义化标签去写你的HTML 兼容IE6,7,8兼容IE6、IE7的min-width、max-width写法一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10Css样式兼容IE6,IE7,FIREFOX的浏览器的写法示例介绍兼容IE6的min-width、min-height的简单方法
- 兼容IE6、IE7的min-width、max-width写法浅谈前端制作中,IE6还有必要兼容吗使用语义化标签去写你的HTML 兼容IE6,7,8让IE6支持兼容min-width、max-width CSS样式属性的方法一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10Css样式兼容IE6,IE7,FIREFOX的浏览器的写法示例介绍兼容IE6的min-width、min-height的简单方法
- 基于CSS3制作立体效果导航菜单CSS3实现的3D立体文字时钟效果源码CSS3实现的鼠标经过立体翻转切换特效源码CSS实现有立体感的横向按钮式菜单效果代码一款纯css3实现的3D立体翻转导航特效源码基于HTML5+CSS3实现鼠标悬停3D立体式图片效果源码html5+css3实现的会翻动的3D立体图书效果源码纯css实现立体摆放图片效果的实例代码
- CSS常用技巧之CSS书写技巧和CSS HACK技巧 10个必备的CSS技巧总结要知道的10个CSS技巧最常用和实用的CSS技巧 21个神奇的CSS技巧网页制作中应用的50个CSS技巧(国外)CSS技巧:IE6用import导入CSS的问题书写CSS的5个小技巧让你的样式更规范CSS Hack技术介绍及常用的Hack技巧集锦CSS hack技巧之IE6,IE7,firefox显示不同效果IE6、IE7和FF的最简单的hack技巧-CSS教程-网页制作-网页教学网
- CSS实现微信扫码特效 滴滴打车出租车微信扫码支付立减车费送红包微信扫码关注诸葛理财 100%得1~5元微信现金红包 秒到账微信扫码注册简理财 秒提现2.19元 累计收益15.33元(亲测提现)微信扫码关注搜狐视频公众号活动 最高领28天去广告会员扫红码抢红包 应用宝微信扫码下载百分百得红包微信扫码安装快乐赚 100%免费领取微信现金红包(仅安卓手机)