首 页 行业热点 新车 试驾评测 养车用车 车型库

HTML里面有几种布局方式?

发布网友 发布时间:2022-04-23 15:06

我来回答

7个回答

懂视网 时间:2022-04-06 15:05

本篇文章给大家带来的内容是关于css实现双飞翼布局的四种方法(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

圣杯布局、双飞翼布局效果图

2733950049-5b9268bdbbe68_articlex.png

从效果图来看圣杯布局、双飞翼布局效果是一样一样的。
圣杯布局、双飞翼布局就是左右两侧宽度固定,中间内容宽度自适应,即100%

圣杯布局

<style>
 *{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }
 .clearfix:before,
 .clearfix:after{
 display: table;
 content: " ";
 clear: both;
 }
 .container{
 padding: 0 200px;
 }
 .header,
 .footer{
 height: 200px;
 font-size: 28px;
 background-color: #f3f3f3;
 }
 .left{
 position: relative;
 /* 2、将.left再次拉到最左边,否则.main的左侧会有200px的空白 */
 left: -200px;
 float: left;
 width: 200px;
 min-height: 300px;
 /* 1、将.left拉到最左边,原来.left是掉下去的 */
 margin-left: -100%;
 background-color: #f00;
 }
 .main{
 float: left;
 width: 100%;
 min-height: 300px;
 background-color: #c32228;
 }
 .right{
 position: relative;
 /* 2、将.right再次拉到最右边,否则.main的右侧会有200px的空白 */
 right: -200px;
 float: left;
 width: 200px;
 /*/1、将.right拉到最右边,原来.right是掉下去的 */
 margin-left: -200px;
 min-height: 300px;
 background-color: #f90;
 }
</style>
<div class="header">header</div>
<div class="container clearfix">
 <div class="main">main</div>
 <div class="left">left</div>
 <div class="right">right</div>
</div>
<div class="footer">footer</div>

浮动实现双飞翼布局

<style>
 *{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }
 .clearfix:before,
 .clearfix:after{
 display: table;
 content: " ";
 clear: both;
 }
 .header,
 .footer{
 height: 200px;
 font-size: 28px;
 background-color: #f3f3f3;
 }
 .left{
 float: left;
 width: 200px;
 min-height: 300px;
 /* 将.left拉到最左边,原来.left是掉下去的 */
 margin-left: -100%;
 background-color: #f00;
 }
 .main{
 float: left;
 width: 100%;
 min-height: 300px;
 /* .left、.right各占了200px,因此需要将其抵消掉 */
 padding: 0 200px;
 background-color: #c32228;
 }
 .right{
 float: left;
 width: 200px;
 /* 将.right拉到最右边,原来.right是掉下去的 */
 margin-left: -200px;
 min-height: 300px;
 background-color: #f90;
 }
 
</style>
<div class="header">header</div>
<div class="container clearfix">
 <div class="main">
 <div class="main-inner">main</div>
 </div>
 <div class="left">left</div>
 <div class="right">right</div>
</div>
<div class="footer">footer</div>

table-cell实现双飞翼布局(IE8也兼容哦~)

<style>
 *{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }
 .container{
 display: table;
 }
 .header,
 .footer{
 height: 200px;
 font-size: 28px;
 background-color: #f3f3f3;
 }
 .left,
 .right,
 .main{
 /* 外层容器使用table-cell布局,设置元素为table-cell布局后它们就能在一行显示了,display: table-cell;设置宽度无效,
因此他们的宽度由内容撑开。 */
 display: table-cell;  
 }
 .left-inner{
 width: 200px;
 min-height: 300px;
 background-color: #f00;
 }
 .main{
 width: 100%;  
 }
 .main-inner{
 min-height: 300px;
 background-color: #c32228;
 }
 .right-inner{
 width: 200px;
 min-height: 300px;
 background-color: #f90;
 }
</style>
<div class="header">header</div>
<div class="container clearfix">
 
 <div class="left">
 <div class="left-inner">left</div>
 </div>
 <div class="main">
 <div class="main-inner">main</div>
 </div>
 <div class="right">
 <div class="right-inner">right</div>
 </div>
</div>
<div class="footer">footer</div>

绝对定位实现双飞翼布局

使用绝对定位实现有个小问题:父容器的高度只能由.main的高度来决定

<style>
 *{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }
 .container{
 position: relative;
 padding: 0 200px;
 }
 .header,
 .footer{
 height: 200px;
 font-size: 28px;
 background-color: #f3f3f3;
 }
 .left{
 position: absolute;
 top: 0;
 left: 0;
 width: 200px;
 min-height: 300px;
 background-color: #f00;
 }
 .main{
 min-height: 300px;
 background-color: #c32228;
 }
 .right{
 position: absolute;
 top: 0;
 right: 0;
 width: 200px;
 min-height: 300px;
 background-color: #f90;
 } 
</style>
<div class="header">header</div>
<div class="container clearfix">
 <div class="left">left</div>
 <div class="main">mian</div>
 <div class="right">right</div>
</div>
<div class="footer">footer</div>

使用flex实现双飞翼布局(有兼容性问题)

<style>
 *{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 }
 .clearfix:before,
 .clearfix:after{
 display: table;
 content: " ";
 clear: both;
 }
 .container{
 display: flex;
 }
 .header,
 .footer{
 height: 200px;
 font-size: 28px;
 background-color: #f3f3f3;
 }
 .left{
 flex: 0 0 200px;
 width: 200px;
 min-height: 300px;
 background-color: #f00;
 }
 .main{
 flex: 1;
 width: 100%;
 min-height: 300px;
 background-color: #c32228;
 }
 .right{
 flex: 0 0 200px;
 width: 200px;
 min-height: 300px;
 background-color: #f90;
 }
</style>
<div class="header">header</div>
<div class="container clearfix">
 
 <div class="left">left</div>
 <div class="main">main</div>
 <div class="right">right</div>
</div>
<div class="footer">footer</div>

热心网友 时间:2022-04-06 12:13

1.自然布局。

没有任何修饰的布局是自动靠左的。

2.流动布局

上面讲的float:left的情况。

3.定位布局

相对定位和绝对定位都是相对于父div标签的。 

相对------以这个元素的本来应该在的位置为参照点 

绝对——以父div标签的原点(左上角)为参照点。

由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移参考对齐。当然外层只写position:relative,写上left,top这两个值,则表示以:以这个元素的本来应该在的位置为布局参照原点进行left,top对齐。

还有一种情况是,只是一个position:absolute;外层没有position:relative,这时会找寻那个点为参考呢?这时候的原则是:如果某父级元素中有relative者,则以某父级元素为参考原点,如果没有position:relative,则以body为参考原点。如果position:absolute外层没有relative时,这两个布局上是没有区别的。

当然最后一种情况是:外层是:position:absolute;里边是position:relative,那会是什么情况?按着原来的原则,absolute会参考body为布局原点,relative会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。

热心网友 时间:2022-04-06 13:31

双飞翼、多栏、弹性、流式、瀑布流、响应式布局
(1)、双飞翼布局
经典三列布局,也叫做圣杯布局【Holy Grail of Layouts】是Kevin Cornell在2006年提出的一个布局模型概念,在国内最早是由淘宝UED的工程师传播开来,在中国也有叫法是双飞翼布局,它的布局要求有几点:
a、三列布局,中间宽度自适应,两边定宽;
b、中间栏要在浏览器中优先展示渲染;
c、允许任意列的高度最高;
d、要求只用一个额外的DIV标签;
e、要求用最简单的CSS、最少的HACK语句;
在不增加额外标签的情况下,圣杯布局已经非常完美,圣杯布局使用了相对定位,以后布局是有局限性的,而且宽度控制要改的地方也多。在淘宝UED(User Experience Design)探讨下,增加多一个div就可以不用相对布局了,只用到了浮动和负边距,这就是我们所说的双飞翼布局。
(2)、多栏布局
a、栏栅格系统:就是利用浮动实现的多栏布局,在bootstrap中用的非常多。
b、多列布局:栅格系统并没有真正实现分栏效果(如word中的分栏),CSS3为了满足这个要求增加了多列布局模块
(3)、弹性布局(Flexbox)
CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定、调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简称为Flex。
Flexbox布局常用于设计比较复杂的页面,可以轻松的实现屏幕和浏览器窗口大小发生变化时保持元素的相对位置和大小不变,同时减少了依赖于浮动布局实现元素位置的定义以及重置元素的大小。
Flexbox布局在定义伸缩项目大小时伸缩容器会预留一些可用空间,让你可以调节伸缩项目的相对大小和位置。例如,你可以确保伸缩容器中的多余空间平均分配多个伸缩项目,当然,如果你的伸缩容器没有足够大的空间放置伸缩项目时,浏览器会根据一定的比例减少伸缩项目的大小,使其不溢出伸缩容器。
(4)、瀑布流布局
瀑布流布局是流式布局的一种。是当下比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。
(5)、流式布局(Fluid) 固定布局和流式布局在网页设计中最常用的两种布局方式。固定布局能呈现网页的原始设计效果,流式布局则不受窗口宽度影响,流式布局使用百分比宽度来限定布局元素,这样可以根据客户端分辨率的大小来进行合理的显示。
(6)、响应式布局
响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用“大势所趋”来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。

热心网友 时间:2022-04-06 15:06

流动(流体)布局

也被成为流体布局,主体部分都是用了百分比宽度,因此可以自适应用户的分辨率。如下图所示


固定布局

固定布局,顾名思义就是使用固定的width与height来布局网站,如下图所示。

浮动布局

定位布局

table布局:在DIV+CSS布局网站时代,现在已经用的很少了。



希望帮助到你,还有疑问可向我追问,尽我所能为你解答!

热心网友 时间:2022-04-06 16:57

1.自然布局。
没有任何修饰的布局是自动靠左的。

2.流动布局

上面讲的float:left的情况。

3.定位布局

相对定位和绝对定位都是相对于父div标签的。

相对------以这个元素的本来应该在的位置为参照点

绝对——以父div标签的原点(左上角)为参照点。

由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移参考对齐。当然外层只写position:relative,写上left,top这两个值,则表示以:以这个元素的本来应该在的位置为布局参照原点进行left,top对齐。

还有一种情况是,只是一个position:absolute;外层没有position:relative,这时会找寻那个点为参考呢?这时候的原则是:如果某父级元素中有relative者,则以某父级元素为参考原点,如果没有position:relative,则以body为参考原点。如果position:absolute外层没有relative时,这两个布局上是没有区别的。

当然最后一种情况是:外层是:position:absolute;里边是position:relative,那会是什么情况?按着原来的原则,absolute会参考body为布局原点,relative会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。

其它的要看实际情况而定。

热心网友 时间:2022-04-06 19:05

有table ,div 一般是DIV+CSS的

热心网友 时间:2022-04-06 21:30

table 布局

div+css布局

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com