Transcript HTML
网页编程基础 曾宪文,Rex Zeng 纸飞机网络技术部部长 Leader of ACE 导论 导论 什么是网页编程? 首先,请这么做: 1.打开任意一张网页 2.在网页空白处(或文字上)点击右键 3.点击“查看源代码”,然后大喊一声“Wow” 4.尽情欣赏 “编程”,就是要跟代码打交道; “网络编程”,就是要跟网页上的代码打交道。 导论 网页编程需要哪些知识? 网页编程分为前台和后台。 前台:终端显示给用户的部分 HTML,CSS,JavaScript…… 后台:服务器端运行的程序 PHP,MySQL…… 此外也需要一些基本的网络安全知识。 导论 为什么要学习网页编程? 目前,越来越多的项目依赖于网络。 软件杯,科创,个人网站…… WebView,WebApp,微信…… For male:前端工程师中妹子比例很高 For female:能写出好网页的男生是好男生 For others:不管怎么样,尝试一下总是好的 导论 网页编程的注意事项? 首先,请抛弃Frontpage; 其次,请弃用DreamWeaver的“设计”模式; 再者,请拥抱最新的标准,不局限于旧标准; 然后,请患上轻微的强迫症; 最后,请不要急于完成任务。 推荐的编辑器: Sublime Text || Notepad++ || Eclipse 推荐的网站: http://www.w3school.com.cn HTML HTML HTML是什么? 今年的生日会上,技术部的小品里有一句: “我才不说HTML是How-To-Make-*的意思 呢!” 其实,HTML的全称是“Hypertext Markup Language”,翻译过来是“超文本标记语言”, 就是用一系列标签来标记信息。 HTML是所有网页编程的基础。其文件的扩展 名是*.htm或*.html。 HTML DOCTYPE的概念 在绝大部分网页的源代码中,第一句总有一个 类似<!DOCTYPE ……>的标记。 DOCTYPE定义了浏览器渲染该网页的标准,目 前最新的标准是HTML5,它的DOCTYPE应该 这么写:<!DOCTYPE html>。 网页开头必须使用DOCTYPE,以避免浏览器使 用“怪异模式”渲染页面。 HTML HTML中的标签和属性 跟Word类似,一张网页也是一个文档,里面 可能会有标题、段落、图片、表格等元素。 我们用“标签”来描述元素的类型。标签的格 式是<tag>,即一对尖括号括起来一个标签名 称。 标签有单标签和双标签之分。单标签被当作是 基本元素,双标签可以括起一些内容,看起来 更像“框架”。 HTML HTML中的标签和属性 按照自然逻辑,我们可以这么来描述一篇文章: <article> article <title>我是标题</title> <content> title<para>我是第一段。</para> content <image /> <para>我是第二段。</para> para image para </content> </article> HTML HTML中的标签和属性 只有标签也不行。例如,刚才的那个乱入的图 片究竟画了什么? 标签是有属性的,例如我要在这里放一个圆, 它的圆心坐标是(10,20),半径为5,我们可以 这样来描述它: <circle cx="10" cy="20" r="5" /> HTML文档是用一个个有意义的标签组合起来 的。<para>标签只是我的杜撰,并无意义。 HTML HTML文档结构 一个网页,需要有一个合适的结构。 html head meta link body title 内容 HTML <head>标签 人有一个头; 双头蛇有两个头; 九头龙有九个头; OIers眼中的九头龙有M个头…… ……可见头的重要性。HTML文档有一个头, 用<head>标签括起来。里面可以存放跟文档 相关的信息,例如元信息、标题等。 <head>里的内容不会显示在浏览器页面中。 HTML <meta>标签 每一个<meta>标签描述网页的一个属性。 <meta charset="utf-8" /> <meta name="viewport" content="initialscale=1,maximum-scale=1,userscalable=no,width=device-width" /> <meta name="description" content="如果百 度收录了这个网页,搜索结果里就会显示这句 话。" /> HTML <title>标签、<link>标签 前者没什么可说的,就是网页的标题。 <title>我会显示在浏览器标题栏上</title> 后者则用来定义文档与外部资源的关系,例如 外部样式表(马上会学到)、网页图标等。 <link rel="stylesheet" href="css/main.css" /> HTML <body>中的标签们 标题分为六级,分别可以用<h1>~<h6>括起 来。若h后面的数字变大,则字号会变小。 <h3>我是一个三级标题</h3> 段落用<p>(表示paragraph)标签括起来。 <p>这是一段文本。</p> <p>这是另一段文本。</p> HTML <body>中的标签们 文字格式化是个比较好玩的东西。 <b>粗体文本</b> <big>大号字</big> <em>着重文字</em> <i>斜体字</i> <small>小号字</small> <strong>加重语气</strong> <sup>上标字</sup> <sub>下标字</sub> HTML <body>中的标签们 链接是个比较复杂的东西。 <a href="http://alf.nu/" target="_blank" title="页面集合">有趣的页面们</a> <a href="mailto:[email protected]">发邮件</a> <a href="#aboutme">关于我</a> <a href="http://..../xx.html#tip">提示</a> 后两者需要在网页中创建锚。 <a name="tip">提示</a> HTML <body>中的标签们 图片用<img>标签表示,用属性来描述内容。 <img src="images/logo.png" width="150" height="30" alt="图片加载不出来的时候,图 片的位置上会显示这句话" /> 这里要提一下相对路径与绝对路径的问题。因 为打字太麻烦,我决定口述。 HTML <body>中的标签们 表格用来展现数据,其结构大体如下。表格的 各种属性请参考这里。 table caption th thead tbody tfoot tr tr tr th td td td td HTML <body>中的标签们 此外,还有一些标签本身不会有太多效果,但 是它们是为语义而生。不妨称为语义标签。提 供给浏览器的语义信息越多,浏览器就可以越 好地把这些信息展示给用户。 线性代数的缩写是<abbr>LA</abbr>。 地址:<address>怡园16栋601-01</address> <blockquote>子曾经曰过……</blockquote> <pre>for (p=head; p; p=p->next) {...}</pre> 令<var>N</var>表示输入的数字。 HTML 结束语 想做出高大上的网页,这些标签还不够。 有些标签不是特别常用,例如<ul>、<ol>和 <li>,因此留给大家课下探索。 有些标签太复杂,例如<div>、<span>,以后 的学习中会不断遇到这些标签。 有些标签和属性已经被时代的潮流抛弃,例如 <font>标签、align属性等,它们的接替者是我 们马上要学习的内容——CSS。 CSS基础 CSS 什么是CSS? 如果要改变HTML元素的样式,怎么办? CSS的全名为“层叠式样式表”,它就是干这 个的。例如网页中有一类元素,CSS大概就是 描述“这货应该长这样”的一个语言。 此外,CSS还可以改变元素的默认样式,也就 是说,如果需要,你可以把<em>标签从斜体 改为红色(百度就是这么干的)。 CSS CSS该怎么用? 要使用CSS,有三种方法。 1.在<head>中加入: <link rel="stylesheet" href="css/main.css" /> 2.在任何地方加入: <style>CSS语句</style> 3.利用元素的style属性: <p style="CSS语句">……</p> CSS 标记HTML元素 “页面中的<p>元素这么多,但我只想控制其 中特定的几个,怎么办?” 其实,每个元素都有id和class两个属性。原则 上,同一网页中的元素不能有相同的id,但是 可以有相同的class。此外,class可以叠加。 <p class="one striked">class的叠加</p> <p id="main" class="two">id不可重复</p> <p class="one">class可重复</p> CSS 各种各样的选择器 常见的选择器有这么几种。 id选择器【#foo】:选择所有id为foo的元素 类选择器【.foo】:选择所有class为foo的元素 标签选择器【foo】:选择所有的foo元素 后代选择器【foo1 foo2】:选择foo1的后代 中所有的foo2 子元素选择器【foo1>foo2】:选择foo1的孩 子中所有的foo2 CSS 选择器练习 body p#foo table p.foo1 p.foo2 tbody p.foo1 ul#foo1 li li li tr td ul td#foo5 li li CSS 基础CSS语句 假如我们有这么个选择器:#foo,我们要改变 它的样式。如果是正常人的话,大概会这么想: #foo { 字体颜色:红色 字体大小:16像素 背景颜色:黄色 字体样式:加粗,倾斜 } CSS是正常人,只不过是歪果仁。 CSS 基础CSS语句 background-color: yellow; background-image: url(../image/bg.png); color: red; /* #F00、#FF0000、rgb(255, 0, 0) */ font-family: "SimHei", "Segoe UI"; font-size: 16px; /* 1em、0.5cm */ font-weight: bold; text-decoration: italic; CSS 行内元素与块级元素 有的元素(例如<a>、<img>)可以嵌入在一 段文字内,与之相对的元素(例如<p>、 <h1>)则必须占用单独一行。这就是行内元 素与块级元素的区别。 可以用CSS的display属性来强行改变元素的性 质,它的取值有block、inline、inline-block。 注:IE7及以下浏览器对inline-block支持有限。 CSS 总结 CSS的规则非常多,多到正常人记不过来。因 此,常备一个手册是很重要的。 CSS选择器不宜写的太长,会影响效率。 更高级的CSS3会在后续的课程中涉及。 推荐完全使用CSS来控制网页样式。如果需要, 可以覆写语义标签的默认样式。 作业 如果想通过技术部二面,就写作业吧! 制作一个网页,内容为一篇文章。文章自选。 于2014年10月7日晚23:00之前发至我的邮箱 [email protected],过时则视为未完成。 如果你是零基础:对文章进行美化,CSS和各 种标签的使用多多益善。 如果你有基础:确保网页结构良好,兼容各浏 览器,使用并理解刚才未提到的标签和CSS。 二面通过标准:以作业质量来定。 Thanks Rex Zeng From NUAA-CCST-2013