搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 7799|回复: 174
收起左侧

[综合] DIV+CSS基础教程

[复制链接]

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

396

主题

307

好友

5万

积分

第三章

听着时间涓滴败血

积分
51214
发表于 2012-6-9 17:05:31 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
了解DIV+CSS

DIV元素是html(超文本语言)中的一个元素,是标签,用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。

css是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。

DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。

HTML语言自HTML4.01以来,不再发布新版本,原因就在于HTML语言正变得越来越复杂化、专用化。即标记越来越多,甚至各个浏览器生产商也开发出只适合于其特定浏览器的HTML标记,这显然有碍于HTML网页的兼容性。于是W3C组织进而重新从SGML中获取营养,随后,发布了XML,XML是一种比HTML更加严格的标记语言,全称是可扩展标记语言。但是XML过于复杂,且当前的大部分浏览器都不完全支持XML。于是XHTML这种语言就派上了用场,XHTML语言就是一种可以将HTML语言标准化,用XHTML语言重写后的HTML页面可以应用许多XML应用技术。使得网页更加容易扩展,适合自动数据交换,并且更加规整。CSS布局标签

什么时候应该用DIV?

DIV元素是一个标签,但多层嵌套的DIV会严重影响代码的可阅读性。什么时候应该用DIV虽然没有什么硬性的规定,但DIV更适用于大体框架的定位。
例如我们要定义一块头部的区域,一般会这样定义一个DIV:


[mw_shl_code=html,true]        <ul id="navbar">
        <li id="articles">
        Articles</li>
        <li id="topics">
        Topics</li>
        <li id="about">
        About</li>
        <li id="contact">
        Contact</li>
        <li id="contribute">
        Contribute</li>
        <li id="feed">
        Feed</li>
        </ul>
        <h1 id="masthead">
        <a href="/">
        <img src="/pix/alalogo.gif" alt="A LIST Apart: For People Who Make Websites"
        />
        </h1>
        No. 214[/mw_shl_code]

这个例子定义了最上面的导航(ul部分),左边的logo和No.214的标记.


页面布局设计
网页制作设计中,第一步就是构思,可以用PhotoShop或FireWorks等图片处理软件将需要制作的页面布局简单的构画出来,然后根据布局图设计。
一般来说,页面包括:顶部部分,其中又包括了LOGO、MENU和一幅Banner图片;内容部分,又可分为侧边栏、主体内容;底部,包括一些版权信息。可以命名为:顶部层Header、内容层PageBody、侧边栏层SideBar、主体内容层MainBody、底部层Footer。


写入整体层结构与CSS


新建一个文件夹,命名为“DIV+CSS布局练习”,在文件夹下新建两个空的记事本文档。
将一个记事本文档命名为index.htm,输入以下内容:

[mw_shl_code=html,true]         <!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/html; charset=gb2312" />
         <title>无标题文档</title>
         <link href="css.css" rel="stylesheet" type="text/css" />
         </head>
         <body>
         </body>
         </html>[/mw_shl_code]



这是XHTML的基本结构。下面,我们在<body></body>标签对中写入DIV的基本结构,为了使以后阅读代码更简易,我们添加相关注释:

[mw_shl_code=html,true]         <div id="container"><!--页面层容器-->
        <div id="Header"><!--页面头部-->
        </div>
        <div id="PageBody"><!--页面主体-->
        <div id="Sidebar"><!--侧边栏-->
        </div>
        <div id="MainBody"><!--主体内容-->
        </div>
        </div>
        <div id="Footer"><!--页面底部-->
        </div>
         </div>[/mw_shl_code]




将另一个记事本文档命名为css.css,写入CSS信息,代码如下:

[mw_shl_code=html,true]         /*基本信息*/
         body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
         /*页面层容器*/
         #container {width:100%}
         /*页面头部*/
         #Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}
         /*页面主体*/
         #PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}
         /*页面底部*/
         #Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}[/mw_shl_code]
把以上文件保存,用浏览器打开,这时我们已经可以看到基础结构了,这个就是页面的框架了。


一些常用的CSS代码的含义


font:12px Tahoma;这里使用了缩写,说明字体为12像素大小,字体为Tahoma格式。完整的代码是:font-size:12px;font-family:Tahoma;

margin:0px;使用了缩写,完整的是:margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px,也可以写成margin:0px 0px 0px 0px,顺序是 上 / 右 / 下 / 左,还可以书写为margin:0(缩写);这个样式说明body部分对上右下左边距为0像素,如果使用auto则是自动调整边距,另外还有以下几种写法:margin:0pxd auto;说明上下边距为0px,左右为自动调整;以后使用到的padding属性和margin有许多相似之处,他们的参数是一样的,只不过各自表示的含义不相同,margin是外部距离,而padding则是内部距离。

text-align:center 文字对齐方式,可以设置为左、右、中,这里设置为居中对齐。

background:#FFF 设置背景色为白色,这里颜色使用了缩写,完整的应该是background:#FFFFFF。background可以用来给指定的层填充背景色、背景图片,以后会用到这个格式:background:#ccc:url('bg.gif') top left no-repeat;表示使用#CCC(灰度色)填充整个层,使用bg.gif做为背景图片,top left表示图片位于当前层的左上端,no-repeat表示仅显示图片大小而不填充满整个层。top/right/bottom/left/center用于定位背景图片,分别表示上 / 右 / 下 / 左 / 中;还可以使用background:url('bg.gif') 20px 100px;表示X座标为20像素,Y座标为100像素的精确定位;repeat/no-repeat/repeat-x/repeat-y分别表示 填充满整个层 / 不填充 / 沿X轴填充 / 沿Y轴填充。height / width / color 分别表示高度(px)、宽度(px)、字体颜色(HTML色系表)。


页面顶部制作

当我们写好了页面大致的DIV结构后,我们就可以开始细致地对每一个部分进行制作了。我们把css.css中的样式全部清除掉,重新写入以下样式代码:

/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover{}
/*页面层容器*/
#container {width:800px;margin:10px auto}

以上样式说明如下:

a:link,a:visited {font-size:12px;text-decoration:none;}  ;a:hover {}
这两项分别是控制页面中超链接的样式。
#container {width:800px;margin:10px auto}指定整个页面的显示区域。
width:800px指定宽度为800像素,这里根据实际所需设定。
margin:10px auto,则是页面上、下边距为10个像素,并且居中显示。

接下来,开始制作TOP部分,TOP部分包括了LOGO、菜单和Banner,首先在FW下对设计好的图片进行切片,第一部分 为LOGO部分,由于LOGO图片并没有太多的颜色,这里我于是将这一部分保存为GIF格式(这样能使页面载入的速度更快,当然使用此格式之前必须确定图片并没有使用太多的颜色),调色板选择为精确,选择Alpha透明度,色版为白色(此处颜色应与背景色相同),导出为logo.gif,图像宽度为800px。第二部分为Banner部分,因为Banner部分是一个细致的图片,如果使用GIF格式颜色会有太大的损失,所以必须使用JPEG格式,将文件导出为banner.jpg。

然后我们在css.css中再写入以下样式:

/*页面头部*/
#header {background:url(logo.gif) no-repeat}

这个样式给页面头部分加入一个背景图片LOGO,并且不作填充。这里,我们没有指定header层的高度,因为header层中还有菜单和banner项,所以层的高度暂时是未知的,而层的属性又可以让层根据内容自动设定调整,因此我们并不需要指定高度。

下面我们制作菜单,代码如下:

[mw_shl_code=html,true]        <div id="menu">
        <ul>
        <li><a href="#">首页</a></li>
        <li class="menuDiv"></li>
        <li><a href="#">博客</a></li>
        <li class="menuDiv"></li>
        <li><a href="#">设计</a></li>
        <li class="menuDiv"></li>
        <li><a href="#">相册</a></li>
        <li class="menuDiv"></li>
        <li><a href="#">论坛</a></li>
        <li class="menuDiv"></li>
        <li><a href="#">关于</a></li>
         </ul>
        </div>
        <div id="banner">
        </div>[/mw_shl_code]
以上<ul></ul>、<li></li>这两个HTML元素主要的作用就是在HTML中以列表的形式来显示一些信息。


对菜单使用列表<li>形式,可以在以后方便对菜单定制样式。<li class="menuDiv"></li>这一段代码是可以方便地对菜单选项之间插入一些分隔样式,例如预览图中的竖线分隔。需要分清楚的是,当在HTML中定义为id="divID"时,在CSS对应的设置语法则是#divID{}存,如果在HTML中定义为class="divID"时,则在CSS中对应的设置语法是.divID。如果id="divID"这个层中包括了一个<img></img>,则这个img在CSS中对应的设置语法应该是#divIDx img {},同样,如果是包含在class="divID"这个层中时,则设置语法应该是.divID img {}。另外,HTML中的一切元素都是可以定义的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中设置它们,则直接写入元素的名称加上一对大括号{}就可以了。所有的CSS代码都应该写在大括号{}中。

然后我们在css.css中再写入以下样式:
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;}

第一个样式list-style:none,这一句是取消列表前点,因为我们不需要这些点。margin:0px,这一句是删除UL的缩进,这样做可以使所有的列表内容都不缩进。第二个样式使用了浮动属性(float),float:left是让内容都在同一行显示。

我们在#menu ul li {}再加入代码margin:0 10px,改成:
#menu ul li {float:left;margin:0 10px}
margin:0 10px的作用是让列表内容之间产生一个20像素的距离(左:10px,右:10px)。
明白了这些,我们再来固定菜单的位置,把代码改成如下:
#menu {padding:20px 20px 0 0}
/*利用padding:20px 20px 0 0来固定菜单位置*/
#menu ul {float:right;list-style:none;margin:0px;}
/*添加了float:right使得菜单位于页面右侧*/
#menu ul li {float:left;margin:0 10px}
这样,位置就确定了。下面在菜单间加入竖线,对留好的空的<li class="menuDiv"></li>,再添加以下代码:
.menuDiv {width:1px;height:28px;background:#999}
保存预览一下,竖线已经出来。不过,菜单选项的文字却在顶部,我们再修改成以下代码:
#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}
效果基本上已经实现了,剩下的就是修改菜单的超链接样式,在css.css中添加以下代码:
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
#menu ul li a:hover{}


页面顶部的完整代码
下面给出本例页面顶部的完整代码,供学习参考:
index.htm的内容:
[mw_shl_code=html,true]        <!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/html; charset=gb2312" />
         <title>无标题文档</title>
         <link href="css.css" rel="stylesheet" type="text/css" media="all" />
         </head>
          
         <body>
         <div id="container">
         <div id="header">
         <div id="menu">
         <ul>
         <li><a href="#">首页</a></li>
         <li class="menuDiv"></li>
         <li><a href="#">博客</a></li>
         <li class="menuDiv"></li>
         <li><a href="#">设计</a></li>
         <li class="menuDiv"></li>
         <li><a href="#">相册</a></li>
         <li class="menuDiv"></li>
         <li><a href="#">论坛</a></li>
         <li class="menuDiv"></li>
         <li><a href="#">关于</a></li>
         </ul>
         </div>
         <div id="banner">
         </div>
         </div>
         </div>
         </body>
         </html>[/mw_shl_code]
css.css的代码:
[mw_shl_code=html,true]         /*基本信息*/
         body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
         a:link,a:visited {font-size:12px;text-decoration: none;}
         a:hover{}
          
         /*页面层容器*/
         #container {width:800px;height:600px;margin:10px auto}
          
         /*页面头部*/
         #header {background:url(logo.gif) no-repeat}
         #menu {padding:20px 20px 0 0}
         #menu ul {float:right;list-style:none;margin:0px;}
         #menu ul li {float:left;display:block;line-height:30px;margin:0 10px}
         #menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
         #menu ul li a:hover{}
         .menuDiv {width:1px;height:28px;background:#999}
         #banner {background:url(banner.jpg) 0 30px
        no-repeat;width:730px;margin:auto;height:240px;border-bottom:5px solid
        #EFEFEF;clear:both}
          
         /*页面主体*/
         #pagebody {width:800px;margin:0 auto;height:400px;background:#CCFF00}
          
         /*页面底部*/
         #footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}[/mw_shl_code]

Div+CSS
常见错误
1. 检查HTML元素是否有拼写错误、是否忘记结束标记
即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一下有无错误。
2. 检查CSS是否正确
检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用CleanCSS来检查 CSS的拼写错误。CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误。
3. 确定错误发生的位置
如果错误影响了整体布局,则可以逐个删除div块,直到删除某个div块后显示恢复正常,即可确定错误发生的位置。
4. 利用border属性确定出错元素的布局特性
使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。
5. float元素的父元素不能指定clear属性
MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的著名的bug,倘若不知道就会走弯路。
6. float元素务必指定width属性
很多浏览器在显示未指定width的float元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。另外指定元素时尽量使用em而不是px做单位。
7. float元素不能指定margin和padding等属性
IE在显示指定了margin和padding的float元素时有bug。因此不要对float元素指定margin和padding属性(可以在float元素内部嵌套一个div来设置margin和padding)。也可以使用hack方法为IE指定特别的值。
8. float元素的宽度之和要小于100%
如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%。
9. 是否重设了默认的样式?
某些属性如margin、padding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的margin、padding设置为0、列表样式设置为none等。
10. 是否忘记了写DTD?
如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下面这行DTD:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">


失效http://115.com/file/dpa8u8hq#DIV+CSS基础教程.doc

评分

参与人数 1宅魂 +5 收起 理由
1259534964 + 5 Σ( ° △ °|||)︴ 碉堡了

查看全部评分

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

0

主题

8

好友

8023

积分

序章

积分
8023
发表于 2012-6-9 17:20:57 | 显示全部楼层
前排

点评

魂淡: 5.0
魂淡: 5
= =  发表于 2012-6-9 17:23
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

20

好友

9851

积分

序章

积分
9851
发表于 2012-6-9 17:23:29 | 显示全部楼层
同前排

点评

魂淡: 5.0
魂淡: 5
= =  发表于 2012-6-9 17:24
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

13

主题

24

好友

4595

积分

禁止访问

积分
4595
发表于 2012-6-9 19:46:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

31

主题

146

好友

3万

积分

第二章

积分
36547
发表于 2012-6-11 06:23:11 | 显示全部楼层
来做笔记。~
我是一只天然呆BAKA…[/c
回复 支持 反对

使用道具 举报

该用户从未签到

388

主题

2042

好友

10万

积分

懒人

积分
104569
发表于 2012-6-11 08:35:54 | 显示全部楼层
←     ←音乐怎么插
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

97

主题

75

好友

1万

积分

第一章

积分
11926
发表于 2012-6-11 08:36:32 | 显示全部楼层
抱大腿
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

396

主题

307

好友

5万

积分

第三章

听着时间涓滴败血

积分
51214
 楼主| 发表于 2012-6-11 21:34:43 | 显示全部楼层

在html简易里应该有的啊
<embed src='地址'>应该是这个吧,还有一些设定比如什么重复之类的你可以度娘一下


签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

388

主题

2042

好友

10万

积分

懒人

积分
104569
发表于 2012-6-11 21:45:11 | 显示全部楼层
软软的上嘴唇 发表于 2012-6-11 21:34
在html简易里应该有的啊
应该是这个吧,还有一些设定比如什么重复之类的你可以度娘一下

射射
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

396

主题

307

好友

5万

积分

第三章

听着时间涓滴败血

积分
51214
 楼主| 发表于 2012-6-11 21:45:43 | 显示全部楼层
ぃ野花のAriosモ 发表于 2012-6-11 21:45
射射

不用射
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 13 天

连续签到: 1 天

[LV.3]偶尔看看II

106

主题

167

好友

3万

积分

技术宅认证画师

不懂画画,吊儿郎当。本命魔笛,请多指教。

积分
34590
发表于 2012-6-13 20:00:23 | 显示全部楼层
各种强调严密技术性强的好物
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

3

好友

3939

积分

懒人

积分
3939
发表于 2012-6-13 23:49:57 | 显示全部楼层
观摩观摩
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

23

好友

3245

积分

序章

积分
3245
发表于 2012-6-14 02:22:23 | 显示全部楼层
技术宅
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 54 天

连续签到: 1 天

[LV.5]常住居民I

3

主题

32

好友

2万

积分

第一章

积分
20863
发表于 2012-6-14 20:14:06 | 显示全部楼层
学东西
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

18

主题

36

好友

7647

积分

序章

积分
7647
发表于 2012-6-15 10:59:25 | 显示全部楼层
收下了 谢谢。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 0 反对 1

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-7-11 02:37 , Processed in 0.189264 second(s), 45 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表