html部分html头部声明DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。标签title就是说这个网页是干什么的,公司名、产品名、功能名等等,全是给浏览器,以方便用户能快速准确得了解到这个网页要介绍的内容。title的特点:title标签只能在head标签内出现;标签内的内容通常在浏览器的标题栏中显示;浏览器中收藏夹内书签的名称是title的内容;title的内容可以方便搜索引擎索引页面;从搜索引擎搜索到的内容的标题往往是网页title的内容;title通常体现了网页的主题内容,所以记得一定要加上。标签元素可提供有关页面的原信息(meta-information),比如针对搜索引擎和更新频率的描述和关键词。位于head标签内,单独出现,必须被正确地关闭meta属性主要非为两组:1)name属性与content属性name属性的值所描述的内容(值)通过content属性表示,便于爬虫查找、分类。其中最重要的是description、keywords和robots。2)http-equiv属性和content属性HTML标签的规范1、所有标签都必须要有相应的结束标签;2、标签与标签的属性都必须使用小写;3、所有标签都必须合理嵌套;4、
标签的alt属性:搜索引擎会比较重视,要充分利用它来放置关键词。它的好处包括:1)获取或设置在图像不可用或当前正在下载且尚未完成的情况下浏览器显示的替换标题;2)搜索引擎把alt属性里的内容当了那个图片的关键词,关键词写得好,图片被搜索到的几率也是非常大的。5、HTML转义字符。HTML常用标签块属性标签(块元素)可以把文档分割为独立的、不同的部分…可定义标题。定义最大的标题,
定义列表项目,是有序列表和无序列表的子标签
定义表格 定义表格行 定义表头 定义表格单元定义段落
换行符 用于为用户输入创建HTML表单行内属性标签(内联元素) 被用来组合文档中的行内元素定义变量,在浏览器中一般会斜体显示把文本定义为强调内容,浏览器一般以斜体显示锚文本,最重要的属性是href,指定连接的目标
是单标签,链接图片,有src和alt属性定义多行文本输入控件,可通过cols和rows属性来规定textarea的尺寸,y也可以用css的 width和height属性来控制。 可创建单选或多选菜单,子标签是select 定义下拉列表中的一个选项,位于select元素内部 用于搜集用户信息。根据不同的tpye属性值,输入字段拥有很多种形式。输入字段可以是文本字段text,复选框 checkbox,掩码后的文本控件,单选按钮radio,按钮button,submit提交,重置reset,空白hidden等等 把文本定义为更强的强调的内容块属性标签特点: 标签默认撑满整行,总是在新的一行开始;高度、行高以及顶底边距都可控制;未设定宽度时,宽度为容器的100%;行内属性标签特点行内属性标签可在一行显示;宽高即顶底边距不可控制;内容撑开宽高;CSS部分css引入方式:1、外部引入:在HTML的head部分,引入外部的CSS文件;(优缺点:使用最广泛,一个css文件可控制多个页面,从整站来讲,减少代码数量,提高加载速度,便于维护。)2、头部引入:在head部分加入标签,CSS代码就写在标签内(style是表明引入文件类型的标签;type是表明文件类型;(优缺点:使用也比较多,加载速度快,一般用于访问量较大的网站或首页,但是整站代码较多,不利于维护)3、在标签内直接写CSS:直接把css标签写在页面标签里;(优缺点:用得比较少,权重最高,代码多,加载慢,不利于维护)4、使用@import引入css(优缺点:适合大型网站css架构)CSS选择器1、标签名选择器:如:p{},即直接使用HTML标签作为选择器,在实际的应用中,我们习惯用它设置标签的一些默认属性或者和后代选择器一起使用;2、类选择器:如 .polaris();前端开发者最常用。特点:(1)可以给不同标签设置同一个类,从而用一条CSS命令控制几个标签,减少代码量,使页面修改简单,易维护、易改版。(2)后台工作人员几乎不会用到有关class的相关设置,不需要跟后台人员之间进行交互;(3)可以通过js等动态改变标签的classname,从而改变整个标签的样式,使前端动态效果实现起来更为容易。命名规范:第一个字符不能使用数字,在Mozilla或firefox中不起作用。3、ID选择器:如:#polaris();在同一个HTML文档中不能出现两个相同的ID名称,也就是说ID具有唯一性。4、后代选择器:如 .polaris span img{},后代选择器实际上是使用多个选择器加上中间的空格来找到具体的要控制的标签。 5、群组选择器:.polaris , span , img{},实际上是对CSS的一种简化写法,是把具有相同CSS样式的不同选择器放在一起,减少代码量。CSS选择器中的属性顺序显示属性:display, list-style, position, float, clear自身属性:width, height, margin, padding,border,background文本属性:color, font, text-decoration, text-align,vertical-align, white-space, content符合浏览器的渲染顺序,最终达到提高执行效率目的CSS优先级所谓优先级是指CSS样式在浏览器中被解析的先后顺序。(1) CSS不同引入方式的优先级:标签内嵌样式 > 头部书写样式 > 外部引用样式 > 浏览器默认样式。(2) CSS选择器的优先级:id > class > tagname.(3) 多个选择器混用时的优先级:例子.a .b c{}和.a c{},它们指向的目标都是c,但是前者的优先级高于后者。 注:当指向同一目标选择器的优先级相同时,后面的优先级大于前面的优先级;当同一个标签中定义有多个class名时,各个类选择器之间的优先级与html中的class名排列无关,而是与css文件中各个类选择器的排列有关。选择器 特殊性(a,b,c,d) Style=”” 1,0,0,0 #wrapper #content {} 0,2,0,0 #content .datePosted {} 0,1,1,0 div#content {} 0,1,0,1 #content p {} 0,1,0,1 #content {} 0,1,0,0 p.comment .dateposted {} 0,0,2,1 div.comment p {} 0,0,1,2 .comment p {} 0,0,1,1 p.comment {} 0,0,1,1 .comment {} 0,0,1,0 div p {} 0,0,0,2 p {} 0,0,0,1 4、利用!important提升优先级:通过在css属性后面标明!important的方法提升该条属性的优先级。被!important注明的css属性具有最高的优先级,是不能被覆盖的。在IE6中!important具有一个BUG,就是同一组CSS属性中,!important是没有作用的。例如: .outer{ color:blue !important; color:red;}在IE6下文字的最终显示效果为红色,!important没有起作用。字体设置语法:font-family:宋体,Arail,Tabhoma,sans-serif;font-size: px | baifenshu | em; (em的值会相对于父元素的字体大小改变。浏览器中默认的文本大小是16像素,所以1em的默认尺寸是16像素,可以通过公式将像素转换为em:px/16=em)font-style: normal | italic(斜体) | oblique(倾斜),通常情况下italic和oblique文本在web浏览器中看上去完全一样。font-weight: normal | bold | bolder | lighter | number;(后两种不常用,只做了解)缩写:font : font-style | font-variant | font-weight | font-size | font-family ; 一般情况下我们不采用简写的形式。color: red | #fff ;text-decoration:none | underline | overline | line-though | blink | inherit ;line-height: normal | length ;文本设置语法:text-indent: px | em ;text-align: left | right | center | justify(两端对齐) ;vertical-align: top | bottom | middle ;word-spacing:px;(改变词之间的距离);letter-spacing:px;(改变字母之间的距离);背景设置background-color:red | #fff;background-img:none | url( ) ;background-repeat: repeat | no-repeat | repeat-x | repeat-y ;background-position: x轴坐标值 y轴坐标值;background-attachment:scroll | fixed ;简写:background:color url() position repeat ;盒模型完整的盒模型是由content(内容)、border(边框)、padding(内边距)、margin(外边距)四部分组成。margin属性:语法:margin-Top | right | bottom | left : px或em ;margin的几种不同写法:(1) .main{margin:10px 20px 10px 20px;}(2) .main{margin:10px 20px ;}这两个值分别设定类名为main的模块的上下、左右的外边距值;(3) .main{margin:10px 20px 10px ;}第一个值设定上外边距,第二个值设定左右外边距,第三个值设定下外边距;(4) .main{margin:10px;}如果就一个值的话,就设定了四个方向的外边距都10px。(5) .main{20px auto;}上下两个方位的外边距为20px;左右两个方位的外边距自动适应居中。margin的使用事项及bug:竖向margin的叠加:如果两块都有margin,margin横向上是加法,但是竖向上会产生叠加现象。上下间距两者之间取其大者生效。但是这仅针对未浮动的元素,如果是浮动元素,上下键的margin仍然会采取加法而不是取其大者。IE6下的横向双倍margin bug: 在特定条件下,IE6浏览器中,横向margin值变成双倍。4个特定条件:(1)元素浮动;(2)元素有横向的margin;(3)元素为块状元素;(4)浏览器为IE6。解决这个问题的办法就是为这个元素定义的CSS最后加上display:inline;行内元素在使用了display:block;使行元素变成块元素,也会触发这个bug。padding属性:语法:padding-top | left | bottom | right: px | em |百分比;padding的几种写法:(1)padding:10px 20px 20px 5px;(2)padding:10px 5px 6px;(3)padding:10px 5px;(4)padding:10px;padding不能用负值,padding-top和padding-bottom不会改变标签的高度。border属性:语法:border-top | left | bottom | right ;border-top:border-top-width | border-top-style | border-top-color; 例如:border-top:1px solid red;border-left:border-top-width | border-top-style | border-top-color;border-bottom:border-top-width | border-top-style | border-top-color;border-right:border-top-width | border-top-style | border-top-color;border-style:solid(实线) | dotted(点化线) | dashed(虚线) | none;border-width:px border-top-width:border-bottom-width:border-left-width:border-right-width:border-color:rgb值或颜色名称;border-top-color:border-right-color:border-bottom-color:border-left-color:css布局 页面布局时主要采用:浮动(float)和定位(position),还有就是不浮动也不定位的正常文档流结构。float属性:语法: float:left | right | none;任何浮动元素自动被设置为一个“块级元素”,这表示它可以设置宽高;float对标签的影响:(1) float对行内属性标签的影响:span、var、em、strong等行内标签默认是不支持宽高设置的,靠内容撑开大小。在float后都能很好的支持width和height属性的设置;(2)float对块属性标签的影响:默认占满行的块属性标签在没有宽高的情况下设置浮动后变成内容撑开宽度,但是同样支持宽高设置。(3)float能很好的解决浏览器之间解析标签时,enter键(标签换行)造成的显示间隙问题。(4)具有float属性的对象在父标签中是不占有空间的,浏览器在解析时这个位置就是空的,下面的内容就会移动到浮动过的对象下面。解决这个兼容性问题的方法有四种:第一 给父标签这是高度;第二 给父标签页设置高度,但是这种方法只适用于高度固定的情况;第三 在父标签的关标签前清除浮动;第四 直接给父标签设置一个“overflow:hidden”,具有清除内部浮动的作用。清浮动的方法:选择清浮动位置时应注意以下:1、清浮动一定要在浮动标签完成浮动布局以后添加,否则会影响到浮动标签布局;2、清除浮动必须与前面的标签属于同级关系。①clear属性定义了元素某个方向上不允许出现浮动元素:none(允许两边都可以有浮动对象)/left(…)/right(不允许右边有浮动对象)/both(不允许有浮动对象);②空标签清除浮动:在HTML页面中加入一个空标签用来清除浮动。HTML:
CSS:.clear{clear:both;hegiht:0;overflow:hidden;}clear:both;是清除所有浮动;height:0;overflow:hidden;是用来改变IE6下标签有默认的低于10px的行高时将以10px的高度显示的bug。但是空标签清浮动会增加多余的代码。③overflow:在需要清除浮动的腹肌标签中加入overflow即可,在IE6中不认识此属性则加入zoom:1;或者height:1%;css样式改为:.out{overflow:auto;zoom:1;}该属性对于父标签设置的高度小于子标签时,IE6/7、遨游则以下拉框形式出现,而火狐、谷歌、欧鹏、IE8会将子标签超出部分隐藏掉。overflow:visible属性只能对IE6/7、遨游起作用,对火狐、谷歌、欧鹏、IE8无清浮作用。overflow:visible(不剪切内容也不添加滚动条)/auto(是body对象和textarea的默认值,在需要时剪切内容并添加滚动条)/hidden(超出部分隐藏)/scroll(总是显示滚动条);④after清浮动:css样式为:.out{zoom:1;}/*==forIE6/7Maxthon2==*/.outer:after{clear:both;content:'';visible:hidden;display:block;}/*==forFF/chrome/opera/IE8==*/其中clear:both;只清除所有浮动;content:'';display:block;对于FF/chrome/opera/IE8不能缺少,content()可以取空值。⑤子标签浮动时,给父标签浮动⑥下一标签直接清浮动:兄弟标签浮动时,下一标签直接写入清除clear:both;就可以。⑦使用position:absolute;清除浮动。clear属性语法:clear: none | left | right |both ;none:允许两边都可以有浮动对象;both:不允许有浮动对象;left:不允许左边有浮动对象;right :不允许右边有浮动对象;overflow属性:规定了当内容溢出元素框时的样式。语法:overflow:visible | auto | hidden | scroll ;visible:不见且内容也不添加滚动条;auto:是body和textarea的默认值,在需要时剪切内容并添加滚动条;hidden:超出部分隐藏;scroll:总是显示滚动条。相关属性:overflow-x:visble | auto | hidden | scroll ; overflow-x:visble | auto | hidden | scroll ;display属性: display:block | none | inline |table ;display:该元素以块属性显示;none:此元素不会被显示;inline:以行内属性显示;table:此元素会作为块级表格来显示(类似定义最大的标题,定义最小的标题
定义有序列表,必须嵌套
换行符