首先学习HTML我认为需要搞懂块级元素与行内元素这两个概念
块级元素与行内元素
块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P"。“form"这个块元素比较特殊,它只能用来容纳其他块元素。
你能够把块容器元素div想象成一个个box,或者如果你玩过剪贴文载的话,那就更加容易理解了。我们先把需要的文章从各种报纸、杂志总剪下来。每块剪下来的内容就是一个block。然后我们把这些纸块按照自己的排版意图,用胶水重新贴到一张空白的新纸上。这样就形成了你自己独特的文摘快报了。作为一种技术的延伸,网页布局设计也遵循了同样的模式。.
内联元素(inline element)一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素,常见内联元素“a”。
块元素(block element)和内联元素(inline element)都是html规范中的概念。块元素和内联元素的基本差异是块元素一般都从新行开始。而当加入了css控制以后,块元素和内联元素的这种属性差异就不成为差异了。比如,我们完全可以把内联元素cite加上display:block 这样的属性,让他也有每次都从新行开始的属性。
可变元素的基本概念就是他需要根据上下文关系确定该元素是块元素或者内联元素。可变元素还是属于上述两种元素类别,一旦上下文关系确定了他的类别,他就要遵循块元素或者内联元素的规则限制。大致的元素分类见全文。
块元素(block element)
*address-地址
*blockquote-块引用
*center-居中对齐块
*dir-目录列表
*div-常用块级元素,也是css layout的主要标签
*dl-定义列表
*fieldset-form控制组
*form-交互表单
*h1-h6标题
*hr-水平分隔线
*isindex-input prompt
*menu-菜单列表
*noframes-frames可选内容,(对于不支持frame的浏览器显示此区块内容
*noscript-可选脚本内容(对于不支持script的浏览器显示此内容)
*ol-排序表单
*p-段落
*pre-格式化文本
*table-表格
*ul-非排序列表
内联元素(inline element)
*a-锚点
*abbr-缩写
*acronym-首字
*b-粗体(不推荐)
*bdo-bidi override
*big-大字体
*br-换行
*cite-引用
*code-计算机代码(在引用源码的时候需要)
*dfn-定义字段
*em-强调
*font-字体设定(不推荐)
*i-斜体
*img-图片
*input-输入框
*kbd-定义键盘文本
*label-表格标签
*q-短引用
*s-中划线(不推荐)
*samp-定义范例计算机代码
*select-项目选择
*small-小字体文本
*span-常用内联容器,定义文本内区块
*strike-中划线
*strong-粗体强调
*sub-下标
*sup-上标
*textarea-多行文本输入框
*tt-电传文本
*u-下划线
*var-定义变量
可变元素
可变元素为根据上下文语境决定该元素为块元素或者内联元素。
*applet-java applet
*button-按钮
*del-删除文本
*iframe-inline frame
*ins-插入的文本
*map-图片区块(map)
*object-object对象
*script-客户端脚本
这两个概念在运用CSS样式padding和margin时显得更容易理解一点!
HTML5
html5有哪些新特性、移除了那些元素?
1.拖拽释放(Drag and drop)API
2.语义化更好的内容标签(header,nav,footer,aside,article,section)
3.音频、视频API(audio,video)
4.画布(Canvas)API
5.地理(Geolocation)API
6.本地离线存储
localStorage长期存储数据,浏览器关闭后数据不丢失;sessionStorage的数据在浏览器关闭后自动删除
7.表单控件,calendar、date、time、email、url、search
8.新的技术webworker(多线程处理),websocket,Geolocation,applicationCache(离线应用) WebSocket是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,服务器可以主动传送数据给客户端
WebWorker是运行在后台的JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时web worker在后台运行。
9.移除的元素
纯表现的元素:basefont,big,center,font,s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
HTML5新增27个元素废弃16个元素,按照优先等级划分可以分为结构性元素,级块级元素行内语义性元素和交互性元素
结构性元素
结构性元素主要负责web的上下文结构的定义,确保html的完整性
Section给内容分段在web页面页面应用中,该元素也可以用于区域的章节表述,对网站内容进行分块,通常由内容和标题组成
当一个内容需要定义样式或者通过脚本定义行为时推荐使用div,div关注结构的独立性,而sesction关注内容的独立性,
section的作用是对页面上的内容分块处理,如对文章分段,相邻的section元素的内容应当是相关的,而不是article那样的独立,比如section里面放所有的评论,每条评论放在article 里,
article元素可以看做是特殊的section元素article则更强调独立性,完整性,section更强调相关性,如果一块内容相对来说比较独立,就使用article,如果对一块内容分成几段,就使用section,在h5中,div变成了一个容器,可以对容器进行整体的css套用
使用section时注意,
1.不要将section元素当做设置样式的页面容器应该使用div
2.如果article,aside或者nav元素更符合条件不要使用section
3.不要为没有标题比如h1-6的内容使用section
Article标识文章表示一篇文章的主体内容,可以被外部引用的内容,可以是一篇论坛评论,一段用户评论等,因为article是一段独立的内容,通常一个article有自己header(头部)或footer(底部),当article嵌套使用时,内部的article内容原则上和外部的article内容相关针对该新闻的相关评论就可以使用嵌套article的方式,用来呈现评论的article被包含在整体内容的article元素里面评论的每个人相对来说都是比较独立的,完整的,放在article中,所有评论放在section中,
Header页面主体的头部
Footer页面底部通常在这里会标出网站的一些相关信息,例如,关于我们,法律申明等
Nav导航信息专门用于菜单导航,链接导航的元素,链接到其他页面或者是当前页面的其他部分,一般一组链接就使用nav,具有辅助信息的链接,外层可以嵌套aside
可用于以下场景,
导航条,侧边栏导航,页内导航,翻页操作
级块级元素
级块级元素主要完成web页面区域的划分,确保内容有效分隔,
Aside辅助信息用于表达注记,侧栏,摘要,插入的引用等作为补充主体的内容从一个简单页面显示看,就是一个侧边栏,可以在左边,也可以在右边,从一个页面的局部看,就是摘要用来表示当前页面或文章的附属信息部分,它可以包含与当前页面或主要内容相关的引用,侧边栏,广告,导航条以及其他有别于主要内容的部分,
Aside元素主要有两种用法
1.作为主要内容的附属信息部分,包含在article元素中,可以是当前文章的参考资料或者名词解释等辅助信息
2.作为页面或者站点全局的附属信息部分在article元素之外使用,最典型的形式是侧边栏,其中的内容可以是友情链接,博客中的其他文章列表广告单元等
Figure是对多个元素进行组合并展示的元素,通常与figcaption联合使用,
Code表示一段代码块
行内语义性元素
Progress进度条
Video视频元素,用于支持和实现视频文件的直接播放
Audio音频元素,用于实现音频文件的直接播放
交互性元素
交互性元素主要用于功能性的内容表达,会有一定的内容和数据关联,是各种事件等基础, Detail用来表示一段具体内容默认不显示
以下为详细分类
标记文字
生成内部超链接(相当于锚点)
内部超链接可以把同一文档的另一个元素移入视野需要用到id选择器
如果不对span应用样式,那么span元素中的文本与其他文本不会任何视觉上的差异。尽管如此,上例中的span元素仍然为p元素增加了额外的结构。
可以为span应用id或class属性,这样既可以增加适当的语义,又便于对span应用样式。
可以对同一个元素应用class或id属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class用于元素组(类似的元素,或者可以理解为某一类元素),而id 用于标识单独的唯一的元素。
HTML:
提示:.........
CSS:
p.tip span{
font-weight:bold;
color:#ff9955;
}
组织内容
p-建立段落
div-没有具体含义,为内容建立结构并赋予其含义,通常用的属性,class,id
pre-浏览器使用源文件中的格式显示,不合并空白符,
hr-在H5中是贯穿页面的直线
ol-将将内容组织为列表start属性设定列表首项的编号值,默认首项从1开始type表示编号
类型1十进制,a小写拉丁字母,A大写拉丁字母,i小写罗马字母,I大写罗马字母内容是0个或者多个li
ul-包含0个或者多个li没有局部属性呈现形式由css控制
dl,dt,dd-生成说明列表dl表示说明列表,dt表示说明列表的术语,dd表示说明列表中的定义figure-使用插图,一个独立的内容单元,通常作为一个整体呗文档的主体引用,把它从文档中删除也不会影响文档的意思,figure元素可以包含一个figcaption元素,表示插图的标题
文档分节
h1-h6各级标题
hgroup给标题分组,使低级标题更像高级标题的子标题
section表示文档中的一节,可以明确的生成节并且将其标题分开,通常包含一个或多个段落及一个标题,但是标题不是必须的, 段落内容......标题1
footer添加尾部
nav添加导航区域可以结合ul使用
article代表html文档中一段独立成篇的内容,增加了文档内容的独立性,比如多个的页首,标题,内容,导航,页尾进行独立
aside生成附注栏,用来表示和周边内容稍沾点边的内容,类似书籍或杂志中的侧栏,并非主体一部分,可能是一些背景信息,到相关文章的链接等,
address提供联系信息,在article中表示提供联系信息属于该article的,在body中表示提供的联系信息属于整个文档的.多余标签嵌套使用
details生成详情区域details元素在文档中生成一个区域,用户可以展开它以了解关于某主题的更多详情,details元素通常包含一个summary元素,后者的作用是为该详情区域生成一个说明标签或者标题,详情标题
.......
表格元素
table元素最棒的特性是作者不必操心尺寸的问题,浏览器会保证让列的宽度足以容纳最宽的内容,让行的高度足以容纳最高的单元格,
th表头单元格
tbody,thead,tfoot表示构成表格主体行,不包括表头行(thead)和表脚行(tfoot)
td和th的跨行和跨列
rowspan属性跨多行,属性值为数字
colspan属性跨多列,属性值为数字
headers属性的值可被设置为一个或多个th单元格的id属性值
caption元素可以用来为表格定义一个标题并将表格关联起来
表单大类
Form元素
属性action,method,name,accept-charset,
enctype,制定了浏览器发送服务器的数据采用的编码方式参数值有三个1,application/x-www-form-urlencoded默认的编码方式,不能上传文件multipart/form-data用于将文件长传到服务器,text/plain
autocomplete控制表单自动完成,避免反复输入重复的数据,属性值on/off默认值为on target,指定表单反馈信息的目标显示位置,默认情况下浏览器会用提交表单后服务器反馈的信息替换表单所在的原页面,_blank将反馈信息显示在新窗口或者标签页上,_parent显示在父窗框组中,_self显示在当前窗口(默认)_top显示在顶层窗口,显示在指定窗框中novalidate设置此属性可以不经过输入验证就能提交表单,也可以设置用脑提交表单的button或input元素的formnovalidate属性
Button元素
name,disabled,form,type,value,autofocus
Button设置为submit类型时的元素
form指定按钮关联的表单
formaction覆盖form元素的action属性,另外资费那个表单将要提交的url
formenctype覆盖表单元素的enctype属性
formmethod,formtarget,
formnovalidate覆盖表单的novalidate属性,表名是否执行客户端数据有效性检查
Select元素
属性name,disabled,form,size,autofocus,required
Multiple设置后可以选择多个属性
Optgroup用来在select元素的内容中建立一定的结构,用途是对option元素编组,label属性可以为正组选项提供一个小标题,disabled阻止选项组内任何选项,
Textarea元素
多行文本框,可以输入多行文字
属性form,autofocus,required,placeholder,wrap,maxlength,dirname,readonly,rows,cols,disabled,name Rows和cols属性可以用来设置其大小,wrap有两个值,hard和soft可以用来控制在用户输入文字中插入换行符的方式,其他与input的同名属性用法相同
Output元素
表示计算结果,属性有for关联两个数字输入框进行加减乘除
Keygen元素
生成公开/私有密钥对,这是公开密钥加密技术中的重要功能,提交表单时钙元素会生成一堆新的密钥,公钥被发送到服务器,而私钥则由浏览器保存并保存在密钥仓库
属性challenge,autofocus,name,disabled,form
Keytype属性用来生成密钥对的算法
Challenge用来指定一条与公钥一起发送服务器的密钥管理口令
fieldset元素
对表单元素进行编组,一般用在input元素
Name,form,disabled
legend元素为编组提供标题
为input元素定义标注(标记)。
label元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
使用数据列表
可以将input元素的list属性设置为datalist元素的id属性值,这样用户在文本输入框中输入数据时只需从后以元素提供的一批选项中选择就行了
Datalist元素
可以用来提供一批值,以便用户输入需要的数据,提供给用户输入的值各用一个option元素指定
Option元素
属性disabled,selected,label,value
Label属性为选项设定一条说明信息
Input元素
Input元素为输入数据把关
Name,type,value
autofocus自动聚焦,
disabled禁用input属性,样式变得不能输入,Readonly只读
form
Input和button都有form属性,用来使用表单外的元素,将某个这类元素与并非其祖先元素的form元素挂钩,只需将其form属性设置为相关form的id属性即可
Type的属性值
Text
属性值
Dirname指定元素内容文字方向的名称
List指定为文本框提供建议值的datalist元素,其值为datalist元素的id值
Maxlength设定文本框输入的支付最大数目,也是password类型属性
Pattern指定一个用于输入验证过的正则表达式,也是password类型属性
Placeholder指定关于所需数据类型的提示,也是password类型属性
Readonly将文本框设为只读,也是password类型属性
Required表明用户必须输入一个值,否则无法通过验证,也是password类型属性
Size通过指定文本框可见字符数设定其宽度,也是password类型属性,
Checkbox
Checked初始化勾选,required必须勾选该复选框,否则无法通过验证
Radio属性和复选框的相同
color只能输入颜色信息
data只能输入日期/time只能输入时间/week只能输入年及星期/datetime只能输入带时区信息的时间包括日期和时间/datetime-local输入不带时区信息的时间,包括日期和时间/month 只能输入年和月,时间类型的额外属性list,min,readonly,required,step
number只能输入整数和浮点数/属性
list,min可输入的最小值,max可输入的最大值,readonly,required,step指定上下调节数值的步长
range只能输入指定范围内的数值属性值和number的相同
Radiobutton
将输入限制为一组固定选项中进行选择
email电子邮箱/url只能输入完全限定的url/tel只能输入电话号码三者元素类型的额外属性List,maxlenth,pattern,placeholder,readonly,size,email还有独特的属性multiple表示可以接受多个电子邮箱地址
Search获取搜索用词
Image这类元素生成的按钮显示为一幅图像,点击它可以提交表单,alt提供元素的说明文字,formaction,formenctype,formmethod,formtarget,formnovalidate,height/width以像素为单位设置图像高度与宽度,src图片来源
Hidden隐藏域
File上传文件属性accept指定接受的MIME类型,multiple可以一次性上传多个文件,目前撰写时尚无主流浏览器支持,required必须指定一个值,否则无法通过验证
嵌入内容
img元素
Src,alt,height,width,usemap,ismap
Map元素
我们可以创建一个客户端分区响应图,通过点击某张图片上的不同区域让浏览器导航到不同的url上,这一过程不需要通过服务器的引导,因此需要使用元素上的各个区域以及他们所代表的行为,客户端分区响应图的关键元素是map
Map元素包含多个area元素,他们各自代表了图片上可被点击的一块区域,
Area元素属性,alt,href,target,rel,media,hreflang,type,shape,coords
Href此区域被点击时浏览器应该加载的url,rel描述当前文档与目标文档之间的关系,media 此区域适用于媒介,hreflang目标文档的语言,type目标文档的MIME了类型Shape和coords属性来标明用户可以点击各个图像区域
属性值rect代表矩形区域,coords提供四个方向的数值,,circle代表圆形区域,coords提供三个值,,poly代表多边形(六个值),default默认区域,代表覆盖整张图片shape使用此属性值时,不需要提供coords值
使用img元素的usemap属性时,属性值必须是一个井号串名称引用,意思是一个由#字符开头的字符串,这样就把map与图像关联了,使用ismap属性给图片创建了一个服务器端分区响应图
Iframe元素
嵌入另一张HTML文档
属性src,srcdoc,name,width,height,sandbox,seamless
我们创建一个name属性为myiframe的iframe这样就创建了一个名为myiframe的浏览上下文,我们可以把这个浏览上下文与其他元素(具体指a,form,button,input,base)的target属性结合使用,
Src属性指定iframe一开始应该载入并显示的url而srcdoc属性让你定义一张用于内嵌显示的HTML文档,seamless指示浏览器把iframe的内容显示的更像HTML文档的一个整体组成部分,sandbox属性如果不加任何属性值,那么就会禁用脚本,表单,插件,直线其他浏览上下文的链接属性值有allow启用表单,allow-scripts启用脚本,allow-top-navigation应许链接指向顶层的浏览器上下文,这样就能使用另一个文档替换当前整个文档,或者创建新的标签和窗口,allow-same-origin应许iframe里的内容被视为与文档其余部分拥有同一个来源位置
Object与embed元素
通过插件嵌入内容,作为扩展浏览器能力的一种方式,用于添加插件支持而插件能够处理浏览器不直接支持的内容,他们也可以用来嵌入浏览器能够直接处理的内容,比如图像,
Embed属性src,tyoe,height,width
这是嵌入了一个来自网站上的视频,src指定内容地址,type指定内容的MIME类
型,allowfullscreen属性可以启用全屏观看
Object属性data,type,height,width,usemap,name,form
内容可以是空白或者任意数量的param元素
Object可以添加备用内容,当插件不存在时显示object中的内容
Data指定内容地址,param定义将要传递给插件的参数
Object元素可以替代img元素