描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302491927丛书名: Web前端开发系列丛书
本书适合作为高等院校各专业“Web前端开发”或“网页设计”等课程的教材,也可作为网页设计与制作的培训类教材,还可供网站设计和开发人员参考使用。
目录
第1章Web前端开发概述/1
1.1Web前端开发与网页设计/1
1.1.1网页的概念和本质/1
1.1.2网页设计的两个基本问题/2
1.1.3网页设计语言——HTML简介/3
1.1.4网页制作软件/4
1.2网站的创建和制作流程/5
1.2.1网站的特征/5
1.2.2网站的开发步骤/6
1.2.3在Dreamweaver中建立站点/8
1.3Web服务器与浏览器/10
1.3.1Web服务器的作用/11
1.3.2浏览器的种类和作用/11
1.4URL与域名/13
习题1/14第2章HTML/15
2.1HTML概述/15
2.1.1HTML文档的结构/15
2.1.2Dreamweaver的开发界面/16
2.1.3使用DW新建HTML文件/17
2.1.4HTML标记/17
2.1.5常见的HTML标记及属性/18
2.2在网页中添加文本和图像/19
2.2.1创建文本和列表/19
2.2.2插入图像/21
2.3利用DW代码视图提高效率/22
2.3.1代码提示/23
2.3.2代码快速定位/23
2.3.3DW中的常用快捷键/24
2.4创建超链接/25
2.4.1超链接标记
2.4.3超链接的种类/28
2.4.4超链接目标的打开方式/30
2.4.5超链接制作的原则/30
2.4.6DW中超链接属性面板的使用/31
2.5插入Flash及嵌入其他网页/32
2.5.1插入Flash /32
2.5.2嵌入式框架标记/33
2.6头部标记/34
习题/35第3章HTML5与Web标准/36
3.1HTML5的改进/36
3.1.1HTML5新增的标记/36
3.1.2HTML5语法的改进/38
3.1.3HTML5的视音频功能/39
3.1.4HTML5的绘图功能/41
3.2Web标准/44
3.2.1传统HTML的缺点/44
3.2.2Web标准的含义/45
3.2.3Web标准的优势/47
3.3HTML元素的概念/47
3.3.1行内元素和块级元素/48
3.3.2
习题/49第4章CSS样式美化/50
4.1CSS基础/50
4.1.1CSS的语法/50
4.1.2在HTML中引入CSS的方法/51
4.1.3选择器的分类/53
4.1.4CSS文本修饰/56
4.2CSS的特性/57
4.2.1CSS的层叠性/57
4.2.2CSS的继承性/59
4.2.3选择器的组合/60
4.3CSS高级选择器/64
4.3.1关系选择器/64
4.3.2属性选择器/66
4.3.3伪类选择器/67
4.3.4使用过渡属性配合动态伪类效果/70
4.3.5伪元素选择器/73
4.4CSS设计和书写技巧/75
4.4.1CSS样式总体设计原则/75
4.4.2DW对CSS的可视化编辑支持/76
4.4.3CSS属性的值和单位/79
4.4.4网页中的字体/80
4.4.5字体图标技术/82
4.5盒子模型及其属性/84
4.5.1盒子模型概述/84
4.5.2边框border属性/85
4.5.3圆角borderradius属性/87
4.5.4图像边框borderimage属性/89
4.5.5padding和margin属性/91
4.6标准流下的定位及应用/92
4.6.1标准流下的定位原则/92
4.6.2margin合并现象/95
4.6.3盒子模型的应用/96
4.6.4Chrome浏览器的CSS调试功能/99
4.7背景的运用/100
4.7.1CSS的背景属性/100
4.7.2背景的基本运用技术/104
4.7.3滑动门技术/107
4.7.4背景图像的翻转/111
4.7.5传统圆角效果/112
4.8CSS3样式美化功能/114
4.8.1阴影和发光效果/114
4.8.2渐变效果/117
4.8.3描边效果/120
4.8.4遮罩效果/121
4.9变形与动画效果/123
4.9.1平面变形效果/123
4.9.23D变换效果/126
4.9.3animation动画效果/131
习题/134第5章CSS布局/137
5.1浮动/137
5.1.1盒子浮动后的特点/137
5.1.2清除浮动元素的影响/140
5.1.3清除浮动影响的方法/140
5.2浮动的应用举例/143
5.2.1图文混排及首字下沉效果/143
5.2.2水平导航条/144
5.2.3新闻栏目框/145
5.2.4微博对话框/148
5.3相对定位/149
5.3.1定位属性和偏移属性/149
5.3.2相对定位的特点/149
5.3.3相对定位的应用举例/150
5.4绝对定位和固定定位/152
5.4.1绝对定位/152
5.4.2绝对定位的应用举例/154
5.4.3固定定位/163
5.4.4与定位属性有关的CSS属性/163
5.4.5overflow属性/166
5.4.6verticalalign属性/167
5.5CSS分栏布局/168
5.5.1分栏布局的种类/169
5.5.2网页居中的方法/170
5.5.3131版式网页布局/170
5.5.4121可变宽度布局/174
5.5.5CSS两列布局案例/176
5.5.6HTML5 新增的文档结构标记/181
5.5.7HTML5网页布局案例/183
5.6CSS3新增的布局方式/186
5.6.1弹性盒布局/186
5.6.2分栏布局/190
5.7CSS浏览器的兼容问题/192
习题/193第6章表格与表单/195
6.1创建表格/195
6.1.1表格标记/195
6.1.2表格行和单元格标记/197
6.1.3在DW中操作表格的方法/199
6.1.4制作固定宽度的表格/201
6.1.5特殊效果表格的制作/201
6.2使用CSS美化表格/203
6.2.1边框和背景的美化/203
6.2.2隔行变色效果/204
6.3创建表单/205
6.3.1
标记及其属性/206
6.3.2标记/208
6.3.3和标记/211
/211
6.3.5表单数据的传递过程/212
6.3.6表单中的按钮/213
6.3.7表单的辅助标记/214
6.3.8HTML5新增的表单标记和属性/215
6.4美化表单/218
6.4.1搜索框/218
6.4.2用户登录表单/219
6.4.3用户注册表单/222
习题/223第7章响应式网页设计/225
7.1响应式网页的基本技术/225
7.1.1媒体查询/225
7.1.2流式布局/227
7.1.3自适应图片/229
7.1.4一列变宽、一列固定的方法/231
7.1.5响应式网页的头部代码设置/231
7.2响应式布局的网站实例/232
7.2.1页面总体布局的实现/233
7.2.2页头的设计/235
7.2.3响应式导航条的制作/235
7.2.4响应式栏目的制作/237
习题/239第8章JavaScript与jQuery基础/240
8.1JavaScript的代码结构/240
8.2JavaScript的事件编程/242
8.2.1JavaScript语言基础/242
8.2.2常用JavaScript事件/242
8.2.3事件监听程序/243
8.3JavaScript DOM编程/245
8.3.1动态效果的实现/245
8.3.2获取指定元素/246
8.3.3访问元素的CSS属性/247
8.3.4访问元素的内容/249
8.4使用浏览器对象/249
8.5jQuery基础/253
8.5.1jQuery的功能和使用/253
8.5.2jQuery中的“$”/254
8.5.3jQuery对象与DOM对象/258
8.5.4jQuery的选择器/260
8.5.5jQuery的事件绑定/261
8.5.6jQuery中的常用方法/262
8.5.7jQuery应用举例/263
习题/265第9章Bootstrap响应式网页设计/267
9.1Bootstrap的使用/267
9.1.1下载和引用Bootstrap框架/267
9.1.2Bootstrap栅格系统/269
9.1.3使用栅格系统进行响应式布局/271
9.2Bootstrap中的网页组件/277
9.2.1基于组件的网页制作方法/277
9.2.2导航条/279
9.2.3轮播插件/283
9.2.4选项卡面板/286
9.2.5媒体对象/288
9.2.6折叠面板组/290
9.2.7提示框与弹出框/292
9.2.8模态弹窗/293
9.3Bootstrap网页重构实例/295
习题/297附录实验/299
实验1个人简历网页/299
实验2圆饼型盒子的制作/299
实验3制作背景翻转的图标/300
实验4栏目框的制作/300
实验5页头和导航条的制作/301
实验6图片滚动栏的制作/301
实验7网页的布局设计/301
实验8网站首页的实现/301
实验9网站列表页的实现/301
实验10制作下拉菜单/302
实验11制作Tab面板/302
实验12使用Bootstrap制作响应式网页/302参考文献/303
前言
Web前端开发是由很多互联网公司一致命名的一种工作职位。毋庸置疑,Web前端开发这个职位是由网页设计演变而来,但随着近几年来,移动互联网时代的到来,Web前端开发已经有了更广泛的内涵,因为像微信公众号、手机APP(其中的Web APP和Hybrid APP)和移动端网页的开发都需要Web前端开发技术。
目前,Web前端开发对人才的需求量非常大,前端开发人员的薪酬通常比同层次的后端开发人员薪酬水平还要高,这是因为前端开发由于涉及界面设计和交互,个性化很强,导致项目的重用性水平低,而后端很多项目都可以重用,比如许多不同的网站可以共用一个后台,这就造成了前端开发人员的需求量远大于后端开发人员的需求量。
Web前端开发技术的基础是HTML5、CSS3和JavaScript。虽然其主要任务仍然是网页设计,但已经产生了巨大的变化,比如通过CSS3就能制作出炫丽的动画和交互效果,而过去却要依赖于Flash或JavaScript;固定宽度的网页布局已逐步向能适应各种屏幕的响应式网页布局华丽转变;基于组件式的网页设计思想相对于从头开始的网页制作方法来说,能极大地减少开发人员的工作量。
Web前端开发的教学主要有两项任务,即传授知识和培养兴趣。笔者认为教学成功的关键是在这两方面寻找一个折中。如果上课讲授的知识点过多过细,则学生思考和实践的环节就会减少;如果讲授的知识点过少,片面强调让学生实践,则学生由于知识点没理清,又容易陷入低水平的盲目实践。
为此,本书在编写时,注重培养学生兴趣,在章节安排上尽快让学生进入CSS阶段的学习,将表格和表单的内容安排在CSS基础知识的后面,因为只有接触到CSS,学生才会领会到这门课程的乐趣。并且本书重点讲授CSS的内容,因为CSS仍然是Web前端开发这门课程最重要的内容。其次,考虑到初学者以前并未接触过任何网页设计语言,本书将传统的CSS知识和CSS3的内容进行统一编排,从而使读者更容易系统掌握CSS的传统技术和新技术。Bootstrap作为前端开发的一种流行技术,代表了网页制作技术的两大发展趋势:
一是响应式网页布局的趋势,可以说,响应式网页布局将是网页布局历史上的第二次革命,第一次革命是CSS布局取代表格布局;二是基于组件的网页制作方法,这种网页制作方法能避免从头开始写代码,避免了过去网页制作过程中令人厌倦的重复劳动,极大地提高了网站的开发效率,因此Bootstrap必将引起更多网站开发者的重视。
为了便于读者阅读和减少篇幅,本书采用精简代码的编排方式,读者一般都能够容易地将其还原成完整代码,同时每个代码都标有序号,读者能够方便地在配套源代码中找到完整代码并能直接运行。
本书的教学大概需要64学时,其中实验学时不少于16学时。如果学时量不足,则可以主要讲授第2、4、5章的内容。带“*”号的章节建议学生自学。
本书为将其作为教材的教师提供教学用多媒体课件、实例源文件和实验大纲,可登录本书的配套网站http://wxy.hynu.cn/ec免费下载,也可和作者联系(微信号: tangsx4,邮箱: [email protected])。
本书由唐四薪编写了第3~10章。林睦纲、唐琼编写了第1章和第2章的部分内容。参加编写的还有谭晓兰、喻缘、刘燕群、唐沪湘、刘旭阳、陆彩琴、唐金娟、谢海波、尹军、唐琼、何青、唐佐芝、舒清健等,他们编写了第2章的部分内容。
本书的写作得到衡阳师范学院“十三五”专业综合改革试点项目“计算机科学与技术”的支持。本书是衡阳市科技计划项目(2016KJ02)的研究成果。
由于编者水平和教学经验有限,书中错误和不妥之处在所难免,欢迎广大读者和同行批评指正。
作者
2018年3月
1. 一个盒子浮动接下来在上述代码中添加一条CSS代码,使Box1盒子浮动。代码(52.html)如下: .son1{float:left;}此时显示效果如图52所示,可发现在给Box1添加浮动属性后,Box1的宽度不再自动伸展,而且不再占据原来浏览器分配给它的位置。如果再在未浮动的盒子Box2中添一行文本,就会发现Box2中的内容是环绕着浮动盒子的,如图53所示。图52第一个盒子浮动图53增加第二个盒子的内容
总结: 设置元素浮动后,元素发生了如下一些改变: (1) 浮动后的盒子将以行内块(inlineblock)元素显示,即宽度会自动收缩,但保持块级元素的其他性质。(2) 浮动的盒子将脱离标准流,即不再占据浏览器原来分配给它的位置。(3) 未浮动的盒子将占据浮动盒子的位置,同时未浮动盒子内的内容会环绕浮动后的盒子。提示: 所谓“脱离标准流”,是指元素不再占据在标准流下浏览器分配给它的空间,其他元素就好像这个元素不存在一样。例如在图52中,当Box1浮动后,Box2就顶到了Box1的位置,相当于Box2视Box1不存在一样。但是,浮动元素并没有完全脱离标准流,这表现在浮动盒子会影响未浮动盒子中内容的排列,例如Box2中的内容会跟在Box1盒子之后进行排列,而不会忽略Box1盒子的存在。2. 多个盒子浮动在Box1浮动的基础上再设置Box2也左浮动,代码(53.html)如下: .son2{float:left;}图54设置两个盒子浮动此时显示效果如图54所示(在Box3中添加了一行文本)。可发现Box2盒子浮动后仍然遵循上面浮动的规律,即Box2的宽度也不再自动伸展,而且不再占据原来浏览器分配给它的位置。如果将Box1的浮动方式改为右浮动: .son1{float:right},则显示效果如图55所示,可看到Box2移动到了Box1的前面,这说明元素浮动后其显示顺序和它们在代码中的位置可能并不一致。接下来设置Box3也左浮动: .son3{float:left},则显示效果如图56所示。可发现3个盒子都浮动后,就产生了块级元素水平排列的效果。同时由于都脱离了标准流,导致其父元素中的内容为空。图55改变浮动方向图563个盒子都浮动
对于多个盒子浮动,除了每个浮动盒子都遵循单个盒子浮动的规律外,还有以下两条规律: (1) 多个浮动元素不会相互重叠,一个浮动元素的外边界(margin)碰到另一个浮动元素的外边界后便停止运动。(2) 若包含的容器太窄,无法容纳水平排列的多个浮动元素,那么最后的浮动盒子会向下移动(见图57)。但如果浮动元素的高度不同,那当它们向下移动时可能会被卡住(见图58)。图57没有足够的水平空间图58被Box1卡住了
5.1.2清除浮动元素的影响clear是清除浮动属性,它的取值有left、right、both和none(默认值)。如果设置盒子的clear属性值为left或right,表示该盒子的左边或右边不允许有浮动的元素。值设置为both则表示两边都不允许有浮动元素,因此该盒子将会在浏览器中另起一行显示。例如,在图55两个盒子浮动的基础上,设置Box3清除浮动,即在51.html 基础上设置如下CSS代码(54.html),效果如图59所示。.son1{float:right;}.son2{float:left;}.son3{clear:both;}可以看到,对Box3清除浮动(clear:both;),表示Box3的左右两边都不允许有浮动的元素,因此Box3移动到了下一行显示。实际上,clear属性既可以用在未浮动的元素上,也可以用在浮动的元素上,如果对Box3同时设置清除浮动和浮动,即: .son3{clear:both; float:left;}则效果如图510所示,可看到Box3的左右仍然没有浮动的元素。图59对Box3清除浮动图510对Box3设置清除浮动和浮动
由此可见,清除浮动是清除其他盒子浮动对该元素的影响,而设置浮动是让元素自身浮动,两者并不矛盾,因此可同时设置元素清除浮动和浮动。由于上下margin叠加现象只会发生在标准流的情况下,而浮动方式下盒子的任何margin都不会叠加,所以设置盒子浮动并清除浮动后,上下两个盒子的margin不叠加。在图510中,Box3到Box1之间的垂直距离是20px,即它们的margin之和。5.1.3清除浮动影响的方法在网页布局中,浮动元素会影响其他元素的正常排列,导致网页元素不能按人们的意愿显示。因此设置元素浮动后应尽量清除该元素浮动对其他元素的影响。对于下列两种情形应采用不同的方法清除浮动。1. 来自子元素的浮动如果一个父元素内所有的子元素都浮动,一定要记得对这个父元素作清除浮动处理。否则该父元素下面的元素会顶到浮动元素的位置上去(如图511所示),下面的代码(55.html)可清除子元素浮动对父元素的影响,其显示效果如图512所示。div{padding:10px; margin:10px;border:1px dashed #111;background-color:#9bf;}.father{background-color:#ff9;border:1px solid #111;}.cls {clear: both; }.son1{float:right; }.son2{float:left;}.box3{background:#ccf;}
Box-1
图511未清除子元素浮动时的效果图512清除子元素浮动后的效果
这种方法添加了一个元素(.cls)专门用来清除浮动,如果不愿添加新元素,可使用伪元素的方式来设置清除浮动。下面的代码在父元素内部的末尾添加一个伪元素,使用伪元素清除浮动的经典代码(56.html)如下: .father:after { content: ”; display: table; clear: both; }.father { zoom: 1; }/兼容IE6、IE7,如不需要可去掉/注意: 对于一个父元素内的所有子元素都浮动,一种极其错误的做法是设置父元素的高度来掩饰浮动对它的影响,如.father{height:50px;},这样做只是掩饰了浮动,并没有清除浮动的影响,虽然使父元素看起来正常了,但父元素下面的元素仍然会顶到上面去。因此,在CSS布局时,如果发现一个元素移动到它原来位置的左上方或右上方,并且和其他元素发生了重叠,则很可能是受到了其他盒子浮动的影响。2. 来自兄弟元素的浮动如果一个元素前面的兄弟元素浮动(见图513),则可以对紧邻该浮动元素的后一个元素作清除浮动处理。例如,不希望Box3受前面兄弟元素浮动的影响,则可对Box3清除浮动,代码(57.html)如下,显示效果如图514所示。div{padding:10px 20px; margin:7px; border:1px dashed #111;background-color:#9bf; float:left; }/所有div都浮动/.box3{background:#ccF; clear:both;}/对Box-3清除浮动/
Box-1
图513清除浮动前图514清除浮动后
除了直接对后面的元素清除浮动外,还可以增加一个元素专用于清除浮动,代码如下:
Box-1
虽然增加一个元素使代码变得冗余,但这样使每个元素的功能变得更加清晰,因此推荐使用。3. 避免滥用浮动由于元素浮动会对其他元素的布局产生影响,因此应避免滥用浮动,下面是两种滥用浮动的典型场景。(1) 为了使元素宽度收缩而设置浮动,由于浮动元素的宽度会自动收缩(称为主动包裹),于是就用浮动属性代替width属性。实际上,如果只需要改变元素的宽度,应设置width属性,而不是float。(2) 为了清除浮动的影响而浮动,清除浮动正确的做法是使用clear属性(例如图59中的Box3),但如果对Box3设置float属性,再设置width值,似乎也能达到图59中的效果,但实际上这种错误的做法将导致更多的元素受到浮动的影响而布局混乱。因此,如果要清除浮动应对相应的元素设置clear属性,而不是float。5.2浮动的应用举例利用单个盒子浮动,可制作出图文混排及首字下沉等效果。利用多个盒子浮动,则可制作出水平导航条等效果。5.2.1图文混排及首字下沉效果如果将一个盒子浮动,另一个盒子不浮动,那么浮动的盒子将被未浮动盒子的内容所环绕。如果这个浮动的盒子是图像元素,而未浮动的盒子是一段文本,那么就实现了图文混排效果。示例代码(58.html)如下,效果如图515所示。img{border:1px gray dashed; margin:10px 10px 10px 0;padding:5px; float:left;/设置图像元素浮动/}p{margin:0;font:14px/1.5 “宋体”; text-indent: 2em;}
在遥远古希腊的大草原中,……这就是”人马族”。
人马族里唯独的一个例外–奇伦……
图515图文混排效果在图文混排的基础上让第一个汉字也浮动,同时变大,则出现了首字下沉的效果,添加的CSS代码(59.html)如下,效果如图516所示。p:first-letter{font-size:3em; float:left;}如果将第一个段落浮动,则出现了文章导读框效果,代码(510.html)如下,效果如图517所示。图516首字下沉和图文混排效果图517导读框效果
p{margin:0; font-size:14px; line-height:1.5;text-indent: 2em;}p:first-child{width:160px; float:left;/第一个段落浮动/margin:10px 10px 0 0; padding:10px;border:3px gray double; background:#9BD;}
在遥远的古希腊大草原中……
“半人半兽”代表着理性与非理性……
从以上3个例子可以看出,网页中无论是图像还是文本,对于任何元素,在排版时都应视为一个盒子,而不必在乎元素的内容是什么。5.2.2水平导航条在4.6.3节中,利用元素的盒子模型制作了一个竖直导航条。如果要把这个竖直导航条变为水平导航条,有以下两种方法: 方法一,设置所有a元素浮动,这是因为多个元素浮动,这些元素就会水平排列。当然水平导航条一般不需设置宽度,可以把width属性去掉。图518是水平导航条的效果,它的结构代码(511.html)如下:
图518水平导航条CSS样式主要是给元素设置盒子和背景属性,代码如下: #nav{font-size: 14px;}
#nav a {color: red; background-color: #9CF;text-align: center; text-decoration: none;padding:6px 10px 4px; border: 1px solid #39F;float:left;/使a元素浮动,实现水平排列/}#nav a a{margin-left:5px;}/设置第2到最后一个a元素有5px的左间距/#nav a:hover {color: white; background-color: #930; }/设置前景色和背景色/提示: (1) 本例使用了相邻选择器(#nav a a)选中了除第1个a元素之外的其他a元素,再给它们设置左边距,这样就实现了第一个a元素没有左边距。(2) 设置了浮动后元素将自动以块级元素显示,因此就不需要再对#nav a选择器添加display:block属性了,因为这是多余的。方法二,将所有a元素的display属性设置为inlineblock,inlineblock元素兼有块级元素和行内元素的特点,表现在它可以像块级元素一样设置宽度和高度,同时它又像行内元素一样是从左到右排列,宽度不会自动伸展。其CSS关键代码如下: #nav a {…display: inline-block; }/将5-11.html的float:left;改成这条/5.2.3新闻栏目框在网站的首页中,文字内容一般被组织成栏目框的形式。网站是按栏目组织内容的,因此栏目框是最常见的网页界面元素,掌握栏目框的制作是网页制作中一项重要的基本功。如图519所示的是一种简洁风格的栏目框。图519栏目框示例栏目框可分为栏目标题栏和内容列表区。对于栏目标题栏,常见的结构代码如下:
基层动态
可见,栏目标题栏由两部分组成,即左边的栏目标题和右边的“更多”链接,因此需要两个HTML元素来存放。为了将栏目标题栏组合成一个整体,使用了一个div元素将这两个元素包裹起来。对于“更多”链接,之所以将其放入一个span元素中,是为了将CSS布局样式和CSS文本样式分离。即对span元素设置布局样式,而对a元素设置文本样式。span元素在这里起到了布局元素的作用。对于内容列表区域,从语义上看,它是一个典型的无序列表,因此使用ul元素来描述列表区域,其结构代码如下:
- 07-25
- 07-06
…
然后将标题栏代码和内容列表区域代码用一个div元素包含起来,即得到栏目框的完整结构代码(512.html)如下:
基层动态
- 07-25
- 07-06
…
提示: 由于在网页中一般有多个栏目框,因此对栏目框中的元素一般设置class属性,而不设置id属性,从而使栏目框的样式代码可以被很多个风格相似的栏目框共用。接下来设置栏目框的样式,从外表来看,栏目框的文本样式主要是设置文字大小和行距。栏目框的布局样式主要是要使栏目标题和“更多”链接分布在容器两端。新闻标题和日期也分布在容器的两端。这称为两端对齐,要实现两端对齐,主要有以下3种方法。(1) 左右都浮动法: 设置左边的元素左浮动,右边的元素右浮动。这时由于两个盒子都浮动,不占据外围容器的空间,所以还必须设置外围盒子的高度,或设置外围盒子清除浮动,使它能包含住两个浮动的盒子。标题栏的CSS样式代码(512.html)如下: .news{ width:420px;margin-left: 20px;}.title {
评论
还没有评论。