使用VS创建网页
新建Web项目(新建→ASP.Net Web应用程序),新建html页面(添加→新建项→Web→HTML页) 查看页面的方式: 切换到“设计”视图,可以在这里查看初步的预览效果,不是很准,可以在“设计”视图从工具箱中拖放控件可视化的设计,设计复杂页面的时候很少直接可视化设计。 在编辑器上点右键,选择“在浏览器中查看”。无法进行调试。 将要查看的页面设为起始页(在文件上点击右键“设为起始页”),然后点击“启动调试”。可以调试。 学没有JS、C#代码的时候用“在浏览器中查看”。修改页面不用关闭浏览器再打开,刷新就可以。 自动提示快速完成页面,结束标签<自动补全,Ctrl+J自动提示。
什么是浏览器?
浏览器就是接收浏览者的操作(打开一个网址、点击一个链接、点击一个按钮),然后帮浏览者去Web服务器请求网页内容(HTML格式返回),然后展现成人眼能够看得懂的可视化页面的软件。
IE==浏览器?IE是浏览器的一种,还有Netscape 、FireFox、Opera、Chrome等,注意遨游(Maxthon)、世界之窗、搜狗浏览器、360浏览器等并不是一种独立于IE的浏览器,其内核还是IE的内核,只不过换了一个外壳而已,所以用遨游的不能嘲笑用IE的,否则就露怯了。试着用WebBrowser控件自己开发一个浏览器
所谓的Trident 引擎就是IE的WebBrowser控件。现在很多非IE核心的浏览器用的是WebKit引擎,比如遨游3或搜狗的双核、Chrome、Safari。
装IE Collection,用里面的IE6讲课,速度非常快,在浏览方式中将IE6设为默认就可以。但是不能调试。
浏览器兼容性
浏览器兼容性问题:描述文件是一个统一的,但是就像口语翻译一样,不同的翻译翻译出来的东西也是不一样的。不同浏览器品牌对HTML的支持是有差异的,所以同一个网页在IE上和FireFox上看起来可能长得不一样,最明显的就是以前QQ空间上的页面在FireFox上显示就有问题,甚至有的页面在IE6、IE7、IE8上长的也不一样。因此Web开发过程中的一个重要的也是最头疼的问题就是浏览器的兼容。测试FireFox(简称FF)、Chrome等浏览器安装各自的软件就可以,测试不同版本的IE可以用IETester
最初原因就是Web刚起步的时候没有一个统一的HTML标准,后来虽然有了标准的W3C组织提出的HTML标准,但是各个浏览器厂商还是各自为政,没有完全遵守这个标准。
HTML和XML的联系、区别
HTML描述文本长什么样的
XML 描述存的什么数据
XHTML可扩展超文本置标语言(eXtensible HyperText Markup Language,XHTML)
DHTML 是Dynamic HTML的简称,就是动态的html。 HTML、样式表和JavaScript 的组合
格式标签:<p></p>创建段落;<br />回车,也可以写成<br>,在HTML中有一些标签可以不关闭,<br>就是一个,这是和XML不同的地方(常考),但是为了遵循XHTML规范,推荐像XML一样严格关闭。<br/><img src="1.gif"/>
属性值:HTML中属性值即可以用单引号括起来、也可以用双引号括起来、甚至不用引号都可以(不推荐),单双要配对。
注释:HTML使用和XML一样的<!--注释内容-->来做注释。
从HTML到XHTML过渡的变化比较小,主要是为了适应XML。最大的变化在于文档必须是良构的,所有标签必须闭合,也就是说开始标签要有相应的结束标签。另外,XHTML中所有的标签必须小写。而按照HTML 2.0以来的传统,很多人都是将标签大写,这点两者的差异显著。在XHTML中,所有的参数值,包括数字,必须用双引号括起来(而在SGML和HTML中,引号不是必须的,当内容只是数字、字母及其它允许的特殊字符时,可以不用引号)。所有元素,包括空元素,比如img、br等,也都必须闭合,实现的方式是在开始标签末尾加入斜扛,比如<img … /> 、<br />。省略参数,比如<option selected>,也不允许,必须用<option selected="selected">
静态页面、动态页面(*)
网站页面分为静态页面和动态页面两种
静态页面:没有实现任何功能的网页,有一个html页面文件保存在服务器上,浏览器要这个页面的时候服务器就把这个页面文件发给浏览器;
动态页面:实现了具体的功能。服务器上没有浏览者要看的页面,而是服务器动态生成的HTML页面发给浏览器,动态语言的服务器端可以用C#、VB.Net、PHP、Java、C等编写。
Div、Span
层:<div></div>将内容放到层中,就以将这些内容当成一个整体进行处理,比如整体隐藏、整体移动等。div非常强大和常用。类似于WinForm的Panel。
span:div是将内容放到一个矩形的区块中,会影响布局,而span只是把一段内容定义成一个整体进行操作,但不影响布局、显示。
层内文字连续英文不换行的问题,word-break:break-all;
溢出处理。overflow:scroll,overflow:hide
样式表、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中加入 <link type="text/css" rel="Stylesheet" href="s1.css" /> 适合于多个页面共享css。
推荐把尽可能多的样式写到单独的css文件中,这样可以复用,美工人员和开发人员很好的分工。 只有页面特有的样式才写到<style>中 只有元素特有的样式才写到元素的style属性中。 如果不同级别的样式有冲突,详细级别、子元素的会覆盖更高级别、父元素的。就近原则
常见样式
css计量单位:css中表示宽度、距离时有多种计量单位:px(像素)、30%(百分比)、em(相对单位)等。20px。
background-color:Red;背景颜色;color:文本颜色 复合样式 background border
border-style:solid;边框风格,实线solid(默认是没有),还有dotted(点)等值;border-color:边框颜色;border-width:边框宽度(默认是0)。例子:style="border-color:Red;border-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上
盒子模型
3种样式表的用法 (就近原则) 样式表常用属性
样式选择器
对于非元素内联的样式需要定义样式选择器,通俗的说就是这个样式适合于哪些元素,三种:标签选择器、class选择器和id选择器。 标签选择器 input{border-color:Yellow;color:Red;},对于指定的标签采用统一的样式 class选择器,以定义一个命名的样式,然后在用到它的时候设定元素的class属性为样式的名称,还可以同时设定多个class,名称之间加空格
样式名称开头加“.” .warning{background:Yellow;} .highlight{font-size:xx-large;cursor:help;} <table><tr><td class="highlight">aaa</td><td class="warning">bb</td><td class="highlight warning">ccc</td></tr></table> 同一个标签可以应用多个类选择器
.warning { background:Yellow; } .highlight { font-size:xx-large; cursor:help; } <table> <tr><td class="highlight">aaa</td><td class="warning">bb</td><td class="highlight warning">ccc</td></tr> </table>
标签+class选择器
class选择器也可以针对不同的标签,实现同样的样式名对于不同的标签有不同的样式,只要在样式名前加标签名即可。 input.accountno{text-align:right;color:Red;} label.accountno{font-style:italic;} <input class="accountno" type="text" value="111111111111111" /> <label class="accountno">333333333333333333</label>
input.accountno { text-align:right; color:Red; } label.accountno { font-style:italic; } <input class="accountno" type="text" value="111111111111111" /> <label class="accountno">333333333333333333</label>
id选择器
为指定id的元素设定样式,id前加# #username { font-size:xx-large; } <input id="username" type="text" value="aaaaaaaaaaaa" /> style、class可以同时组合使用 <input id="username" class="accountno" style="font-size:xx-large" type="text" value="aaaaaaaaaaaa" />
包含选择器:
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" />
伪选择器
伪选择器:为标签的不同状态设定不同的样式:
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表示超链接不显示下划线。
A:visited { TEXT-DECORATION: none } A:active { TEXT-DECORATION: none } A:link { TEXT-DECORATION: none } A:hover { TEXT-DECORATION: underline }
细边框表格
设置了表格的border=“1px” 因为表格边线有重叠,所以表格的边线显示比较粗。可以使用css去重重叠
one 使用css 先给Table加上1px的border-top,border-left 再给td加上1px的border-right,border-bottom Two border-collapse:collapse;
使用ul和li制作横向和纵向菜单
网页布局
框架布局 表格布局 DIV+CSS布局
Frameset 框架页里不能有body <frameset rows="30%,70%" > <frame src="top.htm" noresize/> <frameset cols="20%,80%"> <frame src="left.htm" noresize/> <frame src="main.htm" noresize/> </frameset> </frameset> iframe <iframe src="iframe.htm" name="0" width="0" height="0"></iframe>
Div+CSS布局
网页布局就是“这块内容显示在左边,那两块内容并排显示,那块内容漂浮在页面上”。
不要使用<table>进行布局,因为:
table可能会在所有tr、td加载完成以后才显示,所以加载完成之前界面是一片空白;
用table布局会将布局方式写在html中,违反了“语义性”原则;
用table会影响搜索引擎的抓取,不利于SEO。
因此Table用来表达真实表格状数据的东西,布局用Div(层)+Css来做,Div用来圈定元素,CSS用来定义元素的位置。
Div+CSS就是将要布局的内容用<div>切成块,然后使用css描述每个块的大小、位置等。
布局最重要的一个属性就是float,查看此文档的描述。 初学不用研究太深,能读懂、会用就可以,备注有很多案例。
http://www.blueidea.com/tech/site/2006/3574.asp Div+CSS布局:http://www.aa25.cn/layout/ Div+CSS布局: 960.gs 案例:顶部菜单 <style type="text/css"> #nav ul { list-style-type:none; } #nav ul li { float:left; margin:0 10px; } .menuSeparator {1px;height:18px;background:Red} </style> <div id="nav"> <ul> <li><a href="http://www.itcast.cn">传智播客</a></li> <li class="menuSeparator"></li> <li><a href="http://www.rupeng.com">如鹏网</a></li> <li class="menuSeparator"></li> <li><a href="http://www.google.com">谷歌</a></li> </ul> </div> li中的项横排显示是float:left;的作用,margin:0 10px;的作用是不让各个项之间紧挨着。项之间的分割竖线是用一个宽度为1,高度为18的红色背景的li做的。
文档流
文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素。
position:absolute;绝对定位,
即完全脱离文档流, 相对于position属性非static值的最近父级元素进行偏移
position:fixed;固定定位,
即完全脱离文档流, 相对于视区进行偏移.
position:relative;相对定位, 这个属性值保持对象所在文档流中的位置,相对于元素在文档流中位置进行偏移. 但保留原占位.可以设置top, left, right, bottom定位 position:static; 默认值 文档流
案例,网页右下角的广告图片(假冒QQ消息) IE6不支持position: fixed; 使用资源 51xp.gif <style type="text/css"> #jb51_yxj { position: fixed; background-color: #fff; 250px; bottom: 0px; overflow: hidden; right: 0px; } </style> 页面中插入多个回车,以出现滚动条: <div id="jb51_yxj"> <img src="51xp.gif" /> </div>