html常见的三种页面布局方法

html-css016

html常见的三种页面布局方法,第1张

流动布局

流动布局是浏览器默认的布局方式。他会按照你所写的标签特性,从上至下、从左到右的方式进行排列

在HTML中我们按照标签的排列特性可以将它们分成三类:

1.行级元素:不独占一行,不能设置元素的高度、宽度和底边边距,它的宽度和高度是由他的内容撑起来的。

2.行内块元素:不独占一行,可以设置元素的宽度、高度和底边边距。

3.块级元素:独占一行,元素的宽度、高度、上下边的边距都可以设置。

常用的行级元素有:<span><a>

常用的行内块元素:<img><input><textarea>

常用的块级元素:<div><h1><p><table><tr><td><form><ul><ol><li><dl><dt><dd>

浮动布局

在默认情况下,块级元素会独占一行,但是当我们想让两个块级元素在同一行排列时,我们就可以用到浮动布局

层模型

设置层模型属性会将标签从原来的文本流中上升到浮动层中来,然后调整他在浮动层中的位置,文本层中的标签会覆盖在下面文本层中的标签上面。有相对定位、绝对定位和固定定位三种属性。

需求 :假设高度默认100px ,请写出三栏布局,其中左栏、右栏各为300px,中间自适应

将左右的div宽度设为300px,分别左右浮动,中间盒子不设宽度。注意:先写右边盒子,再写中间盒子,否则先渲染中间盒子,中间盒子会占满该行剩下的宽度,右边盒子只能换行显示,就会出现下面的情况

正常的渲染效果如下所示:

第二种:绝对定位(position:absolute)

设置父盒子position:relative(相对定位),

三个子盒子position:absolute,

左盒子left:0,

右盒子right:0

中间盒子left:300pxright:300px

第三种:flex布局

父盒子 display:flex

左右盒子设置宽度:300px

中间盒子flex:1(flex-grow:1 flex-shrink:1 flex-basis:0%)不考虑元素尺寸自由伸缩

第四种:grid布局

父盒子display: grid

grid-template-columns:300px auto 300px(分割成3列,宽度分别为300px auto 300px)

grid-template-rows:100px(占一行,行高100px)

田字格布局,要求大小相同的四个正方形。而html里div如果不加控制的话是独占一行的,现在要做的是把四个大小相同的方块,排列成“田”字。

第一步、新建html文档并搭建框架

新建一个TXT文档,重命名为“田子格布局.html”,然后用记事本打开,输入表头信息,已经html整体框架搭建。包括head与body。

第二步、DIV布局

分别复制4个不同的div作为4部分,并且分别命名为不同id;显示内容为块1、块2、块3、块4。

【提示】div在html里是单独占一列的(如果不控制),现在4个div布局完成。

【代码如下】

</head>

<body>

<div id="prat1">块1</div>

<div id="prat2">块2</div>

<div id="prat3">块3</div>

<div id="prat4">块4</div>

</body>

</html>

第三步、CSS控制4个DIV显示

输入style然后开始对4个div进行控制,分别对四个块进行大小和颜色的设定,处理之后在浏览器中打开显示如下图所示。

【提示】由于是田子格,所以四个div大小应该相同,为了可以区分颜色分别采用不同的颜色。

【代码如下】

<style>

#prat1{

width: 200px

height: 200px

background: blue/*边长200像素的蓝色方块*/

}

#prat2{

width: 200px

height: 200px

background: red/*边长200像素的蓝色方块*/

}

#prat3{

width: 200px

height: 200px

background: yellow/*边长200像素的蓝色方块*/

}

#prat4{

width: 200px

height: 200px

background: green/*边长200像素的蓝色方块*/

}

</style>

第四步、使用浮动

在CSS里控制输入float:left;四个div全部输入一样内容,这时候看到的是四个并排的div,而没有达到想要的效果,如下图所示。

【代码如下】

<style>

#prat1{

width: 200px

height: 200px

background: blue

float: left

}

#prat2{

width: 200px

height: 200px

background: red

float: left

}

#prat3{

width: 200px

height: 200px

background: yellow

float: left

}

#prat4{

width: 200px

height: 200px

background: green

float: left

}

</style>

第五步、清除浮动

在第三块上使用清除浮动clear:left;其余的代码保持不变,然后保存代码,刷新打开的页面,就会看到一个田字格了,如下图所示。

【代码如下】

#prat3{

width: 200px

height: 200px

background: yellow

float: left

clear: left

【注意】只清除第三块的就可以了。

【完整的代码】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8">

<title>田字格布局</title>

<style>

#prat1{

width: 200px

height: 200px

background: blue

float: left

}

#prat2{

width: 200px

height: 200px

background: red

float: left

}

#prat3{

width: 200px

height: 200px

background: yellow

float: left

clear: left

}

#prat4{

width: 200px

height: 200px

background: green

float: left

}

</style>

</head>

<body>

<div id="prat1">块1</div>

<div id="prat2">块2</div>

<div id="prat3">块3</div>

<div id="prat4">块4</div>

</body>

</html>