首页 > 代码库 > html
html
1Web开发相关概念.AVI
内容:html/css
目标:掌握手写html实现一般难度的web页面的能力(如网站注册表单),为asp.net学习打基础。坚持手写html,可视化设计只是一种自学的手段。
参考书:张孝祥《javascript网页开发---体验式学习教程》
什么是浏览器?
浏览器就是接受浏览者的操作(打开一个网址,点击一个连接、点击一个按钮),然后帮浏览者去web服务器请求网页内容(html格式返回),然后展现成人眼能够看得懂的可视化网页的软件
IE==浏览器?IE是浏览器的一种,还有FireFox/Opera/Chrome等,注意邀游(Maxthon).世界之窗。搜狗浏览器、360浏览器等并不是一种独立于ie的浏览器,其内核还是IE的内核,只不过换了一个外壳而已,试着用WebBrowser控件自己开发一个浏览器
所谓的Trident引擎就是IE的WebBrowser控件。现在很多非IE核心的浏览器用的是WebKit引擎,比如邀游3或搜狗的双核。chrome.safari.
实例一分钟开发浏览器---用webBrowser控件
维基百科。
html
html就是描述网页长什么样子、有什么内容的一个文本。查看网页的描述内容<html>的方式:使用IE浏览器的话,在网页上点击右键,选择"查看源文件"
浏览器兼容性问题:描述文件时一个统一的,但是就像口语翻译一样,
不同的翻译翻译出来的东西也是不一样的。不同浏览器品牌对html的支持是有差异的,所以同一个网页在IE上和firefox上看起来可能长得不一样,最明显的就是以前qq空间上的页面在FireFox上显示就有问题,甚至有的页面在IE6/IE7/IE8上涨的也不一样。因此Web开发过程中的一个重要的也是最头疼的问题就是浏览器的兼容。测试FireFox(简称FF)/Chrome的的浏览器安装各自的软件就可以,测试不同版本的IE可以用IE Tester.
静态页面、动态页面
网站页面分为静态页面和动态页面两种
静态页面:有一个html页面保存在服务器上,浏览器要这个页面的时候服务器就把这个页面文件发给浏览器;
动态页面:服务器上没有浏览器要看的页面,而是服务器动态生成的HTML页面发给浏览器,动态语言的服务器端可以用C#/VB.Net/php/java/c的编写。
编写普通的html页面是和任何后台语言无关的,可以使用dreamweaver/Expression Web(fromPage的改头换面版)等工具写,这些工具是给页面美工用的,开发人员用VisualStudio写Html就够了,不要把精力放到怎么把界面做好看上,正规公司都有专门的页面美工,不正规公司都是偷别人的美工页面,无论是偷别人的页面,还是使用公司美工开发出来的页面,对于开发人员要做的"填模板"工作都是一样的。
2.VS中开发HTML页面
第一个网页
新建Web项目(新建--->ASP.Net Web应用程序),新建html页面(添加->新建项->Web->html页)
查看页面的方式:
切换到"设计"视图,可以在这里查看初步的预览效果,不是很难,可以在"设计"视图从工具箱中拖放控件可视化的设计,设计复杂页面的时候很少直接可视化设计。
在编辑器上点右键,选择"在浏览器中查看",无法进行调试。
将要查看的页面设为起始页(在文件上点击右键“设为起始页"),
然后点击"启动调试",可以调试。
学没有JS、C#代码的时候用"在浏览器中查看",修改页面不用关闭浏览器再打开,刷新就可以。
html页结构说明
所有内容都在<html></html>标签之内;<head></head>内放的事头部信息,是对页面的描述,不会直接显示在页面中,
<head>内的<title>中设置的是页面的标题,<title>只能放在<head>中;<body>是页面的主体,大部分显示内容都定义在这里。
所有页面都应该至少包含这些部分,由于浏览器容错性强,所以即使
不包含也能正常显示,但是最好还是写完全了。
3HTML基础加强1.avi
颜色体系
body标签的bgcolor属性可以设定网页的背景颜色,<body bgcolor="#006699">
#006699这就是HTML中表示颜色的方式,每两个是一组,三组分别就表示R、G、B的值,是16进制表示,关于RGB见备注
可以使用VS内置的颜色选择对话框生成RGB值,也可以用取色器(比如
DebugBar内置的取色器:打开IE,打开DebugBar工具栏,点击吸管图标);HTML还预定义了一些颜色:red,black,white等,比如bgcolor="black".
配色不是一个专业开发人员考虑的,是美工的事情,所以对于颜色的取值不用太操心,知道有这么一回事就行了。
html和xml的联系,区别
格式标签:<p></p>创建段落:<br/>回车,也可以写成<br>,在
HTML中有一些标签可以不关闭,<br>就是一个,这是和XML不同的地方(常考),但是为了遵循XHTML规范,推荐像XML一样严格关闭。
<br/><img src="http://www.mamicode.com/1.gif"/>
属性值:HTML中属性值即可以用单引号括起来,也可以用双引号括起来,甚至不用引号都可以(不推荐),单双要配对。
注释:HTML使用和XML一样的<!--注释内容-->来做注释。
特殊字符:HTML中<,>是有特殊含义的,空格是不会被显示的
(输入一个带空格的字符串看看),所以需要特殊符号,相当于
C#中的‘\n‘转义符。.实用工具,免除记忆。
HTML不把""当成空格,因为HTML中经常有缩进,如果把缩进的空格在浏览器中以空格形式展现的话,排版会很麻烦。
在HTML中大于号用> 小于号用< " " 表示一个空格
为什么<>要用<>代替?就是因为<>有特殊含义,标签的定义。
4.HTML基础加强2.avi
文字格式
<br/>只是回车,<p>是分段,<p>前后会有比较大的空白,而<br/>则没有。
<center>传智播客</center>居中显示
h标签,HTML定义了<h1></h1>到<h6></h6>六个H标签
分别表示不同大小的字体。
<b>a</b>粗体。
<font></font>字体标签,<font color="red">红色</font><font size="30" color="red">红色</font>
URL.超链接
URL:URL表示资源在网络中的地址,比如:
http://127.0.0.1.htm、ftp://192.168.88.128/b.zip。还有URL的概念,比URL大,有的类中使用URI这种说法,可以暂时看成和
URL一样就行。
超级链接:<a href="http://www.rupeng.com"><img src="http://www.rupeng.com/forum/templates/uchome/images/logo.gif/></a>
超链接深入
相对URL:相对URL表示相对于当前文档的资源,"/"表示网站根目录,"../"表示父目录,"../../"表示父目录的父目录,"./"或者不写任何斜线表示相对于当前路径的目录。站内引用最好用相对URL,这样域名改变了、目录改变了都不受影响。<a href="http://www.mamicode.com/a.htm">
<img src="http://www.mamicode.com/a.jpg"/></a>
将<a>的targe属性设定为"_blank"就可以在新窗口中打开超链接
国情:国内的网站很多都是默认在新窗口中打开。
用name属性为<a>起名字:<a name="Last">这里是最后</a>.
这样可以通过<a href="http://www.mamicode.com/#Last">转到平台</a>来跳转到超链接的
部分。
案例:去往评论、回到正文。多敲几个回车。
图片z
<img src="http://www.mamicode.com/a.jpg"/>注意图片是链接的,不是插入的,所以如果
src指向的文件不存在了,就看不了了,alt属性为图片无法显示时的显示文本,鼠标方式去也会悬浮提示"点击查看图片";border属性指定边框,border="0"不显示边框:width/height属性指定图片的显示大小,如果不指定则是图片的原始大小。
最好指定width.height,哪怕是原始尺寸大小,因为如果不指定大小,图片会不占位置,图片下载后才调整大小,会造成页面很乱。
如果指定了 width.height,哪怕是图片没有加载完成,也会先把位置站上。
如果网页上要显示小图(比如缩略图),不要仅仅是把大图设定一下width.height来缩小,因为仍然会下载大图,会使得加载速度很慢。
列表、表格
列表:<ul><li>灌水区</li><li>版务区</li><li>原创贴图</li></ul>
ul代表unordered list.
(*)还有有序的列表<ol></ol>,用的很少
ol代表ordered list
表格:<table></table>为表格,在内部通过<tr>创建行,<tr>内部通过<td>创建单元格。可以将table的border属性设为0来隐藏表格线。
<tr>的属性:align,水平对齐,可选值left/right/center;
valign,垂直对齐,可选值top/middle/bottom.
<td>也有align和valign。
<tr align="right"><td>lucy</td><td>50</td><td align="left">女</td></tr>
子标签默认继承父标签的属性,如果自己单独指定了属性,则会覆盖父标签的属性
(*)还可以使用rowspan/colspan进行单元格的合并,用vs可视化的功能来做就行。
(*)表头的td可以用th代替,这样就会表头粗体、居中显示。
建议将表头用<thead>代替<tr>
<table border="1">
<tr><td>姓名</td><td>年龄</td><td>性别</td></tr>
<tr><td>tom</td><td>20</td><td>男</td></tr>
<tr><td>j<font color="red">i</font>m</td><td>30</td><td>女</td></tr>
</table>
也可以把表头加在thead中
<table border="1">
<thead><tr><td>姓名</td><td>年龄</td><td>性别</td></tr>
<tr><td>tom</td><td>20</td><td>男</td></tr>
<tr><td>j<font color ="red">i</font>m</td><td>30</td><td>女</td></tr></table>
表单
网站表单与填表
<form>标签为表单标签。如果要把数据提交到服务器,则需要将<input>/<testarea>/<select>等表单元素放到form中。
<input>是主要的表单元素,type的可选值:submit(提交按钮)/
buttom(普通按钮)/checkbox(复选框)/file(文件选择框)/
hidden(隐藏字段)/image(图片按钮)/password(密码框)/radio(单选按钮)/reset(重置按钮)/text(文本框).
6.缩略图。avi
7.表单2.avi
submit:点击submit按钮表单就会被提交给服务器,中文IE下默认按钮文本为"提交查询",可以设置value属性修改按钮的显示文本
text:size属性为宽度,value为值,maxlength为可以输入的最大长度,readonly=只读。
<input type="text" readonly/>
只写属性名不写属性值的非标准用法
或者
<input type="text" readonly="readonly"/>(推荐)
这是符合XML的标准用法
checkbox:checked属性表示是否被选中,<input type="checkbox" checked/>
checked/readonly等这种只有一个可选值的属性都可以省略属性值。
或者
《input type="checkbox" checked="checked"/>(推荐)
radio:相同name属性的为一组,不同radio设定不同的value值,这样通过取值顶name的值就可以知道谁被选中了,不用单独的判断。
file:使用file,则form的enctype必须设置为multipart/form-data、method属性为POST
image:使用src属性指定图片的地址,用来实现美化的"登录按钮".
<select>标签
用来创建类似于WinForm中的ComboBox或者ListBox
如果size属性大于1就是ListBox(size的值为显示出来的列表数量),否则就是ComboBox.
<select multiple>或则<select multiple="multiple">推荐,那么就是可以多选的ListBox.
select中的项是<option>,<option>北京</option>还可以设定项的值<option value="http://www.mamicode.com/1">北京</option>.
将一个option设置为选中:<option selected>333</ption>
或者
<option selected="selected">333</option>(推荐)就可以将这个项设定为选择项
如何实现"不选择",添加一个<option value="http://www.mamicode.com/-1">--不选择--
<option>,然后编程判断select选中的值如果是-1就认为是不选择。
select分组选项,可以使用optgroup对数据进行分组,分组本身不会被选择,无论对于下拉列表还是列表框都适用。备注。
8.TextArea.avi
其他标签
<textarea>多行文本(也是表单元素):<textarea>文本
</textarea>,cols,rows属性表示行数和列数。
<label>:在<input type="text">前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用Label则可以,for属性指定要修饰的控件的id,<label for="txt1">asdfad</label>
fieldset: GroupBox效果 将控件划分一个区域,看起来更规整。
<fieldset>
<legend>常用</legend>
<input type="text"/>
</fieldset>
11.练习说明.avi
练习:实现登陆界面,有用户名、密码、验证码(使用普通图片代替)、"记住密码"复选框、登录按钮。使用Table进行布局。
练习2:实现注册页面,分为两个页面,第一个页面是协议显示页面,点击"我同意"超链接进入第二个注册页面,填写内容:用户名、密码、重复密码、省份(下拉列表)/性别(男、女、保密三个Radio)、职业(学生、公司职员、其他三个Radio)、爱好(登山、篮球、足球、读书、游泳五个CheckBox) 13.CSS1.avi
层(DIV)、块(Span)
层:<div></div>将内容放到层中,就以将这些内容当成一个整体进行处理,比如整体隐藏、整体移动等。div非常强大和常用。类似于WinForm的Panel.
span;div是将内容放到一个矩形的区块中,会影响布局,而span只是把一段内容定义成一个整体进行操作,但不应该布局、显示。
样式表、CSS
CSS(层叠样式表)是用来美化页面用的,可以对页面元素进行更精细的设置,样式主要描述元素的字体颜色、背景颜色、边框等。CSS主要有元素内联、页面嵌入和外部引用三种使用方式。
CSS是描述元素的皮肤!!!!
元素内联,直接将样式写入元素的style属性中,<input type="text" readonly="readonly" style="background-color #FF00FF"/>,适用于样式没有可复用性的场合。
页面嵌入:在head中加入
<style type="text/css">
input{border-color,Yellow,color Red;}
</style>
表示页面中所有input都是采用指定的样式。适合于样式复用,减小页面体积
外部引用,将css内容写入css后缀的文件
textarea{background;yellow}
然后在页面中引用,在head中加入
<ink type="text/css" rel="Stylesheet" href="http://www.mamicode.com/s1.css"/>
适合于多个页面共享css.
常见样式
css计量单位:css中表示宽度、距离时有多重计量单位:px(像素)30%(百分比)/em(相对单位)等。width:20px.
background-color;Red:背景颜色;color:文本颜色
border-style;solid:边框风格,实线,还有dotted(点)等值;
border-color;边框颜色;border-width:边框宽度。
例子:style="border-color;Red;border-width:1px;border-style;dotted;
display:元素是否显示,可选值none(不显示)、block(显示为块级元素,此元素前后会带有换行符。)、inline(显示为内联元素,元素前后没有换行符)等。
cousor,鼠标在元素上时显示的光标图标,可选值:cursor(默认光标)、pointer(超链接上的手)、text(输入Bean)、wait(忙沙漏)、help(帮助)等。
LI不显示圆点:LIST-STYLE-TYPE:none;一般在li或者ul上
应用:图片:不显示边框,见备注。
17.样式选择器
对于非元素内联的样式需要定义样式选择器。通俗的说就是这个样式适合于哪些元素,三种:标签选择器、class选择器和id选择器。
标签选择器input{border-color;Yellow;color;Red;}
,对于指定的标签采用统一的样式
class选择器,以定义一个命名的样式,然后在用到它的时候设定元素的class属性为样式的名称,还可以同时设定多个class,名称之间加空格
样式名称开头加""
warming{background;Yellow;}
highlight-size-xx-large;cursor help;}
<table><tr class="highlight">aaa</td><td class="warning">bb</td><td class="highlight warning">ccc</td></tr></table>
19CSS选择器2.avi
标签+class选择器
class选择器也可以针对不同的标签,实现同样的样式名对于不同的标签有不同的样式,只要在样式名前加标签名即可。
input.accountno{text-align:right;color:Red;}
label.accountno{font-style:itallc;}
<input class="accountno" type="text" value="http://www.mamicode.com/111111111"/>
<label class="accountno">3333333</label>
id选择器
为指定id的元素设定样式,id前加#
#username
{
font-size:xx-large;
}
<input id="username" type="text" value="http://www.mamicode.com/aaaaaa"/>
style、class可以同时组合使用
<input id="username" class="accountno" style="font-size:xx-large" type="text" value="http://www.mamicode.com/aaaaaaa"/>
关联选择器:
p strong{background-color:Yellow}
表示p标签内的strong标签内的内容使用的样式
<strong>fadsfasdfads</strong>
<p><strong>asdfassd</strong></p>
组和选择器,同时为多个标签设定一个样式
H1,H2,input{background-color;Green}
<h1>nihao</h1>
<input type="text" value="http://www.mamicode.com/test"/>
伪选择器
伪选择器:为标签的不同状态设定不同的样式:
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}