首页 > 代码库 > html基础

html基础

  1 HTML概述
  2 
  3 超文本标记语言(Hyper Text Markup Language)
  4 HTML文档是一个包含标记的文本文件
  5 文件名以.htm或者.html 结尾 
  6 
  7 ------------------------------------------------------------------------------
  8 
  9 文档结构
 10 
 11 为了使浏览器能正确渲染页面,我们需要告诉浏览器网页所使用的文档类型(DOCTYPE)。
 12 
 13 目前的HTML版本是4.01,但是实际中广泛使用的是XHTML 1.0 Transitional。
 14 
 15 XHTML比HTML有更加严格的语法:
 16 标签必须被正确地嵌套。 (<b><i>Hello</b></i> 是不正确的)
 17 标签名必须用小写字母。
 18 所有标签必须闭合
 19 
 20 DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分,除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
 21 在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。打个比方:人体模特换衣服。模特就好比数据,衣服则是表现形式,模特和衣服是分离的,这样你就可以随意换衣服。而原来HTML4中,数据和表现是混杂在一起的,要一次性换个表现形式非常困难。
 22 
 23 一个完整的页面:
 24 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 25 
 26 其中的DTD叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。
 27 
 28 
 29 为了让浏览器正确的渲染HTML文档,我们需要告诉浏览器我们的HTML文档使用的是哪个版本的HTML。
 30 
 31 当前的HTML 4.01,有三个不同的版本:
 32 
 33 Strict
 34 最严格、干净的HTML版本。不允许表现层的属性和标签,W3C也将逐渐淘汰这些标签,因为完全可以用CSS来实现。比如<center>  <font>  <iframe> 标签,以及width,height(img,table),align(table),target(a)等属性。
 35 
 36 Transitional:
 37 过渡期HTML版本。支持大部分的表现层属性和标签。
 38 
 39 Frameset:
 40 允许在一个页面中嵌入多个页面。
 41 
 42 使用三个不同版本的HTML,需要在页面的第一行添加DOCTYPE声明:
 43 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 44 
 45 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 46 
 47 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
 48 
 49 XHTML 1.0 提供了三种DTD声明可供选择:过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>。完整代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 50 
 51 ------------------------------------------------------------------------------
 52 基本标签
 53 
 54 块级标签
 55 就像标题、段落一样,需要在页面上占据一块的位置的标签。
 56 <h1> 最大的标题    <h2> - <h6> 大小依次减小的标题   <p> 段落
 57 
 58 <pre> 显示一段预格式化的文本。此标签内的空格、换行、Tab等都被原样显示出来。一般用来显示一段源代码。
 59 predefined:即预定义的。     paragraph:段落
 60 
 61 <pre>                                            ********************
 62 if (!IsPostBack)
 63 {
 64     string num1 = Request.QueryString["num1"];
 65     string num2 = Request.QueryString["num2"];
 66 
 67     if (!String.IsNullOrEmpty(num1) && !String.IsNullOrEmpty(num2))
 68     {
 69         labResult.Text = (Convert.ToInt32(num1) + Convert.ToInt32(num2)).ToString();
 70     }
 71 }
 72 </pre>                                            *********************
 73 
 74 显示效果如下:
 75 if (!IsPostBack)
 76 {
 77     string num1 = Request.QueryString["num1"];
 78     string num2 = Request.QueryString["num2"];
 79 
 80     if (!String.IsNullOrEmpty(num1) && !String.IsNullOrEmpty(num2))
 81     {
 82         labResult.Text = (Convert.ToInt32(num1) + Convert.ToInt32(num2)).ToString();
 83     }
 84 }
 85 
 86 大多数XHTML可以表示为两种类型的标签:块标签(block tag)和内联标签(inline tag)。
 87 
 88 <div>一般块级标签。
 89 
 90 <hr>水平线
 91 
 92 注:HTML自动在一个<h1> - <h6> <p> <pre> 的段落前后各添加一个空行。
 93 
 94 ------------------------------------------------------------------------------
 95 基本标签
 96 
 97 内联标签
 98 <em> 强调,大部分浏览器渲染为斜体。
 99 <strong> 强调,大部分浏览器渲染为黑体。
100 <sub> 下标
101 <sup> 上标
102 
103 内联标签通常用于样式化一行中的文本,并且不会导致换行。常见的内联标签包括<i>斜体、<em>、<strong>和<b>104 
105 <code> 标示一段代码        <span> 一般内联标签
106 <br> 换行        <b> 黑体    <i> 斜体
107 注:<span> 标签被用来组合文档中的行内元素。如果不对 span 应用样式,那么 span 元素中的文本与其他文本不会任何视觉上的差异
108 
109 ------------------------------------------------------------------------------
110 实体字符
111 
112 HTML文档本身使用了一些字符来作为标签,所以要想在页面上显示 < 或 >,就必须使用实体字符。    
113 比如使用 &lt; 可以在页面上显示 < 字符。
114 
115 实体字符的格式是:
116     AND符号(&) + 实体名 +分号(;)
117 
118 转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
119 
120 常用的实体字符             ******************************
121 
122 &nbsp;    空格
123 &lt;        <
124 &gt;        >
125 &amp;    &
126 &quot;    “
127 &copy;    ?
128 &reg;    ?                 ******************************
129 
130 参考:http://www.w3schools.com/html/html_entities.asp
131 
132 <p>空格:&nbsp;END</p>
133 <p>左括号:&lt;</p>
134 <p>右括号:&gt;</p>
135 <p>AND符号:&amp;</p>
136 <p>引号:&quot;</p>
137 <p>人民币:&yen;</p>
138 <p>版权:&copy;</p>
139 <p>注册:&reg;</p>
140 <p>乘号:&times;</p>
141 <p>除号:&divide;</p>
142 
143 ------------------------------------------------------------------------------
144 链接
145 
146 HTML使用超级链接来连接到网络上的其他页面。
147 
148 一个简单的链接是由 <a> 标签和 href 属性构成的
149 
150 <a href="http://www.baidu.com/">百度</a>
151 
152 href 属性
153       -- 绝对路径
154           http:
155                  --HTTP请求
156           https:                           ********************
157                  --加密的HTTP请求
158           mailto:
159                  --打开邮件客户端,准备发送邮件
160           ftp:
161                  --打开FTP服务器
162 
163 示例:绝对路径
164 <a href="http://www.baidu.com/">链接到百度首页</a>
165 <a href="mailto:leizhang5@iflytek.com">打开邮件客户端</a>
166 <a href="https://mail.google.com/">登陆Gmail</a>
167 <a href="ftp://mail.ustc.edu.cn/">登陆科大FTP服务器</a>
168 
169 href 属性
170       --相对路径               ****************
171          ./
172             --本目录     也可以不写
173          ../ 
174             --上一级目录
175          ../../
176             --上一级目录的上一级目录
177           /
178             --根目录
179 
180 target属性(控制链接打开的位置)
181          _blank
182                   新窗口中打开链接
183          _self
184                   当前窗口中打开链接(默认)
185          _parent
186                   父窗口中打开链接
187          _top
188                   最顶层父窗口中打开链接
189          targetname                                  ***************
190                   指定窗口或Frame中打开链接
191 
192 注:当用户第一次选择内容列表中的某个链接时,浏览器将打开一个新的窗口,将它标记为 "view_window",然后在其中显示希望显示的文档内容。如果用户从这个内容列表中选择另一个链接,且这个 "view_window" 仍处于打开状态,浏览器就会再次将选定的文档载入那个窗口,取代刚才的那些文档。(即相当于java中的覆盖或重写的方法,取代原来的页面内容)
193 
194 <a href="http://www.baidu.com" target="page1">在IFRAME中打开百度首页</a>
195 <a href="http://www.mamicode.com/character.htm" target="page1">在IFRAME中打开字符实体示例</a>
196 <iframe style="width: 600px; height: 300px; border: 1px solid #666;" name="page1">
197 </iframe>                               **********************
198 
199 <a href="http://www.mamicode.com/#" onclick="javascript:window.open(‘‘,‘mywindow‘);">打开一个空白的新窗口                   ***********************
200 </a>
201 <a href="http://www.mamicode.com/test2.htm" target="mywindow">在这个新窗口中打开“test2.htm”</a>
202 
203 ------------------------------------------------------------------------------
204 页面锚点
205 
206 html 锚点 到底是干吗的?                       ******************
207 通俗简单地说,比如一篇很长的文章,你想按分段精确来看,那就可以用到锚点了。
208 
209 代码:
210 <a href="http://www.mamicode.com/#001">跳到001</a>
211 ...文字省略
212 <a name="001" id="001" ></a>
213 ...文字省略
214 
215 其实锚点只需name就可以可,加id是为了让它兼容性更好.
216 href的值要跟name \ i d 一致,前面必须加"#",以上代码在ie6/7,ff中都可以兼容,但在ie8中就不行。
217 因为我们锚点的<a></a>值为空,为不影响美观我们加个空格就行了,
218 
219 
220 如以下代码,就可以兼容ie8
221 <a href="http://www.mamicode.com/#001">跳到001</a>
222 ...文字省略
223 <a name="001" id="001" > </a>
224 ...文字省略
225 
226 
227 另一问题,想显示某页面(如:123.html)的某锚点内容呢? 
228 
229 代码如下
230 <a href="http://www.mamicode.com/123.html#001">跳到001</a>
231 ...文字省略
232 <a name="001" id="001" > </a>
233 ...文字省略
234 ------------------------------------------------------------------------------
235 图片
236 
237 可以在页面中添加bmp,gif,jpg,png等格式的图片。
238 src 是图片的路径
239 alt是图片不能显示时的文本,应该为每个图片提供这个属性。
240 
241 <img alt=“birthday" src="http://www.mamicode.com/images/birthday.bmp" />
242 <img alt="Rose" src="http://www.mamicode.com/images/rose2.bmp" />
243 
244 图片链接:
245     <a href="http://www.baidu.com/">
246         <img alt="baidu" src="http://www.mamicode.com/baidu_logo.gif" />
247     </a>
248 
249 大部分的浏览器会为图片链接的图片添加边框,可以通过设置图片的样式来去掉边框:                                      *******************
250 <a href="http://www.baidu.com/">
251   <img alt="baidu" style="border: 0px;" src="http://www.mamicode.com/baidu_logo.gif" />
252 </a>                                               *******************
253 
254 图片地图:
255 点击图片的不同部分,可以链接到不同的地方。
256 
257 示例:图片地图                                    ******************
258 <img alt="earth" src="http://www.mamicode.com/images/earth.bmp" usemap="#earthmap" />
259 <map name="earthmap">
260     <area shape="rect" coords="0,0,20,20" alt="baidu" href="http://www.baidu.com/" target="_blank" />
261     <area shape="circle" coords="76,76,20" alt="google" href="http://www.google.cn/"
262     target="_blank" />
263 </map>
264 
265 <area>定义了图片中特定区域的链接行为      **************
266 shape属性指出区域的形状
267        如果为矩形(rect),则coords需要指定四个数字(左上角横坐标,左上角纵坐标,右下角横坐标,右下角纵坐标)
268        如果为圆形(circle),则coods需要指定三个数字(圆心横坐标,圆心纵坐标,半径)
269 
270 ------------------------------------------------------------------------------
271 列表
272 
273 无序列表
274 <ul>
275             <li>太阳</li>
276             <li>月亮</li>
277             <li>星星</li>
278             <li>地球</li>
279 </ul>
280 
281 有序列表
282 <ol>
283         <li>太阳</li>
284         <li>月亮</li>
285         <li>地球</li>
286 </ol>
287 
288 示例:无序列表中各无序图标形状
289 <ul type="disc">       黑圆
290     <li>太阳</li>
291     <li>月亮</li>
292     <li>地球</li>
293 </ul>
294 <ul type="circle">     白园
295     <li>太阳</li>
296     <li>月亮</li>
297     <li>地球</li>
298 </ul>
299 <ul type="square">     黑方块
300     <li>太阳</li>
301     <li>月亮</li>
302     <li>地球</li>
303 </ul>
304 
305 示例:嵌套列表
306    
307 <ul>
308     <li>太阳</li>
309     <li>月亮</li>
310     <li>地球
311             <ul>
312             <li>海洋</li>
313             <li>陆地</li>
314             <li>雪山</li>
315             </ul>
316     </li>
317 </ul>
318 ------------------------------------------------------------------------------
319 表格
320 
321 Table用来展示列表数据。
322 <tr> 表示一行,<td>表示一个单元格
323 
324 <table>
325         <tr>
326             <td>数据一</td>
327             <td> 数据二</td>
328         </tr>
329 </table>
330 
331 border属性
332 <table border=“5">
333 
334 th与td标签
335 <td>:table data 表示一个单元格
336 <th>:table head 表示一个单元格,这个单元格是表头,浏览器一般渲染为黑体(可以是第一行横排或者是第一列纵排)   ***************
337 
338 cellpadding属性                         ************************
339 单元格的内边距。
340 <table border="1" cellpadding="20">(即单元格内的文字与左边边框的距离)
341 
342 cellspacing属性                          ************************
343 单元格边框的宽度。
344 <table border="1" cellspacing="20">(即整个表格的外边框与单元格边框的距离)(注:将cellspacing="0" 则可实现外边框与内边框合并的效果,即只看到一个边框)                     ************************
345 
346 空单元格
347 如果table设置了border,那个空单元格的border会不显示,可以通过在空单元格中添加 &nbsp; 来解决。
348 
349 对齐方式
350 居左、右、中对齐
351         <th align="right">标题一</th>
352         <th align="right">标题二</th>
353 注意:需要在table中设置宽width和高height,如果只是设置cellpadding,是不会显示上下左右的排列         **************************
354 
355 表格中数据的排列方式有两种,分别是左右排列和上下排列。左右排列是以ALIGN属性来设置,而上下排列则由VALIGN属性来设置。其中左右排列的位置可分为三种:居左(left)、居右(right)和居中(center);而上下排列基本上比较常用的有四种:上齐(top)、居中(middle)、下齐(bottom)和基线(baseline)。                    **************************
356 
357 rowspan属性
358 跨行单元格,rowspan=”2” 表示当前单元格跨两行。(即上下单元格合并)
359 <td rowspan="2">
360 
361 colspan属性
362 跨列单元格,colspan=”2” 表示当前单元格跨两列。(即左右单元格合并)
363 <td colspan="2">
364 ------------------------------------------------------------------------------

 

html基础