页布局对改善网站的外观非常重要。
请慎重设计您的网页布局。
在线实例
使用 <div> 元素的网页布局
如何使用 <div> 元素添加布局。
使用 <table> 元素的网页布局
如何使用 <table> 元素添加布局。
网站布局
大多数网站会把内容安排到多个列中(就像杂志或报纸那样)。
大多数网站可以使用 <div> 或者 <table> 元素来创建多列。CSS 用于对元素进行定位,或者为页面创建背景以及色彩丰富的外观。
虽然我们可以使用HTML table标签来设计出漂亮的布局,但是table标签是不建议作为布局工具使用的 - 表格不是布局工具。 |
HTML 布局 - 使用<div> 元素
div 元素是用于分组 HTML 元素的块级元素。
下面的例子使用五个 div 元素来创建多列布局:
实例
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><divid="container"style="width:500px"><divid="header"style="background-color:#FFA500;"><h1style="margin-bottom:0;">主要的网页标题</h1></div><divid="menu"style="background-color:#FFD700;height:200px;width:100px;float:left;"><b>菜单</b><br>HTML<br>CSS<br>JavaScript</div><divid="content"style="background-color:#EEEEEE;height:200px;width:400px;float:left;">内容在这里</div><divid="footer"style="background-color:#FFA500;clear:both;text-align:center;">版权 © runoob.com</div></div></body></html>
上面的 HTML 代码会产生如下结果:
HTML 布局 - 使用表格
使用 HTML <table> 标签是创建布局的一种简单的方式。
大多数站点可以使用 <div> 或者 <table> 元素来创建多列。CSS 用于对元素进行定位,或者为页面创建背景以及色彩丰富的外观。
即使可以使用 HTML 表格来创建漂亮的布局,但设计表格的目的是呈现表格化数据 - 表格不是布局工具! |
下面的例子使用三行两列的表格 - 第一和最后一行使用 colspan 属性来横跨两列:
实例
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><tablewidth="500"border="0"><tr><tdcolspan="2"style="background-color:#FFA500;"><h1>主要的网页标题</h1></td></tr><tr><tdstyle="background-color:#FFD700;width:100px;"><b>菜单</b><br>HTML<br>CSS<br>JavaScript</td><tdstyle="background-color:#eeeeee;height:200px;width:400px;">内容在这里</td></tr><tr><tdcolspan="2"style="background-color:#FFA500;text-align:center;">版权 © runoob.com</td></tr></table></body></html>
上面的 HTML 代码会产生以下结果:
HTML 布局 - 有用的提示
Tip: 使用 CSS 最大的好处是,如果把 CSS 代码存放到外部样式表中,那么站点会更易于维护。通过编辑单一的文件,就可以改变所有页面的布局。如需学习更多有关 CSS 的知识,请访问我们的CSS 教程。
Tip: 由于创建高级的布局非常耗时,使用模板是一个快速的选项。通过搜索引擎可以找到很多免费的网站模板(您可以使用这些预先构建好的网站布局,并优化它们)。
HTML 布局标签
标签 | 描述 |
---|---|
<div> | 定义文档区块,块级(block-level) |
<span> | 定义 span,用来组合文档中的行内元素。 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
果想开发一个网站,除了要精通后端开发语言(如:php)外,还要精通HTML代码。那么,什么是HTML呢?HTML是一种超文本标记语言,它包含有众多的标签,我们可以通过这些标签,把不同的internet资源(如:文字、图片、视频、音频、表单等等)整合在一个统一的文档中,这就形成了我们可以看得见的网页。那么,HTML都有哪些常用的标签呢?
html5文档类型声明:<!doctype html>
html4文档类型声明:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这个标签是html最外层的标签,所有其它的HTML标签都要放在这个标签的内部。
<html>
<head></head>
<body></body>
</html>
在HTML标签中,有的标签是成双成对的,如:<html></html>(如下图);而有的标签是单个的,如:<hr>横线标签。
head头部有以下几种常用标签:
meta:主要提供有关页面的元信息。
link:用来定义文档与外部资源的关系,最常用的是调用CSS样式文件。
title:页面标题的标签。
script:用来调用JS文件或JS代码。当然,script标签也可以在body主体中使用。
1、块级标签。
块级标签的特性是:独自占有一行;标签的高与宽、边距可以修改;没有设置宽与高时,默认继承父标签。例如:
<div>div1</div>
<div>div2</div>
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
前端页面显示的效果如下图:
常用的块级标签有:div、h1、h2、h3、h4、h5、h6、hr、menu、ul、ol、li、dl、dt、dd、table、p、form 。
2、内联标签。
内联标签与块级标签不同,它不能独自占有一行,会与其它内联标签在同一样展示;内联标签的高与宽、上下边距是不能修改的,它里面的文字或图片有多高,它就是多高。例如如下代码:
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
<span>span1</span>
<span>span2</span>
CSS样式代码跟块级标签的例子是一样的,而显示的效果就不一样了,宽与高、上下边距没有效果。如下图:
常用的内联标签有:span、a、b、strong、i、em 。
3、内联块级标签。
内联块级标签,既有一些内联标签的特性,也有一些块级标签的特点:它不能独自占有一行,但是可以修改它的宽度和高度。例如下面这段代码:
<style>
.aa1{ border:1px solid #000; width:150px; height:100px; margin:30px; }
.aa2{ border:1px solid #000; width:150px; height:100px; margin:30px; }
</style>
<img src="w5.jpg" alt="">
<img src="w5.jpg" alt="">
CSS样式代码跟块级标签的那个例子仍然是一样的,图片的宽和高、上下边距修改成功,而2个图片不能独自占有一行,而是在同一行。如下图:
常用的内联块级标签有:img、input、textarea。
4、区域标签。
所谓区域标签,就是主要用来划分布局页面区域的。如:头部、主体内容、侧边栏、底部。这样划分的好处是:让页面布局更加清晰明了。
常用的区域标签有:header(头部)、footer(底部)、nav(导航)、aside(侧边栏)、section(主体)、article(独立内容)。
5、表单标签。
这个表单标签我们也是会经常用到的,如:登录网站的时候、提交数据的时候。如下图的评论表单:
表单常用的标签有:form、input、select、option、textarea 。
以上就是我们开发网页时,会常用到的HTML标签。当然,HTML标签远不止这些,尤其是html5出来后,新增了许多的新标签。但是,有些标签在我们开发中很少用到,所以,这里就没有做相应的介绍。
如果网页只有一种颜色,那是非常可怕的,颜色的设置丰富了网页,就如同多彩缤纷的世界。
在了解css颜色之前,我们回顾下计算机是如何显示颜色的?计算机根据色光三原色的原理通过各种算法来显示颜色。
网页中使用颜色关键字、16进制字符、rgb、rgba等表示红,绿,蓝三种颜色混合色,如下示例,几种写法都是指同一个颜色(红色):
color:red;
color: #ff0000;
color: rgb(255,0,0)
color: rgba(255,0,0,1)
对于16进制形式,每2位表示一个颜色,从左到右分别是红、绿、蓝,每种颜色取值从00 到 FF。
如下示例:
color: #000000; /*黑色*/
color: #ffffff; /*白色*/
color: #ff0000; /*红色*/
color: #00ff00; /*绿色*/
color: #0000ff; /*蓝色*/
对于rgb的表示法,由三个参数组成,分别是红、绿、蓝,每种颜色取值从0 到 255。
如下示例:
color: rgb(0,0,0); /*黑色*/
color: rgb(255,255,255); /*白色*/
color: rgb(255,0,0); /*红色*/
color: rgb(0,255,0); /*绿色*/
color: rgb(0,0,255); /*蓝色*/
红,绿,蓝值从0到255的结合,给出了总额超过1600多万不同的颜色(256 × 256 ×256)。
但是现代大多数显示器能够显示至少16384种颜色。所以在使用颜色时要格外注意,避免设置不能够显示的颜色,可以参考网页安全色:https://www.w3school.com.cn/cssref/css_colors.asp。
颜色除了有三原色红绿蓝组成,还有亮度层级,如下图:
rgba 中的a是指透明度,这个是css3新增加的属性,通过rgba可以设置更加漂亮的颜色。
通过background属性可以设置元素的背景色、背景图片,语法如下:
background:bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit;
background 在一个声明中设置所有的背景属性,可以在这里设置如下属性:
各值之间用空格分隔,不分先后顺序。可以只有其中的某些值,例如 background:#FF0000 url(img.png)是允许的,但至少有一个值。
建议使用background 简写属性,这样可以更好地兼容较老的浏览器,少写很多代码,当然你也可以分开使用,比如:
background-color: #ff0000;
background-image: url(img.png);
background-repeat: no-repeat;
background-size: 100% auto;
1、背景颜色 —— background-color
background-color 和之前讲的的color 一样,可以使用16进制、rgb、rgba等设置颜色。如下实例:
<html>
<head>
<style type="text/css">
body {background-color: yellow}
h1 {background-color: #00ff00}
h2 {background-color: transparent}
p {background-color: rgb(250,0,255)}
p.no2 {background-color: gray; padding: 20px;}
</style>
</head>
<body>
<h1>背景色1</h1>
<h2>背景色2</h2>
<p>背景色3</p>
<p class="no2">背景色4</p>
</body>
</html>
如下图显示:
注意:background-color: transparent; 指透明色,不显示任何颜色。
2、背景图片的使用——background-image
给html元素添加背景图片,在早期网页制作中被广泛应用,如今已不建议大量使用。如下实例:
body {background-image:url(/static/bg.gif);}
这里使用了一个125*125大小的图片,如下:
但是你会发现,整个网页铺满了图片,上面的代码默认会铺满整个页面从左到右,从上到下 。如果不想被平铺,可以使用background-repeat 设置。
背景图片同时可以设置多个背景图片,如下:
background-image: url(/statics/bg1.gif), url(/statics/bg2.gif);
多个图像以逗号隔开,在页面中多个图片会叠加显示,第一张图片显示在最顶端。
如下效果:
3、背景重复方式 —— background-repeat
它有如下几个属性:
repeat | 默认。背景图像将在垂直方向和水平方向重复。 |
repeat-x | 背景图像将在水平方向重复。 |
repeat-y | 背景图像将在垂直方向重复。 |
no-repeat | 背景图像不重复。 |
inherit | 从父元素继承 background-repeat 属性的设置。 |
实例如下:
4、背景图的位置 —— background-position
背景图片默认显示在左上角,语法如下:
background-position: x y; // x 距离左边距离,y距离顶部距离
如果要改变它的位置,可以使用关键字:top、bottom、left、right 和 center;或者使用长度值,如 100px 或 5cm;也可以使用百分数值。
x 可以取值 百分比| 数值| left | center | right。
y 可以取值 百分比| 数值| top| center | bottom。
当只设置一个值的时候,另一个会缺省为 center。
使用关键字,将背景图片水平居中,垂直居中:
background-image:url('/statics/images/course/smiley.gif');
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
使用百分比%:
background-image:url('/statics/images/course/smiley.gif');
background-repeat:no-repeat;
background-attachment:fixed;
background-position: 50% 50%;
50% 50% 等同于 center center,显示效果和上图一样。
还可以使用具体数值,比如 px、em、cm等。
background-image:url('/statics/images/course/smiley.gif');
background-repeat:no-repeat;
background-attachment:fixed;
background-position: 50px 50px;
显示效果如下:
5、背景图相对于容器的基准点 —— background-origin
就是设置背景图片相对于html元素什么位置作为初始坐标点,语法:
background-origin: padding-box|border-box|content-box;
几种值得含义:
padding-box | 背景图像相对填充框的位置 |
border-box | 背景图像相对边界框的位置 |
content-box | 背景图像相对内容框的位置 |
如下实例:
6、背景图片大小 —— background-size
默认会显示背景图原始尺寸,可以通过此属性设置背景图片在元素上的大小,语法:
background-size: width height;
宽度和高度可以使用 数值、百分比%、cover 及 contain ;
数值:可以使用任何单位的数字,比如 px、em、cm等。如果设置一个值,第二个为"auto(自动)"。
百分比%:相对于其所在html原始宽度和高度,如果设置一个值,第二个为"auto(自动)"。
cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。
contain:把背景图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域。
如下示例:
7、背景图像是否固定或者随着页面的其余部分滚动
background-attachment 属性有以下几个值:
scroll | 背景图片随页面的其余部分滚动。这是默认 |
fixed | 背景图像是固定的 |
inherit | 指定background-attachment的设置应该从父元素继承 |
local | 背景图片随滚动元素滚动 |
如设置一个固定的背景图片,不跟随页面滚动:
background-attachment:fixed;
滚动滚动条,会发下背景图片始终固定在屏幕那个位置。
8、背景绘制区域 —— background-clip
语法如下:
background-clip: border-box|padding-box|content-box;
border-box | 默认值。背景绘制在边框方框内(剪切成边框方框)。 |
padding-box | 背景绘制在衬距方框内(剪切成衬距方框)。 |
content-box | 背景绘制在内容方框内(剪切成内容方框)。 |
这个属性类似于 background-origin ,只不过它会裁剪背景图片,如下示例:
9、背景层的混合模式 —— background-blend-mode
所谓混合模式就是将图片与颜色或图片与图片进行混合,语法:
background-blend-mode: normal|multiply|screen|overlay|darken|lighten|color-dodge|saturation|color|luminosity;
属性值:
示例如下:
正常模式
luminosity 亮度模式
color 颜色模式
其它模式可以自己试试,看下有什么区别。
到此,我们了解了颜色和背景的使用方法,尤其是背景的使用,由于它的属性很多,可以简写也可以分开写,要想完全掌握,还得多练习,每种属性进行组合使用看看其效果。
一般建议使用 background 简写方式,主要是可以少写很多代码。以上介绍难免有误,或不齐全,欢迎指出错误,并补充。
上篇:前端入门——css链接样式
*请认真填写需求信息,我们会在24小时内与您取得联系。