HTML:htper text markup language超文本标记(标签)语言
由各种标签组成,用来制作网页,告诉浏览器如何显示页面
w3c:world wide web consortium万维网联盟,制定web技术相关标准和规范的组织,HTML技术hi由w3c制定的标准
两个版本:HTML4.0.1、HTML5.0-----通常H5
官网:http://www.W3shcool.com.cn
HTML文档是以.html或.htm结尾
记事本notepad、sublime、Notepad++、Dreamweaver、VScode、Webstorm等
使用步骤:
使用技巧:
常见的浏览器:IE浏览器微软、chrome谷歌浏览器、fifirefox火狐、safari苹果
浏览器的作用是读取html文件,并以网页的形式来显示
浏览器不会直接显示html标签,而是使用标签来解释网页的内容
一个完整的html标签的组成:
<标签名 属性名="属性值">内容</标签名>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
</head>
<body bgcolor="red" text="blue">
html从入门到精通!
</body>
</html>
12345678910
属性值要用双撇号括起来,一般用双引号
根据标签是否关闭,分为,关闭型和非关闭型
<html></html>
<head></head>
<title></title>
非关闭型:没有结束标签
<meta>
<br>
<h1>....<h6>
根据标签是否独占一行,分为块级标签和行级标签
块级标签:显示为块状,独占一行
<h1>大家好</h1>
<hr>
行级标签:在行内显示,可与其他内容在同一行显示
<span></span>
注释在浏览器中不会显示,是用来标注解释html语句,但通过查看源代码的方式可以看到
语法:
<--注释内容-->
也称为特殊字符,用于显示一些特殊符号,如<>&空格等
语法:
<&实体字符的名称>
在html文档的第一行,使用<!DOCTYPE html>
声明HTML文档的类型用来告诉浏览器页面的文档嘞型,用来制定html版本的规范
目前基本上最常用的html5
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
</html>
12345678910
1.基本标签
1.1 有序列表
ol:ordered listli:list item默认使用阿拉伯数字、从1开始标记,可以通过属性进行修改
· type属性:设置列表的符号标记、取值;数字1(默认)、字母(a或A)、罗马数字(i或I) · start属性:设置起始值,值必须是数字
1.2 无序列表
ul:unodered list
li:list item
默认情况下使用实心圆表作为符号标记,可以通过属性进行修改
· type属性:设置列表的符号标记、取值:disc实心圆(默认)、circle空心圆、square正方形、none不 显示项目符号
1.3 定义列表
dl:definition list
dt:definition title
dd:definition description
1.4 水平线标签
hr:horizontal
常用属性:
· color:颜色
两种方式:
颜色名称:如red、green、blue、white、black、pink、orange等
16进制的RGB表示法:Red、Green、Blue用法:#RRGGBB 每种颜色的取值范值0-255,转换为16 进制00-FF
如: #FF0000 红色 #00FF00绿色 #0000FF蓝色 #FFFFFF白色、#CCCCCC #FF7300桔色
· size:粗细,数值
· width宽度
两种写法:
像素:绝对值(固定值)
百分比:相对值,相对于水平线标签所在父容器宽度的百分比
· align对齐
取值:center居中 left right
1.5图像标签
img:image
常见的图片格式:.jpg .png .gif .bmp
常见的属性:
· src:source指定图片的路径(来源),必选叁数
如果图片与html源代码在同一个文件夹中,可以直接在src中写图片名称即可
习惯上,我们会将多个图片与html代码文档分别放在同一个文件夹project中的不同目录下,此时需要 在src中指定图片的路径为相对路径
路径的分类:
· 相对路径
表示: ./当前路径
…/当前位置的上一级文件夹
提示:…/image
· alt:当图片无法显示时显示的提示信息
· title:当鼠标放到图片上时显示的提示信息
· width和 height:设置图片的宽度和高度
默认图片以原始尺寸显示
如果只设置其中一个,则另一个会按比例缩放
如果同时设置宽和高,可能导致图片变形
两种写法:
像素:绝对值(固定值)
百分比:相对值,相对于父容器的尺寸的百分比
2.其他标签
为了更好语义化
3.头部标签
· meta定义网页的摘要信息,如字符编码,关键词,描述,作者等
· title定义网页的标题
· style定义内容css样式
· link引用外部css样式
· script定义或引用脚本
· base定义基础路径
默认以当前页面文件所在的位置为相对路径参照
4.标签嵌套
一个标签中嵌套另外一个标签
标签不能乱嵌套
浏览器渲染后显示的页面代码与编码时有所不同
chrome浏览器提供的开发工具:帮助开发人员查看和调试页面的
如何打开:
· Elements:从浏览器的角度来看页面,浏览器渲染页面时内部的结构
· console:控制台,显示各种警告和错误信息
· network:查看网络请求信息,浏览器向服务器请求了哪些资源,资源大小,
加载资源所消耗的时间
四、超链接
1.简介
使用超链接可以从一个页面跳转到另外一个页面,实现页面之间导航
当鼠标移动到超链接文本或图片时,鼠标箭头会变成一只小手
超链接有三种类型:
普通链接/页面间的链接,跳转到另一个页面 锚链接:链接到锚点(链接到同一个页面的指定位置) 功能链接:实现特殊功能(发邮件,下载)
2.基本用法
使用 标签来创建超链接
语法格式:
常用属性:
href:链接地址或路径,链接地址
world
链接文本或图片
1 2 3 4 5 1 target:链接打开的位置,取值
路径分类:
绝对路径 以根开始的路径
file:///D:/software/b.html https://www.baidu.com/img/bd_logo1.png
相对路径 相对于当前页面文件所在的路径,不是以根开始的路径 ./ 当前路径 …/ 当前位置上一级目录
3.锚链接
3.1简介
点击链接后跳转到某一个页面的指定位置(锚点anchor)
锚链接的分类:
页面内的锚链接 页面间的锚链接
3.2 页面内的锚链接
步骤:
3.3 页面间的锚链接
4.功能链接
5.URL
5.1 简介
URL:Uniform Resource Locator 统一资源定位器,用来定位资源所在的位置,最常见的就是网址
5.2 组成
一个完整的URL由8个部分组成:
协议:prococol 如 http:超文本传输协议,用来访问WEB网站Hyper text Transfer protocal https:更加安全的协议 SSL安全套接子层 ftp文件传输协议,用来访问服务器上的文件,实现文件的上传和下载File Transfer protocol file:文件协议,用来访问本地文件 主机名hostname服务器地址或服务器Netbios名称,如www.baidu.com ftp://10.255.254.254 端口:port位于主机名的后面,使用冒号进行分隔 不同的协议使用不同的端口,如http使用80端口,https使用的443端口,ftp使用20和21 如果使用的是默认端口,则端口可以省略 如果使用的不是默认端口,则必须指定端口http://59.49.32.213:7070/ 路径:path目标文件所在的路径结构,如:www.baidu.com/img/ 资源resource要访问的目标文件,如bd_logo1.png 查询字符串:query string 也称为参数 在资源后面使用?开头的一组名称/值
链接文本
链接文本
https://www.baidu.com/img/bd_logo1.png?name=tom&age=2&sex=male https://www.w3school.com.cn/html/html_quotation_elements.asp file:///C:/Users/Administrator/Desktop/project/code/09.%E5%B8%B8%E7%94%A8%E6%A0%87%E7%A D%BE3.html http://www.sxgjpx.net/ ftp://10.255.254.253/
1
1
1 2 3
4 5
名称和值之间以=分隔,多个之间用&分隔,如:name=tom&age=2&sex=male 锚点anchor,在资源后面使用#开头的文本,如#6 身份认证authentication,指定身份信息,如:ftp://账户:密码@ftp.bbshh010.com
五、表格
1.简介
表格是一个规则的行列结构,每个表格是由若干行组成,每行由若干个单元格组成
table row column
2.基本结构
2.1 table标签
用来定义表格
常用属性:
border:表格边框 默认为0 width/height:宽度/高度 bordercolor:边框的颜色 align:对齐方式,取值:left(默认) center居中 right居右 bgcolor:背景颜色 background:背景图片 cellspacing间距:单元格与单元格之间的距离 cellpadding边距:单元格中的内容到边界之间的距离
2.2 tr标签
用来定义行:table row
常用属性:
align:水平对齐 取值:left(默认) center right valign垂直对齐 取值:top center bottom bgcolor:背景颜色 background:背景图片
2.3 td标签
用来定义单元格,table data
常用属性:align、valign、bgcolor、background
注意:表格必须是由行组成,行必须由单元格来组成,数据必须放到单元格中
3.合并单元格
合并单元格也称为单元格的跨行跨列
两个属性:
rowspan 设置单元格所跨的行数 colspan 设置单元格所跨的列数
步骤:
六、表单
1.简介
表单是一个包含若干个表单元素的区域,用于获取琐类型的用户数据
表单元素是允许用户在表单输入信息的元素,如文本框、密码框、单选按钮、复选框、下拉列表、按钮等
2.表单结构
2.1表单语法
1
2.2form标签
用来定义表单,可以包含多个表单元素
常用属性:
action:提交数据给谁处理,即处理数据的程序,默认为当前页面 method:提交数据的方式或方法,取值:get(默认),post get和post的区别: get:以查询字符串的形式提交,在地址栏中能看到,长度有限制,不安全 post以表单数据组的形式进行提交,在地址栏中看不到,长度无限制,安全 enctype(encode type)编码类型:提交数据的编码,取值:application/X-www-form-urlencoded(默 认)、multipart/form-data(文件上传)
3.表单元素
大多数的表单元素都是使用 标签来定义的,通过设置属性type来定义不同的表单元素
1
3.1单行文本框
常用属性:
·name名称,很重要,如果没有定义name属性,则该表单元素的数据是无法提交的
·value初始值
·size显示宽度
·maxlength:大字符数,默认是没有限制
·readonly只读:readonly=“readonly”,可简写readonly,即只写属性名
·disabled禁用:disabled=“disabled”, 可简写disabled完全禁用
表单元素被提交的两个条件,1.有name属性2.非disabled
3.2 单选按钮
常用属性:
·name名称:多个radio的name属性必须相同,才能实现互斥(单选)
·value值
·checked:是否被选中,两种状态,选中,未选中 checked=“checked” 简写 checked
3.3 复选框
常用属性与单选按钮radio类似
3.4 文件选择器
常用属性:
·name:名称
·accept设置可选择的文件类型,用来限制上传的文件类型
使用MIME格式字符串对资源类型进行限制
常见的MIME类型:
·纯文本:text/plain text/xml text/html
· 图像:image/png image/jpeg image/gif
4.特殊表单元素
4.1下拉列表
select常用属性:
·name名称
·size行数,同时显示多个选项
·multiple允许同时选择多个
option常用属性:
·value选项值
·selected设置默认选中项
optgroup常用属性:
·label分组的标签
4.2文本域
·name名称
·rows行数
·cols列数
5、其他标签
5.1 label标签
为表单元素提供标签,当选中label标签中的文本内容时会自动将光标切换到与之相关联的表单元素。
常用属性:
·for必须将该属性值设置为与相关联的表单元素的Id属性值相同。
注:几乎所有HTML标签都具有id属性,且id值必须唯一。
5.2 button标签
也表示按钮,与input按钮类似
语法:
1按钮文字或图像
常用属性:
·type按钮的类型,取值: submit(默认)、reset、button
5.3 fieldset和legend标签
fieldset标签,对表单元素进行分组
legend标签,对分组添加标题
七、内嵌框架
1、简介
使用iframe可以在一个页面中引用另一个页面,实现复用、灵活
2、基本用法
语法:
1
常用属性:
· src:引用的页面
· width/height宽度/高度 ,像素或百分比
· frameborder是否显示边框,取值:1(yes) 0(no)—默认
· scrolling是否显示滚动条,取值:yes no auto
· name属性 为框架定义名称
3、在框架中打开链接
1
2
3链接的文本或图像
八、HTML5简介
1、发展
W3C于1992年12月发布了HTML4.0.1标准
W3C于2014年10月发布了HTML5标准
2、特点
· 取消了过时的标签,如font、center等,它们仅具有展示外观的功能
· 增加了一些更具有语义化的标签,如header、footer、aside等
· 增加了一些新功能标签,如canvas、audio、video
· 增加了一些表单控件,如email、date、time、url、search等
· 可以直接在浏览器中绘画(canvas),无需flash
· 增加了本地存储的支持
3、兼容性
http://caniuse.com
提供了各种浏览器版本对HTML5和CSS规范的支持度
九、HTML5新增内容
1、结构相关的标签
用来进行页面结构布局,本身无任何特殊样式,需要使用CSS进行样式设置
· article定义一个独立的内容,完整的文章
· section定义文档的章节、段落
· header文章的头部、页眉、标题
· footer文章的底部、页脚、标注
· aside定义侧边栏
· figure图片区域
· figcaption为图片区域定义标题
· nav定义导航菜单
结构标签只是表明各部分的角色,并无实际的外观样式,与普通div相同
2、语义相关的标签
2.1 mark标签
标注,用来突出显示文本,默认添加黄色背景
2.2 time标签
定义日期和时间,便于搜索引擎智能查找
2.3 details和 summary标签
默认显示summary中的内容,点击后显示details中的内容
注:并不是所有的浏览器都兼容,chrome、opera支持、Firefox、IE浏览器不支持
2.4 meter标签
计数仪,表示度量
常用属性:
· max定义大值,默认为1
· min定义小值,默认为0
· value定义当前值
· high定义限定为高的值
· low定义限定为低的值
· optimum定义佳值
规则:
当value大于high时为绿色
当value在low与high之间时为黄色
当value小于low时为红色
当value小于low时为绿色
当value在low与high之间时为黄色
当value大于high时为红色
2.5 progress标签
进度条,表示运行中的进度
常用属性:
· value定义当前值
· max定义完成的值
3.表单相关
3.1 新增表单元素
新增以下type类型:
· email接收邮箱
· url接收URL
· tel接收电话号码,目前仅在移动设备上有效
· search搜索文框
· number/range接收数字/数字滑块,包含min,max,step属性
· date/month/week/time/datetime日期时间选择器,兼容性不好
· color颜色拾取
作用:
· 具有格式校验的功能
· 可以与移动设备的键盘相关联
3.2新增表单属性
form标签的属性:
· autocomplete是否启动表单的自动完成功能, 取值:on(默认)、off
· novalidate提交表单时不进行校验,默认会进行表单校验
3.3 新增表单元素的属性
新增表单元素属性:input/select/textarea等
· placeholder提示文字
· required是否必填
· autocomplete是否启用该表单元素的自动完成功能
· autofocus设置初始焦点元素
· pattern使用正则表达式(RegExp后面会讲解),进行数据校验
· list使文本元素具有下拉列表的功能,需要配合datalist和option标签一起使用
· form可以将表单元素写在form标签外面,然后通过该属性关联指定的表单
4、多媒体标签
4.1audio标签
在页面中插入音频,不同的浏览器对音频格式的支持不一样
audio常用属性:
· src音频文件的来源
· controls是否显示控制面板,默认不显示
· autoplay是否自动播放,默认不自动播放
· loop是否循环播放
· muted是否静音
· preload是否预加载,取值:none不预加载、auto预加载(默认)、metadata只加载元数据
如果设置了autoplay属性,则该属性无效
可以结合source标签使用,指定多个音频文,浏览器会检测并使用第一个可用的音频文件
4.2 video标签
在页面中插入视频,不同的浏览器对视频格式的支持不一样
用法与audio标签基本相同,增加属性:
· widht/height视频播放器的宽度/高度
· poster在视频加载前显示的图片
<html>
<body>
<tiele>HTML技术</tiele>
</body>
<body>
大家好,欢迎学习html技术!
</body>
</html>1234567
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h271e4v6-1593240920352)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例1.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
</head>
<body text="blue">
标签的组成
<br>
html从入门到精通!
<hr>
<h1>标签的分类</h1>
<hr>
<h2>标签的分类</h2>
<hr>
<h6>标签的分类</h6>
<hr>
<span>哈哈</span>嘿嘿
</body>
</html>1234567891011121314151617181920212223
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jx6zJE1P-1593240920354)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例2.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
图书:<<HTML从入门到精通<<
<hr>
北京 上海 广州
<hr>
在HTML中用<表示<小于号
<hr>
“HTML语言” 或 &qout;HTML语言&qout;
<hr>
版权所有© 2000-2020 高教培训
<hr>
×关闭符号
</body>
</html>123456789101112131415161718192021222324
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuFLl3hm-1593240920355)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例3.png)]
(剩下的下期出)
原文链接:https://blog.csdn.net/WanXuang/article/details/106982782?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160513384519724835852804%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160513384519724835852804&biz_id=&utm_medium=distribute.pc_search_top_result.none-task-code-2~all~top_position~default-1-106982782-12.nonecase&utm_term=html
作者:WanXuang
出处:从CSDN
们先来看一下案例:
在浏览器中输入网址可以看到需要浏览的网页,那这个网页是怎么生成的呢?那我们先了解一下什么是web(互联网总称):Web:web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
Web又分为Web前端和Web后端。
什么又是Web前端和Web后端呢?前端:就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。后端:更多的是与数据库进行交互以处理相应的业务逻辑。我们这里着重介绍web前端相关的知识点。
web前端分为网页设计师、web前端开发工程师。
网页设计师是对网页的架构、色彩负责;网站得做的漂亮,客户满意。主要需要有美术功底,会photoshop等。
web前端开发工程师是负责交互设计的,需要和后台程序猿进行交互设计的配合。需要掌握的有脚本技术javascript、HTML+CSS现下最流行的页面搭建技术,ajax和jquery等。
我们此阶段就是web前端开发工程师。
大家都上过网,都浏览过网页,那什么是网站,什么又是网页,网站或者网页是怎么形成的呢?
网站是用于展示相关内容的网页的集合。
网页是网站中的任何一页面,通常文件扩展名为html、或htm ,那我们要实现一个网页首先需要学习哪些技术呢?那就是HTML,其次是CSS,还有还javascript等一些相关的技术。
我们了解了网站从无到有的过程,总之就是设计要给我们一个设计好的效果,我们需要用相关技术把它生成网页。那我们来学习一下如何生成吧。生成网页要从以下几方面入手学习。
√什么是HTML
√HTML的发展史
√HTML的特点
√HTML的基本组成单位
√HTML的基本结构
√HTML的常用标签
√ HTML4.0及XHMTL1.0及HTML5的基本规范
√HTML4.0及HTML5.0的区别
√ Photoshop的基本使用
一、什么是HTML
HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。也就是说文字、图片、表格、音视频都被看成是文本,这些部分都是用HTML的标签生成的。
二、HTML的发展史
三、HTML的特点
1.简易性
2.可扩展性
3.平台无关
四、HTML的基本组成单位
HTML的基本组成单位-----标签。那什么是标签,标签有那些特点呢?我们一一介绍一下。
标签:“标签”是一些符号,用来区分文档中的不同部分 。
标签的分类
–单标签
–双标签
标签的基本写法
单标签 :某些标签只需单独使用就能完整地表达意思,控制网页效果,这类标签的语法是:
<标签名/>
双标签:标签成对使用,由一个开始标签和一个结束标签构成。开始标签告诉Web浏览器从此处开始执行该标签所代表的功能,而结束标签告诉Web浏览器在这里结束该功能,结束标签的形式是在开始标签前加上一个斜杠。语法:
<标签名></标签名>
标签属性
在单标签和双标签的开始标签里,还可以包含一些属性,以达到个性化的效果。
<标签 属性=""属性="">内容</标签>
标签的组成
标签和标签属性及标签内容组成。
五、HTML的基本结构
了解了以上的知识我们开学习HTML吧。应该那里写HTML呢?在那里运行呢?
HTML的编辑工具 :
HTML的运行环境:
我们可以用这么多的浏览器可以浏览页面,每个浏览器对HTML代码的解析是会有差异的地方的,那我们在写代码的时候要兼容五大主流浏览器(IE、Chrome、FF、Safari 、Opera)。看看这些浏览器的市场占有率吧!
好了开始写HTML吧!首先要先写个HTML的基本结构。
网页的标题、其它的说明信息及不需要在浏览器中显示的内容放在head这对标签中。
在浏览器中需要显示的内容放在body这对标签中。
另外我们在真正写网页时除了以上的标签之外,我们还需要添加其它的标签,比如文档声明,中文编码声明等,为什么加这些呢?因为我们大家都知道浏览器特别多对吧。浏览器对HTML的代码解析不一样,不加文档声明,不同的浏览器会按自己的标准去解析HTML代码!所以我们在HTML最开始的位置加<!DOCTYPE HTML>这句话,每个浏览器都会按着符合标准的HTML代码去解析,说到标准,我们还要知道HTML是应该遵循谁的标准,HTML要遵循W3C标准,那W3C标准又是什么呢?
W3C标准:万维网联盟创建于1994年。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,(W3C)标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。
对应的标准也分三方面:结构化标准语言主要包括HTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布。
另外加中文编码声明,是为了浏览器解析中文时以简体中文形式显示。
那中文编码有那些呢?有UTF-8(用在网页上可以统一页面显示中文简体繁体及其它语言)、GB2312(信息交换用汉字编码字符集)等。完整的HTM基本结构如下:
/面包理想
一转眼已经2018年,前端行业也风风雨雨地走过了10多年,网页布局也从最原始的文档变成了精彩纷呈的交互。当我看到第四代CSS布局技术的时候,在惊叹互联网发展如此突飞猛进的同时,不禁会有一个疑问:CSS经历1.0到3.0的版本变迁,最终又将走向哪里?
今天我们就回顾一下CSS简史和四次布局技术的跃迁。
1.CSS简史
为什么我们需要回顾一下CSS简史呢?
1.了解过去能够更好地预测未来,毕竟太阳底下没有什么新鲜事。
2.相比预测未来,通过了解CSS发展演变趋势,能够科学合理地评判CSS的发展,指导我们学习CSS的核心技术,让我们在有限的精力和时间内学对知识,学好知识。
那是1989年的第一场雪,比1988年来的更早一些,伯纳斯·李(Tim Berners-Lee)以超人的智慧和消耗了前额无数浓密的头发为代价发明了World Wide Web,没有他就没有我们今天互联网相关的工作,也就没有了这个专栏教程,请允许我代表广大前端致以崇高的敬意。我们先一睹大神的风采。
对互联网之父,我只想对他说一句话,有一款洗发水增发效果挺好的,我一直用,你要不要试试?
互联网诞生了以后,最初的网页仅仅是纯文本,但是随着互联网的发展,大家意识到web的原始版本根本就没有提供一种装饰网页的方法。这就好比一个婴儿不会穿着衣服出生一样,孩子大了,总不能裸奔吧?这个时候两个大神提供了解决方案Pei Yaun Wei和Andreesen。
Pei Yaun Wei说,这个好办,我们可以给孩子穿上纸尿裤。
Pei-Yuan Wei在1991年创建图形浏览器 ViolaWWW ,他整合了自己提出的样式语言到自己开发的浏览器中,还期望自己的样式语法最终能成为web关于样式的官方标准。虽然这个目标并未达到,但是他提出的样式语法确实为其它的一些样式语法提供了一些灵感。
Andreesen说,那玩意得换多麻烦,我给孩子画一身衣服吧,当然你懂的,最后Pei Yaun Wei的方案被采用了,但是我们还是看看Andreessen画出来的情况有多乱。
与此同时,Andreessen 在他开发的网景浏览器中进行了不同的尝试。他并没有创建一种分离式的标记语言,而是采取拓展HTML标签的方法来包含非标准化的HTML标签已达到装饰网页的目的。不幸的是,没过多久,网页就失去了所有的语义化并看起来像下面这样混乱:
<MULTICOL COLS="3" GUTTER="25"> <P><FONT SIZE="4" COLOR="RED">This would be some font broken up into columns</FONT></P></MULTICOL>
最终被大家采纳的语言是由Hakon Wium 在 1994年 10月提出的样式语法。它被称为样式层叠表,简称CSS,但是直到1996年的时候,CSS才演变成我们熟悉的样子。
html { margin-left: 2cm; font-family: "Times", serif; }h1 { font-size: 24px; }
然后在1998年5月W3C发表了CSS2,紧接着一个让我们深恶痛觉的浏览器诞生了!对没错,就是你深恶痛绝的那个万能的IE6,2001年微软发布了IE6,不过搞笑的是,IE6最初的出现确实很大程度推动了CSS发展。那时候的网页已经变成跟现在很接近了。
按照常理你肯定会想,后面我就知道了,你不用说了,然后就是CSS3.0了。好吧,如果是我,我也这样想,但是国际友人的脑回路可能跟我们不一样,事实上,CSS3早于1999年已经开始制订,直到2011年6月7日,CSS 3 Color Module终于发布为W3C Recommendation。这个故事告诉我们两件事:
1.w3c这个组织活的真够长,甚至比很多读者年龄都大。
2.不是CSS正式版发布了你才放心使用,如果等到那个时候使用,你的项目可能未曾绽放就枯萎了。
细心的读者可能会问了,CSS3正式版什么时候发布啊?另外CSS4.0什么时候发布?
好吧,我只能告诉你随缘吧……而且没有CSS4.0了,也不会有CSS5.0了。
来我们再看看国际友人的脑回路:
简单地说,就是从CSS3开始,CSS规范就被拆成众多模块(module)单独进行升级,或者将新需求作为一个新模块来立项并进行标准化。因此今后不会再有CSS4、CSS5这种所谓大版本号的变更,有的只是CSS某个模块级别的跃迁。
按照CSS工作组的说法,CSS历史上并没有版本的概念,有的只是“级别”(level)的概念。比如,CSS3其实是CSS Level 3,CSS2是CSS Level 2,而CSS Level 1当然就是CSS1。每个级别都以上一个级别为基础。
大家可能说这个命名好乱啊,这事儿我只想跟你说,你就把CSS工作组当成你女朋友就好了,她开心就好,她说的都是对的,她说啥就是啥……
至于我们,会用就好了。
CSS出现的好处就是让结构和表现分离,可以更灵活的修饰网页,学习也很简单。这里我更想说说它的不足。
1.CSS只有一个全局的命名空间,所以是无法避免出现选择器冲突的。
2.模块化做的不够好,所以造成嵌套和覆盖混乱,容易产生一大堆乱糟糟的样式。
所以现在CSS也在向“模块化、JS化发展”
不过客观地说,CSS的出现确实是互联网里程碑式的进步。
CSS其实就做了两件事:
1.如何布局
2.元素怎么表现
说直白一点就是两件事,一个房子是盖成两室一厅还是三室两厅,另一件事是精装修。
这里大家就会看到如果一个房子180平米隔成1个10平米的主卧170平米的厕所,你再怎么精装修也不会是一个宜居的房间。所以布局在CSS中是极其重要的。与CSS发展简史类似,CSS布局也经历了一代又一代的迭代,才成为当前的样子。
接下来我们就说说CSS布局简史。
2.CSS布局简史
初代table布局
在1997年的时候,David Siegel 改变了web,他自己研究出了一项网页布局技术,利用html中的table元素和gif图片缝合在一起,创造了表格布局技术,之后他就犹如一头猛兽泛滥起来。
优点:布局容易、快捷、兼容性好
缺点:改动不便,需要重新调整,工作量大
由于互联网网站越来越复杂,内容和业务更新频繁,所以table布局是完全不能胜任的,以至于table布局的发明人都说:
“我把炸酱和面倒在了一起,并且没法分开它。”
不过这个真不是我杜撰出来的,原文:
David Siegel:“有人说我毁掉了Web,我回答他们,的确如此。我毁掉了Web是因为我把巧克力和花生酱混合在一起却再也不能把它们分开。我犯下了把结构跟表现混合在一起的错误。”
然后第二代布局技术登场了,
CSS+div布局
CSS+div布局总结起来有三大优点,
1.省时,学习容易,写代码也很容易,很快,效率高
2.省事,如果业务逻辑变了,改起来特别方便快捷
3.省钱,代码量少,省带宽,适合seo
基于这三年不难看出CSS+div布局人畜无害,人见人爱,也就不难解释为什么被广泛地使用成为目前主流的布局技术了。当然了他也有缺点:
1.需要考虑平台兼容性,对制作人员的技能要求较高。
2.在移动端布局显得有些力不从心,如未知宽高float内部元素居中、垂直水平布局、响应式布局等方面略显繁琐。
基于此,第三代布局技术应运而生。
Flex布局
优点:
1.CSS3的布局方式,可以在不使用其他框架的情况下,简便、完整、响应式地实现各种页面布局 2.移动端布局简直太友好
缺点:
兼容性较差,IE浏览器版本在9.0以上,基本要10.0 对于其他浏览器,要求兼容性写法
Flex布局日渐成为移动端主流布局技术,但是它是单一维度的布局,这个我会在专栏后面讲到,有时候也会捉襟见肘,所以目前出现了第四代的布局技术:
grid布局
因为目前大部分浏览器并不支持这种技术,但是它代表了网络发展,这里大家保持关注就好,这里我重点说下它为什么可以称为第四代网络布局技术。首先一个观点大家先记住:
它并不会取代第三代的布局技术,而是颠覆和突破。就好像Flex远比div+CSS布局更方便,但是div+CSS依然有用武之地。
我们说下它的突破之处:
1.flex对标的是float,本质上还是一维布局,这就跟别人开着夏利,你开奔驰都是地面上跑没啥本质区别一样。但是grid升维了,grid是飞机,在地面马路这条线一维之上让人能够思考高度这个维度,以前是汽车一维交通工具(你只能在水平方向一个方向开),飞机是二维(能俯冲了(横向、纵向同时)),所以grid可以说是拓宽了CSS布局的维度。不排除将来会有三维布局的出现。到时候CSS不仅仅能控制横向布局,纵向布局,还可以深度布局(这个要依赖于三维展示的出现,如VR,AR三维立体的展示设备出现)。
2.grid布局里面采用了“可视化布局(template部分,所见即所得)”,这个是颠覆了传统的,写一句代码刷一下浏览器这样的开发方式,不排除以后会出现代码即效果的开发模式。比如你在一个设备上画一个区域,然后画轮播图。
这种方式类似于vc++控件方式,但是更智能,也更友好。谁说不可能呢?大家不要忘了grid布局的来源是早就废弃的table布局。说到这里我多说一句搞笑的微软,frontpage没火,dreamwaver火了,最早提出“canvas”概念的 VML没火,最后html5的canvas火了,连CSS3网格布局也是由微软创建的一个模块 ,最后火起来居然没人认识它。心疼微软一秒钟。
说到这里大家对CSS简史和布局也有所了解了,我们总结下,通过本文你应该学到:
(1)CSS的发展历史。
(2)熟知布局的发展历史,以便对未来布局技术的发展有一个客观的判断,来选择是否学习。
通过本文的学习大家已经对CSS相关基础知识有所了解,接下来我们就开始真正的进入技术的学习,大家是不是迫不及待了呢?
*请认真填写需求信息,我们会在24小时内与您取得联系。