黑马程序员_HTML基础

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

1.课前说明

         内容:HTML、CSS

         超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言.

CSS是英语CascadingStyle Sheets(层叠样式表单)的缩写,它是一种用来表现HTML或 XML 等文件式样的计算机语言,通常又称为“风格样式表(StyleSheet)”,它是用来进行网页风格设计的

         目标:掌握手写HTML实现一般难度的Web页面的能力(如网站注册表单),为ASP.Net学习打基础。坚持手写HTML,可视化设计只是一种自学的手段。

          

2.什么是浏览器?

         浏览器就是接收浏览者的操作(打开一个网址、点击一个链接、 点击一个按钮),然后帮浏览者去Web服务器请求网页内容 (HTML格式返回),然后展现成人能够看得懂的可视化页面的软件。

         IE==浏览器?IE是浏览器的一种,还有FireFox、Opera、Chrome等,注意遨游(Maxthon)、世界之窗、搜狗浏览器、360浏览器等并不是一种独立于IE的浏览器,其内核还是IE的内

核,只不过换了一个外壳而已,所以用遨游的不能嘲笑用IE的,否则就露怯了。试着用WebBrowser控件自己开发一个浏览器

         所谓的Trident 引擎就是IE的WebBrowser控件。现在很多非IE核心的浏览器用的是WebKit引擎,比如遨游3或搜狗的双核、Chrome、Safari。FF基于Gecko.

 

3.HTML

         HTML就是描述网页长什么样子、有什么内容的一个文本。查看网页的描述内容(HTML)的方式:使用IE浏览器的话,在网页上点击右键,选择“查看源文件”

 

         浏览器兼容性问题:描述文件是一个统一的,但是就像口语翻译一样,不同的翻译翻译出来的东西也是不一样的。不同浏览器品牌对HTML的支持是有差异的,所以同一个网页在IE上和FireFox 上看起来可能长得不一样,最明显的就是以前QQ空间上的页面FireFox上显示就有问题,甚至有的页面在IE6、IE7、IE8上长的也不一样。因此Web开发过程中的一个重要的也是最头疼的问题就是浏览器的兼容。测试FireFox(简称FF)、Chrome等浏览器安装各自的软件就可以,测试不同版本的IE可以用IETester

 

4.静态页面、动态页面

         网站页面分为静态页面动态页面两种

         静态页面:有一个html页面文件保存在服务器上,浏览器要这个页面的时候服务器就把这个页面文件发给浏览器;

 

         动态页面:服务器上没有浏览者要看的页面,而是服务器动态生成的HTML页面发给浏览器,动态语言的服务器端可以用C#、VB.Net、PHP、Java、C等编写。

         编写普通的HTML页面是和任何后台语言无关的,可以使用 Dreamweaver、Expression Web(FrontPage的改头换面版)等工具写,这些工具是给页面美工用的,开发人员用VisualStudio写 html就够了。不要把精力放到怎么把界面做好看上,正规公司都有专门的页面美工,不正规公司都是偷别人的美工页面,对于开发人员要做的“填模板”工作都是一样的。

 

5.第一个网页

         新建Web项目(新建→ASP.NetWeb应用程序),新建html页面

(添加→新建项→Web→HTML页)

         查看页面的方式:

         切换到“设计”视图,可以在这里查看初步的预览效果,不是很准,可以在“设计”视图从工具箱中拖放控件可视化的设计,设计复杂页面的时候很少直接可视化设计。

         在编辑器上点右键,选择“在浏览器中查看”。无法进行调试。

         将要查看的页面设为起始页(在文件上点击右键“设为起始页”),然后点击“启动调试”。可以调试。

         学没有JS、C#代码的时候用“在浏览器中查看”。修改页面不用关闭浏览器再打开,刷新就可以。

 

6.HTML页结构说明

         所有内容都在<html></html>标签之内;

<head></head>内放的是头部信息,是对页面的描述,不会直接显示在页面中,

<head>内的<title>中设置的是页面的标题,<title>只能放在<head>中;

<body>是页面的主体,大部分显示内容都定义在这里。

         所有页面都应该至少包含这些部分,由于浏览器容错性强,所以即使不包含也能正常显示,但是最好还是写完全了

 

7.颜色体系

         body标签的bgcolor属性可以设定网页的背景颜色,<body bgcolor="#006699">

         #006699这就是HTML中表示颜色的方式,每两个是一组,三组分别就表示R、G、B的值,是16进制表示。

 

         可以使用VS内置的颜色选择对话框生成RGB值,也可以用取色器(比如DebugBar内置的取色器:打开IE,打开DebugBar工具栏,点击吸管图标);HTML还预定义了一些颜色:red、black、white等,比如bgcolor="black"。

         配色不是一个专业开发人员考虑的,是美工的事情,所以对于颜色的取值不用太操心,知道有这么一回事就行了。

 

8.HTMLXML的联系、区别

         XHTML

         格式标签:<p></p>创建段落;<br/>回车,也可以写成<br>,在 HTML中有一些标签可以不关闭,<br>就是一个,这是和XML不同的地方(常考),但是为了遵循XHTML规范,推荐像XML一样严格关闭。<br/><img src="1.gif"/>

         属性值:HTML中属性值即可以用单引号括起来、也可以用双引号括起来、甚至不用引号都可以(不推荐),单双要配对。

         注释:HTML使用和XML一样的<!--注释内容-->来做注释。

         特殊字符:HTML中<、>是有特殊含义的、空格是不会被显示的(输入一个带空格的字符串看看),所以需要特殊符号,相当于C#中的'\n'转义符。&lt:(小于号,less than);&gt:(大于号,greater than);&nbsp:(空格,no-break space)。使用工具、免除记忆。为什么特殊字符?见备注。

 

 

9.文字格式

         <br/>只是回车,<p>是分段。<p>前后会有比较大的空白,而<br/>则没有。


         <center>传智播客</center>居中显示

         h标签表示字体,HTML定义了<h1></h1>到<h6></h6>六个h标签,分别表示不同大小的字体。

         <b>a</b>粗体。

         <font></font>字体标签,<fontcolor="red">红色</font>    <fontsize="30" color="red">红色</font>

 

10.URL、超链接

         URL:表示资源在网络中的地址,比如 http://127.0.0.1/a.htm、ftp://192.168.88.128/b.zip。还有URI的概念,比URL大,有的类中使用URI这种说法,可以暂时看成和URL一样就行。

         超级链接:<ahref="http://www.rupeng.com">如鹏网</a>。

         <a>中还可以嵌套图片,这样就是点击图片打开连接<a

href="http://www.rupeng.com"><img

src="http://www.rupeng.com/forum/templates/uchome/images/logo.gif"/></a>

 

11.超链接深入

         相对URL:相对URL表示相对于当前文档的资源,“/”表示网站根目录,“../”表示父目录,“../../”表示父目录的父目录,“./”或者不写任何斜线表示相对于当前路径的目录。站内引用最好用相对URL,这样域名改变了、目录改变了都不受影响。<ahref="a.htm"><imgsrc="a.jpg"/></a><imgsrc="../images/csharp1.jpg" /><imgsrc="/images/csharp1.jpg" />

         将<a>的target属性设定为"_blank"就可以在新窗口中打开超链接。国情:国内的网站很多都是默认在新窗口中打开。

         用name属性为<a> 起名字:<aname="Last">这里是最后</a>。这样可以通过<a href="#Last">转到平台</a>来跳转到超链接的部分。

         案例:去往评论、回到正文。多敲几个回车

 

12.图片

         <imgsrc="a.jpg"/>注意图片是链接的,不是插入的,所以如果Src指向的文件不存在了,就看不了了。alt属性为图片无法显示时的显示文本,鼠标方式去也会有悬浮提示“点击查看大图”; border属性指定边框,border="0"不显示边框;widthheight属性指定图片的显示大小,如果不指定则是图片的原始大小。

         最好指定width、height,哪怕是原始尺寸大小,因为如果不指定大小,图片会不占位置,图片下载后才调整大小,会造成页面很乱。如果指定了width、height哪怕图片没有加载完成,也会先把位置占上。

         如果网页上要显示小图(比如缩略图),不要仅仅是把大图设定一下width、height来缩小,因为仍然会下载大图,会使得加载速度很慢。

         不要以为把bmp后缀改为jpg就是改文件格式了!

 

13.列表、表格

         列表:<ul><li>灌水区</li><li>版务区</li><li>原创贴图</li></ul>。unorderedlist。

         (*)还有有序的列表<ol></ol>,用的很少。orderedlist

         表格:<table></table>为表格,在内部通过<tr>创建行,<tr>内部通过<td>创建单元格。可以将table的border属性设为0来隐藏表格线。

         <tr>的属性:align,水平对齐,可选值left、right、center;valign, 垂直对齐,可选值top、middle、bottom。

         <td>也有align和valign。<tralign="right"><td>tom</td><tdalign="left">20</td><td> 男</td></tr>:子标签默认继承父标签的属性,如果自己单独指定了属性,则会覆盖父标签的属性。

         (*)还可以使用rowspan、colspan进行单元格的合并,用VS可视化的功能来做就行。

         (*)表头的td可以用th代替,这样就会表头粗体、居中显示。

         建议将表头用<thead>代替<tr>

 

14.表单

         网站表单与填表

         <form>标签为表单标签。如果要把数据提交到服务器,则需要将<input>、<textarea>、<select>等表单元素放到form中。

         <input>是主要的表单元素,type的可选值:submit(提交按钮)、button(普通按钮)、checkbox(复选框)、file(文件选择框)、hidden(隐藏字段)、image(图片按钮)、password(密码框)、radio(单选按钮)、reset(重置按钮)、text(文本框)。<input type="file" />

 

15.input表单详解

         submit:点击submit按钮表单就会被提交给服务器,中文IE下默认按钮文本为“提交查询”,可以设置value属性修改按钮的显示文本

         text:size属性为宽度,value为值,maxlength为可以输入的最大长度,readonly只读。<inputtype="text" readonly/> (只写属性名,不写属性值)或者<inputtype="text" readonly="readonly" /> (推荐)

         checkbox:checked属性表示是否被选中,<inputtype="checkbox" checked />或者<inputtype="checkbox" checked="checked" />( 推荐)checked、readonly等这种只有一个可选值的属性都可以省略属性值。

         radio相同name属性的为一组,不同radio设定不同的value值,这样通过取指定name的值就可以知道谁被选中了,不用单独的判断。

         file:使用file,则form的enctype必须设置为multipart/form-data、

method属性为POST(*)

         image:使用src属性指定图片的地址,用来实现美化的“登录按钮”。

 

16.<select>标签

         用来创建类似于WinForm中的ComboBox或者ListBox

         如果size属性大于1就是ListBox(size的值为显示出来的列表数量),否则就是ComboBox。<select multiple>或者<select multiple="multiple">(推荐),那么就是可以多选的ListBox。

         select中的项是<option>,<option>北京</option>还可以设定项的值

<option value="1">北京</option>。

         将一个optio n设置为选中: <optionselected>333</option> 或者<option selected="selected">333</option>( 推荐)就可以将这个项设定为选择项

         如何实现“不选择”,添加一个<option value="-1">-- 不选择--<option>, 然后编程判断select选中的值如果是-1就认为是不选择。

         select分组选项,可以使用optgroup对数据进行分组,分组本身不会被选择,无论对于下拉列表还是列表框都适用

 

17.其他标签

         <textarea>多行文本(也是表单元素):<textarea>文本

</textarea>,cols、rows属性表示行数和列数。

         <label>:在<inputtype="text">前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id,<label for="txt1"

>asdfad</label>

         为被修饰的控件设置一个唯一的id。

         <labelfor="ma">婚否</label> <input id="ma" type="checkbox"/>

         fieldset:GroupBox效果,将控件划分一个区域,看起来更规整

         <fieldset>

         <legend>常用</legend>

         <inputtype="text" />

         </fieldset>

 

练习

         练习1:实现登录界面,有用户名、密码、验证码(使用普通图片代替)、“记住密码”复选框、登录按钮。使用Table进行布局。使用label来写修饰文本。

<head>

    <title>登陆</title>

</head>

<body>

<table>

    <tr><td><label for = "username">用户名:</label></td><td><input id = "username"type = "text"/></td></tr>

    <tr><td><label for = "password">密码:</label></td><td><input id = "password"type = "text"/></td></tr>

    <tr><td><label for = "autocode">验证码:</label></td><td><input id = "autocode"type = "text"/><imgalt="验证码" title = "验证码" src ="Pictures/11.jpg" /></td></tr>

    <tr><td colspan = "2"><input type = "checkbox"id = "remember" /><label for = "remember">记住密码</label></td></tr>

    <tr><td colspan = "2"><input type = "submit" value = "登陆"/></td></tr>

</table>

</body>

 

         练习2:实现注册页面,分为两个页面,第一个页面是协议显示页面,点击“我同意”超链接进入第二个注册页面,填写内容:用户名、密码、重复密码、省份(下拉列表)、性别(男、女、保密三个Radio)、职业(学生、公司职员、其他三个Radio)、爱好(登山、篮球、足球、读书、游泳五个CheckBox)。使用 label来写修饰文本。将爱好几个CheckBox放到一个GroupBox中

<head>

    <title>注册内容</title>

    <style type="text/css">

        .style1{

            width:223px;

        }

    </style>

</head>

<body>

<table>

    <tr><td><label for = "username">用户名:</label></td><td class="style1"><inputtype = "text" id = "username"/></td></tr>

    <tr><td><label for = "password">密码:</label></td><td class="style1"><inputtype = "text" id = "password"/></td></tr>

    <tr><td><label for = "repasswd">重复密码:</label></td><td class="style1"><inputtype = "text" id = "repasswd"/></td></tr>

    <tr><td><label for = "sex">性别:</label></td><td class="style1"><inputtype = "radio" name= "gender"value = "male" /><input type = "radio" name = "gender" value= "female"/><input type = "radio" name = "gender" value= "none"/>保密</td></tr>

    <tr><td><label for = "work">职业:</label></td><td class="style1"><inputtype = "radio" name= "job"value = "student" />学生<input type = "radio" name = "job" value = "worker" />公司职员<input type = "radio" name = "job" value = "others" />其他</td></tr>

   

    <tr><td><label for = "province">省份:</label></td><td class="style1">

        <select id = "province">

            <option>北京</option>

            <option selected="selected">上海</option>

            <option >天津</option>

        </select>

        </td></tr>

        <tr><td colspan = "2">

            <fieldset>

                <legend>爱好</legend>

                <input type = "checkbox"id = "ds"/><labelfor = "登山">登山</label>

                <input type = "checkbox"id = "ls"/><labelfor = "篮球">篮球</label>

                <input type = "checkbox"id = "zq"/><labelfor = "足球">足球</label>

                <input type = "checkbox"id = "read"/><labelfor = "读书">读书</label>

                <input type = "checkbox"id = "yy"/><labelfor = "游泳">游泳</label>

            </fieldset>

       

        </td></tr>

</table>

 

</body>

</html>

 

 

         自动提示快速完成页面,结束标签<自动补全,Ctrl+J自动提示。

 

 

18.头部标签

         <meta>标签,<meta>有指定name和指定http-equiv两种用法,

<meta name="名字"content="值" />、<meta http-equiv="名字"

content="值" />两种用法。

 

<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"/>指定网页编码

<meta http-equiv="Refresh"content="3" /> 三秒钟后刷新此网页。

 

<meta http-equiv="Refresh"content="3;url=http://www.rupeng.com" /> 三秒钟后重定向 到新网页。发帖成功后提示“发帖成功,即将转向帖子查看页 面”。

<metahttp-equiv="Cache-Control" content="no-cache" /> 禁 止浏览器缓存页面。

 

19.层(Div)、块(Span

         层:<div></div>将内容放到层中,就以将这些内容当成一个整体进行处理,比如整体隐藏、整体移动等。div非常强大和常用。 类似于WinForm的Panel。

         span:div是将内容放到一个矩形的区块中,会影响布局,而 span只是把一段内容定义成一个整体进行操作,不应该布局、显示。

         层内文字连续英文不换行的问题,wordbreak

         溢出处理。overflow:scroll,overflow:hide

 

20.样式表、CSS

         CSS(层叠样式表)是用来美化页面用的,可以对页面元素进行更精细的设置,样式主要描述元素的字体颜色、背景颜色、边框等。CSS主要有元素内联、页面嵌入和外部引用三种使用方式。CSS是描述元素的皮肤!

         元素内联:直接将样式写入元素的style属性中,<inputtype="text" readonly="readonly" style="background-color: #FF00FF"; border-color:Blue/>,适用于样式没有可复用性的场合。

         页面嵌入:在head中加入

         <styletype="text/css">

         input{border-color:Yellow;color:Red;}

         </style>

         表示页面中所有input都是采用指定的样式。适合于样式复用,减小页面体积

外部引用: 将css内容写入css后缀的文件

         textarea{background:yellow}

         然后在页面中引用,在head中加入

        <link type="text/css"rel="Stylesheet" href="s1.css" />

         适合于多个页面共享css。

 

         推荐把尽可能多的样式写到单独的css文件中,这样可以复用,美工人员和开发人员很好的分工。

         只有页面特有的样式才写到<style>中

         只有元素特有的样式才写到元素的style属性中。

         如果不同级别的样式有冲突,详细级别、子元素的会覆盖更高级 别、父元素的。

 

21.常见样式

         css计量单位:css中表示宽度、距离时有多种计量单位:px(像素)、30%(百分比)、em(相对单位)等。width:20px。

         background-color:Red;背景颜色;color:文本颜色

         border-style:solid;边框风格,实线(默认是没有),还有dotted(点)等值;border-color:边框颜色;border-width:边框宽度(默认是0)。例子:

style="border-color:Red;border-width:1px;border-style:dotted;"

         display:元素是否显示,可选值none(不显示)、block(显示为块级元素,此元素前后会带有换行符。)、inline(显示为内联元素,元素前后没有换行符)等。

         cursor,鼠标在元素上时显示的光标图标,可选值:cursor(默认光标

)、pointer(超链接上的手)、text(输入Bean)、wait(忙沙漏)、

help(帮助)等。还可以通过cursor:url(dinosau2.ani)使用ani、cur

格式的自定义光标图片。

         LI不显示圆点:LIST-STYLE-TYPE: none;一般设在li或者ul上

         应用:图片:不显示边框

 

22.样式选择器

         对于非元素内联的样式需要定义样式选择器,通俗的说就是这个样式适合于哪些元素,三种:标签选择器、class选择器和id选择器。

         标签选择器:input{border-color:Yellow;color:Red;} ,对于指定的标签采用统一的样式

         class选择器:以定义一个命名的样式,然后在用到它的时候设定元素的class属性为样式的名称,还可以同时设定多个class,名称之间加空格样式名称开头加“.”

         .warning{background:Yellow;}

        .highlight{font-size:xx-large;cursor:help;}

        <table><tr><tdclass="highlight">aaa</td><td class="warning">bb</td><td

class="highlightwarning">ccc</td></tr></table>

 

23.标签+class选择器

         class选择器也可以针对不同的标签,实现同样的样式名对于不同的标签有不同的样式,只要在样式名前加标签名即可。

        input.accountno{text-align:right;color:Red;}

        label.accountno{font-style:italic;}

        <input class="accountno"type="text" value="111111111111111"/>

        <labelclass="accountno">333333333333333333</label>

 

24.id选择器

 

         为指定id的元素设定样式,id前加#

         #username

         {

         font-size:xx-large;

         }

 

         <inputid="username" type="text" value="aaaaaaaaaaaa"/>

 

 

         styleclass可以同时组合使用

         <inputid="username" class="accountno" style="font-size:xx-large" type="text" value="aaaaaaaaaaaa" />

 

25.更多选择器(*)

         关联选择器:

        P strong{ background-color:Yellow}

        表示P标签内的strong标签内的内容使用的样式

        <strong>fadsfasdfads</strong>

        <p><strong>adfasfd</strong></p>

         组合选择器: 同时为多个标签设定一个样式

         H1,H2,input{background-color:Green}

         <h1>nihao</h1>

        <input type="text"value="test" />

 

26.伪选择器

         伪选择器:为标签的不同状态设定不同的样式:

         A:visited:超链接点击过的样式;A:active:选中超链接时的样式;A:link:超链接未被访问时的状态;A:hover:鼠标移到超链接时的状态。

 

         A:visited{TEXT-DECORATION: none}

         A:active{TEXT-DECORATION: none}

         A:link{TEXT-DECORATION: none}

         A:hover{TEXT-DECORATION: underline}

         说明:TEXT-DECORATION:none表示超链接不显示下划线.

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值