html布局的常用的四种实现方式

html-css011

html布局的常用的四种实现方式,第1张

需求 :假设高度默认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)

1)像<span>这样的行内标记,定义它的margin-top和margin-bottom是无效的,除非你把它设置为块状元素才可以。Display:block

2)对于块状元素,你可以自由的使用外边距来定义版式和元素之间的距离。类似 DIV 等等,

3)无论什么元素,一旦设置为是浮动显示,就拥有了完整的盒模型结构,我们就可以使用外边距,内边距,边框,高和宽来控制的大小以及与其他对象之间的位置关系。

4)浮动是从网页布局的角度来定义元素的显示,而行内和块状属性主要是从元素自身的性质来定其显示的。

5)当元素没有定义边框时,可以把内边距作为外边距使用。有时候外边距会有重叠现象的。

6)当为元素定义背景图像时,内边距区域内可以显示背景图像,而对外边距区域来说,背景图像是达不到的,他永远都是透明状态

7)用div+css设计网页结构时,设计师满脑子都是网页内容,而非内容所呈现的效果。

8)块状元素:不管块状元素宽度是多少,他总会自动占据一行,因为在他末尾附加了一个换行符,而行内元素没有这个特点。块状元素有完整的盒模型结构,可以定义宽度和高度,而行内元素没有这个特性,无法通过高度来改变文本行的行高。

块元素的代表标记 div

行内元素的代表标记 span ,行内标记不具备组织结构框架

9)网页布局分为:自然布局,浮动布局, 定位布局

10)当一个元素被定义为浮动显示时,即定义为块状元素。并且该元素就会收缩自身体积为最小状态。所以,应该有个好的习惯即把浮动元素设置高和宽。如果没有设置,则元素会按照它所包含的内容大小来确定它的大小。

11)当元素浮动后,周边的对象会自动环绕浮动元素周围,形成一种环绕关系。

12)块状元素之间的外边距会有重叠现象,但是浮动元素之间的外边距不会发声重叠现象。

13)浮动元素移动,上移:margin-top:-**下移:margin-botom:-*px,其他以此类推。

14)一般定位元素(绝对或是相对元素)都会覆盖在文档流对象之上。但是,select元素的窗口控件还不完全支持z-index

15)在css定位布局中,一般遵循“外部相对定位,内部绝对定位”

16)在body中设置min-width:760px,可以避免布局重叠现象。

一般来说 用DIV+CSS来布局,也就是层和样式。 css 说白了就是网页的衣服!

比如说背景颜色,字体属性,这一类的!

div是一个标签!

要把css 这件衣服嵌套在div标签中,从而让代码变的简单!

并且美观!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=" http://www.w3.org/1999/xhtml">

<head>

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

<title>css8</title>

<style type="text/css">

<!--

body {

margin:0

font-size:12px

}

#main{

width:780px

margin:0 auto

background:#f00

height:800px

}

#hader,#nav,#content,#footer{

width:100%

}

#hader

{

height:150px

}

#nav{

height:30px

}

#content{

height:570px

}

#footer{

height:50px

}

-->

</style>

</head>

<body>

<div id="main">

<div id="hader"></div>

<div id="nav"></div>

<div id="content"></div>

<div id="footer"></div>

</div>

</body>

</html>

上面的代码是 找来的 也是DIV+CSS 布局的 以上答案供参考