网页的构造块

第一章:

  一个网页主要分为三个部分:

1: 文本内容(text content)

2:对其他文件的引用(references to other file):

用这些引用来加载图像,音频,视屏文件,以及样式表和javaScript文件

3:标记

需要注意的是,网页这些成分都仅有文本构成。

给合适的内容添加合适的标签

如:

P 用于标记段落,li 用于列表项目,abbr 用于缩略图等

 

HTML思想:

用合适的标签去描述合适的文字,html需要考虑的是元素的内容是什么,专注于考虑结构,而不去考虑表现(颜色,位置等)  单单去考虑结构上的问题

 

1.2基本的HTML页面:

访问者能看到的只是<body></body>标签里面的内容 

  每个页面都包括 DOCTYPE、html、head和body元素,他们是网页的基础。在这个页面里面可以定制的内容包括两项,一个是赋予lang属性的语言代码 二是<title></title>之间的文字。

 

HTML使用和HTML标签

开始标签 和 结束标签 如:<head>/head>:有的元素没有结束标签

网页的头部<body>开始标签以上的内容都是浏览器和搜索引擎准备的。

<!DOCTYPE>部分(称为DOCTYPE)这里填写页面的版本号

<html lang=”en”> 这里可以为浏览器指定其他语言 

 

1.3标签:元素、属性、值及其他

标签的组成:三部分 元素(element)、属性(attribute)、值(value)。

元素:就是各个标签如:<p></p> 标签通常采用小写字母

空元素:没有结束标签 结尾处有一个斜杠/

如<img sec=”” alt”” />

 

属性和值

属性包含了元素的额外信息

例如:href=“#” title=”” 和元素一样都是使用小写字母

有的元素只能接收特定的值。例如:<link>里面的media属性 只能设为 all screen print 

 

父元素和子元素的关系:

所谓的父元素和子元素就是有着包含的关系,就和箱子套箱子一样 ,套在外面的箱子就是里面箱子的父元素 子元素的所有元素都是父元素的子元素

<article>
  <h1></h1>
  <img src=”#” />
</article>

在这里article就是h1和img的父元素

 

 

1.6

文件和文件夹名

文件名全部使用小写字母,单词之间使用(短线分割单词)做连接。关键是保持一致,用.html做后缀名,可以让使用者省去切换大小写所用的时间

文件夹和文件相似,都使用小写字母来写关键是保持一致。!!

 

 

1.7  URL 

(Uniform Resource Locator 统一资源定位符) 地址的别名。

URL的第一个部分称为模式(scheme)url="http://www.baidu.com";

 

URL的第二个部分是文件所在的主机名称,紧接着是路径

常用的模式是

http(超文本传输协议) http://baidu.com/

mailto(用于发电子邮件) “mailto:电子邮箱地址” 比较特殊

ftp (文件传输协议)“ftp://ftp.sit.com(主机名)/pub(目录)/proposal.pdf(文件名)”

 

绝对URL

URL可以是绝对的也可以是相对的。绝对URL(absolute URL)包含了指向目录或者文件的完整信息

引用别人Web服务器上的文件是,应该总是使用绝对URL。

 

相对URL

和绝对URL不同的是,只是告诉一个大概的东西,并没有说的很清楚

 

根相对URL

一层用一个斜杠/来划分开来,用来变现层

 

1.8 HTML:有含义的标记

HTML描述的是网页内的含义,即语义。

语义化:用最恰当的HTML元素进行标记的内容

 

<article>该元素是H5新的标签,用来取代div的位置,但是要做样式体现的话还是建议使用div 它是一个独立的部分,可以嵌套起来使用

<em> 起强调作用的标签

<a>(anchor) 锚 链接

Alt:当图片显示不成功的时候,就会使用alt中的文字来代替显示了

Title:当鼠标滑过图片的时候,就会显示title内的文字内容

 

为什么语义化很重要?

1:提升可访问性和互操作性

2:提供搜索引擎优化(SEO)的效果

3:使维护代码和添加样式变得更加容易

 

无障碍访问,让所有用户可用,不论其能力如何

 

1.9浏览器对页面的默认显示效果

块级元素和行级元素

块级元素 (block):块级元素就是在变现的时候会另起一行开始显示

常见的元素:div article h p 

行级元素(inline):和块级元素相反,元素会在一行内进行表示。

常见的元素:a em

需要强调的是,这是浏览器默认的样式,而不是HTML元素自身的样式,也不是由代码中两个元素之间的空行引起的

1.10 重点总结

1:一个页面一般有三个部分组成:文本内容,对其他文件的引用和标记

2:HTML标记由元素、属性和值构成

2处理网页文件

2.1规划网站

规划网站的方法:

1:确定为什么要创建这个网站,需要展示什么内容

2:确定网站的访问者,应该如何调整整个内容使之吸引这些访问者

3:需要多少个页面,你希望是怎样的结构,是希望按照特定的方式来浏览网站还是自由访问

4:在纸上画出网站结构的草图,确定你在每个页面希望呈现的内容。

5:为页面、图像和其他外部文件设置一个一致的命名规则

2.4指定默认页面或主页

大多数情况下系统会将index.html识别为默认的页面,如果没有就会继续寻找index.html、default.html等文件,如果访问者输入代目录的URL,但是没有指定文件名,那么就会打开默认的页面

 

2.8借鉴他人的灵感

可以借助一些小工具来查看网站的结构和样式

 

3基本的HTML结构

DOCTYPE 声明文件

Html 元素文件通常包含lang属性 (用于指定语言)

Head 元素 头文件(包含link元素 title元素!Meta元素(指定编码格式))

说明字符编码的meta元素

Title元素 作为标题的元素

Body元素 用户能看到的部分

<!DOCTYPE html>
<html>
<head lang=”en”>
<meta charset=”UTF-8”>
</head>
<body>
</body>
</html>

 

网页的两个部分:head和body

Head里面主要指明页面标题,提供为搜索引擎准备的关于页面本身的信息,加载样式表,以及加载javascript文件 !!!(不过出于性能考虑,多数时候在页面底部</body>之前加载javascript是更好地选择)

 

3.2 创建页面标题

<title></title>

每个HTML页面都必须有一个title元素。

标题应该具备的特点

简短的,描述性的,唯一的

开头常见的做法是将网站名称放在title的开头

建议:把核心内容放在前60个字符中(含空格)。

 

3.3 创建分级标题

1.分级标题的重要性 分级标题通常传达页面的主题,因此对搜索引擎来说,如果标题与搜索词汇匹配,这些标题就会被赋予很高的权重,尤其等级最高的H1

 

3.4 普通页面的构成

Header:包含一些介绍性或导航型内容的区域(页眉/页头)

包含网站标志 主导航 和其他全站连接

Role=”banner”并不适用于所有的页眉。

它显示的指出该页眉为页面级的页眉,可以提高访问性

Nav:标记导航 role=”navigation“ 

Main:标记页面的主要区域 是html5里新增加的元素,在一个页面里只能使用一次

Article:表示文档,页面应用或网站中一个独立的容器,原则上是可以独立分配或可再用。

主要用于包括像新闻一样的元素,博客等

 

Section:定义区块 section必须具有一个标题 划分区域块的时候通常会使用section元素,划分模块通常也是用section来划分

!!Section元素代表文档或应用的一个一般的区域块。在这里,section是具有相似主题的一组内容,通常包含一个标题元素

Aside:指定附注栏

Footer: 页脚 只有他的父元素是body时他才会是整个页面的页脚

通常用来包括版权声明,链接,隐私政策等类似的内容

不能嵌套在header footer 或者address元素里

加role的原因是提高访问性

 

3.13使用ARIA改善可访问性

ARIA 是一种技术规范 自称:”有桥梁作用的技术“他会在HTML提供相应的语义功能之前,它会用属性来填补一些语义上的空白

无障碍访问的意义:是让所有的访问者都能获取网站的内容。

地标角色:role属性

一些可用的地标角色

Role=”banner“横幅 通常包含网站的标志 网站的赞助者标志,全站搜索工具等。横幅通常显示在页面的顶端,而且通常横跨整个页面的宽度 

如何使用及何时使用:

将其添加到页面级的header元素 一个页面只能使用一次

 

Role=”navigation“ 导航 文档内不同部分相关文档的导航性元素(通常为链接)的集合

如何使用及何时使用:

与nav元素是对应关系 在一个页面上可以使用多次 但是和nav元素一样 不过不要过度使用

 

Role=”main“(主体) 文档的主要内容

如何使用及何时使用:

和main是对应关系,最好添加到main元素里可以用来表示主体内容的元素

 

Role=”complementary“补充性内容 

文档中作为主体的补充的支撑部分 他对区分主体内容是有意义的

如何使用及何时使用:

Aside是对应关系,应将其添加到aside或div元素(前提是该div只包含了补充性内容)

 

Role=”contentinfo“(内容信息)

包含关于文档的信息的大块可感知区域这类信息的例子,包括版权声明和指向隐私的链接等

如何使用及何时使用:

将其加到footer元素里 一个页面只能出现一次

 

3.14 为元素指定类别或ID名称

应该避免使用描述变现样的名称,如class=”red“

可以使用title属性(注意不是title属性)

Title是提示标签:当用户将鼠标停留在添加了说明的标签上的时候,就会显示title

 

3.16 添加注释

可以在HTML文档中添加注释,标明区块开始和结束的位置,提醒自己或者未来的代码编辑者某段代码的意图

<!--注释内容-->

注释不能嵌套在注释里面

 

 

4 文本

Em元素是用来强调文本的

Cite元素用于对艺术品等的引用

Code用来格式化脚本或者程序中的代码

4.1添加新的段落

使用<p>标签

4.2指定明细

使用<small>元素 通常用于页脚 包括免责声明注意事项等

4.3标记重要和强调的文本

<strong>元素表示内容的重要性,而em则表示内容的着重点,根据需要来使用

HTML5更强调语义,而非表现。所以用Strong元素取代了b元素,使用em代替了i元素

HTML5对b重新定义:

B元素表示出于实用的提醒读者的一块文字,不传达任何额外的重要性。

I元素的重新定义:

I元素表示一块不同于其他文字的文字,具有不同的语态或语气

4.4创建图

图可以是图表,照片,图形,插图,代码片段,以及其他类似的独立内容。

创建图及其标题的步骤

1:输入<figure>

2:作为可选步骤 输入<figcaption>开始的标题

3:输入标题文字。

4:如果在2,3步创建了标题,就输入<figcaption>

5:添加图像,视频,数据表格等内容

如果包含了figcaption 他就必须是内嵌的第一个元素或者是最后一个元素

6:现代浏览器会默认给figure添加40px的左右边距

4.5指明引用或参考

使用cite元素可以指明对某元素内容源的引用或者参考(

参考缘)

Cite元素默认以斜体显示

步骤:

1:输入<city>

2:输入参考的名称。

3:输入<cite>

Cite只是用于参考源本身,而不是从中引用内容 不应该使用cite元素做人名的引用

4.6引述文本

Blockquote 块引用

Q元素和blockquote元素的区别是q适合用于简短的行内引用,如果需要引用较长的部分就建议使用blockquote元素

4.7指定时间

我们可以使用time元素来标记时间、日期或者时间段,这是HTML5的新增元素

Time最简单的方法就是不加datetime属性 datetime属性是为机器准备的。该属性遵循特定的格式

步骤:

1输入<time开始time元素

2如果需要就加上datetime=”time“其中的time值得是第4步中文本的机器可读格式

3输入结束标签 >

4输入要在浏览器中显示的格式

5输入</time>

4.8 解释缩写词

可以用abbr元素标记缩写词并解释其含义,只需要在用户了解该词语含义的时候使用

可以使用title属性来提供该缩写词汇的全称,还有另一种方法就是在括号里加上一个空格 然后再写出该缩写的全称

4.9 定义术语 

在HTML中定义术语时,可以使用dfn来包裹,其表现形式和cite相同都表示为斜体

4.10 创建上标和下标

输入SUB是下标 输入SUP是上标

上标和下标在一定情况下会影响行距,可以用css对其进行操作来改善这个效果

4.11添加作者联系信息

Address 用于提供作者的个人信息等

HTML5禁止address元素里包含以下元素

H1~H6 article address aside footer header hggroup(标题组)

Nav he section

4.12标注编辑和不再准确的文本

三个元素

Ins 新插入的文本

Del 标记已删除文本

S 对内容添加删除线

4.13标记代码

Code 包含代码实例或者是文件名

其他计算机相关元素:kbd samp var

Kbd :标记用户输入指令

Samp:用于指示程序或系统的实例输出

Var:变量或者占位符的值

4.14使用预格式化的文本

预格式化的文本可以保持文本固有的换行和空格。它是计算机代码实例的理想元素

<pre>需要保留原有格式的的文本</pre>

4.15突出显示文本

使用mark标签,在标签内的元素会产生马克笔的效果,后期可以用css对mark标签进行修改

常用的地方:mark元素常用于搜索结果页面

4.16创建换行

使用<br/>进行换行

4.17创建span

Span是没有任何语义化的

定义和用法

<span> 标签被用来组合文档中的行内元素

可以为 span 应用 id 或 class 属性,这样既可以增加适当的语义,又便于对 span 应用样式。

 

4.18其他元素

1 u 以前是为文本添加下划线 现在用于非文本注解

2 wbr 可换行处

3 ruby rp rt 旁注 

Rp是显示括号 rt指对字符进行注解

<ruby>

string <rp>(</rp><rt>注解</rt><rp>)</rp>

</ruby>

Bdi和bdo元素

主要实现字符从左向右或者从右向左

<p dir=”rtl”lang=”he”>.......</p>

5:meter元素

是HTML5里的新元素

表示任务的完成进度

6:progress元素

HTML5新增的元素 

指某项任务的完成进度,就像一个进度条

 

5 图像

Web上使用最广泛的三种格式图片 png gif jpeg 

选择目标是:选择质量最高,同时文件最小的格式

Jpeg 适合于彩色照片 文件相对较小 是有损的格式

PNG GIF 是无损的格式 

 

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>语义化结构</title>
    <link href="../css/3.26.css" rel="stylesheet" media="all">
    <link href="../css/960_12_col.css" rel="stylesheet">
</head>
<body>
<div id="contain" class="clearfix">
    <header role="banner" id="top">
        <nav role="navigation">
            <ul>
                <li><a href="http://www.sina.com">新浪</a></li>
                <li><a href="http://www.baidu.com">百度</a></li>
                <li><a href="http://www.qq.com">腾讯</a></li>
                <li><a href="http://www.imooc.com">慕课网</a></li>
            </ul>
        </nav>
    </header>
    <main role="main" class="body">
        <article class="clearfix">
            <article class="image_cir">
                <figure>
                    <img src="../../../images/圆圈.png" alt="圆圈标志" title="圆圈标志"/>
                    <figcaption>
                        <span><strong>这只是一个图片的demo</strong>来源于<cite>demo/image/xx.jpg</cite></span>
                    </figcaption>
                </figure>
            </article>
            <section class="text_group">
                <h1>HTML5andCSS3</h1>

                <p><em>利用</em>今天所学的知识,做出的具有<strong>语义化</strong>结构的demo<sub>2</sub>,利用了html<sup>5</sup>里新增的结构化元素</p>

                <p><strong>语义化:</strong><dfn>用最恰当的HTML元素去标记内容。</dfn></p>
                <ol>
                    <li>header</li>
                    <li>nav</li>
                    <li>main</li>
                    <li>article</li>
                    <li>section</li>
                    <li>aside</li>
                    <li>footer</li>
                </ol>
            </section>
            <section class="text_base">
                <h2>基础知识</h2>

                <p>看书并做好了笔记</p>
                <span>
                    <mark>css代码例子</mark>
                    <code><pre>
                        *{
                        padding:0;
                        margin:0;
                        max-width:1000px;
                        min-width:320px;
                        width:100%;
                        font-family:"黑体"
                        }
                    </pre>
                    </code>
                </span>
            </section>
        </article>
    </main>
    <aside role="complementary" class="right">
        <h3>副标题栏</h3>
        <article>
            <ul>
                <li><a href="#">1</a></li>
                <li><a href="#"><abbr title="javascript">JS</abbr></a></li>
                <li><a href="#">3</a></li>
                <li><a href="#">4</a></li>
            </ul>
        </article>
    </aside>
    <article class="icon">
        <figure>
            <a href="#top"><img src="../../../images/头条.png"></a>
            <figcaption><a href="#top">回到顶部</a></figcaption>
        </figure>
    </article>
    <footer role="contentinfo" class="bottom">
        <small>
            <time datetime="2016-03-25">2016年3月25日</time>
            <address>by:
                <ruby>志豪
                    <rp>(</rp>
                    <rt>gavin</rt>
                    <rp>)</rp>
                </ruby>
            </address>
        </small>
    </footer>
</div>
</body>
</html>