主要工做,作页面。PC端的网站、移动APP、小游戏、小程序css
H5是HTML语言的简称,是HTML语言的第五个版本html
web标准:结构标准 表现标准 行为标准前端
HTML 指的是超文本标记语言 (Hyper Text Markup Language)css3
XHTML指可扩展超文本标记语言(标识语言)(EXtensible HyperText Markup Language)。“超文本”就是指页面内能够包含图片、连接,甚至音乐、程序等非文字元素。web
HTML5指的是HTML的第五次重大修改(第5个版本)canvas
1.XHTML 元素必须被正确地嵌套。 XHTML是HTML的严格模式。小程序
2.XHTML 元素必须被关闭。浏览器
3.标签名必须用小写字母。缓存
4.XHTML 文档必须拥有根元素。微信
定义文档类型,让浏览器解析器知道应该用哪一个规范来解析文档。<!DOCTYPE>声明必须在 HTML 文档 的第一行,这并非一个 HTML 标签。
标准模式(Standards mode)以浏览器支持的最高标准运行;混杂模式(Quirks mode)中页面是一种比较宽松的向后兼容的方式显示。
一共有三种类型,分别是:
特色:自上而下排列的,能够设置宽和高,独占一行h1-h六、p、ul、li、ol、dl、dt、dd、form、 table。。。
特色:横向排列的,不能设置宽和高,大小是由内容撑开的 span、font、b、strong、em、i、 a。。。
特色:横向排列的,能够设置宽和高 img、全部的input、select、textarea。。。
<video src="video/mov_bbb.mp4" controls="controls"></video>
source能够有多个,若是当前浏览器不支持此格式的视频,有其余的格式作备用 支持的视频格式:mp四、ogg(ogv)、webm scr表示路径 controls 播放控件 autoplay自动播放 loop循环播放 poster 视频封面 muted 静音 在实际的开发中,须要本身给设定样式 复制代码
<audio src="music/金志文 - 夏洛特烦恼.mp3" controls="controls" autoplay="autoplay" loop="loop"></audio>
属性跟video差很少... 复制代码
datalist:提供一个事先定义好的列表,经过id与input关联,当在input内输入时,用户将会看到一个下 拉列表供选择
<input list="sd"/> <datalist id="sd"> <option value="宝马">宝马</option> <option value="奔驰">奔驰</option> </datalist> 复制代码
WebSocket SharedWorker
也能够调用 localstorge、cookies 等本地存储方式。 localstorge 在另外一个浏览上下文里被添加、修改或删除时,它都会触发一个事件,咱们经过监听事件,控制它的值来进行页面信息通讯。
注意:Safari 在无痕模式下设置 localstorge 值时会抛出QuotaExceededError 的异常
css就是层叠样式表,是web标准的表现标准语言,对网页信息的显示的控制 层叠,对于样式表来讲就是优先级的问题,选择器是权重大小
内部样式表包含在 style 标签内,一个 style 标签就表示一个内部样式表。
而经过标签的 style 属性定义的样式属性就不是样式表。若是一个网页文档中包含多个 style 标签,就表示该文档包含了多个内部样式表。
例如:
<style> 选择器{属性:属性值;} </style> 复制代码
若是 CSS 样式被放置在网页文档外部的文件中,则称为外部样式表,实际上,外部样式表也就是一个文本文件,扩展名为.css。而后须要使用的时候,导入html文件便可。
例如:
<link rel="stylesheet" type="text/css" href=""/>
<style> @import url(); </style> 复制代码
两种引入方式的区别:
在标签内部的style属性里面写
内联样式表的优先级最高,内部样式表和外部样式表的优先级和书写的顺序有关。 后写的会把前面的相同属性覆盖掉,其余属性依旧会继承
经过html的标签名进行选择,例如:p{}
经过html中标签的class属性进行选择,例如:
html:<div class="div1"></div>
css: .div1{属性:属性值;属性:属性值} class选择器通常给css使用,id选择器留给js使用. 标签的一个class能够取多个名 <div class="div1 big">这是猴子</div> 复制代码
经过html中标签的id属性进行选择,例如:
<div id="top"></div> css: #top{属性:属性值;属性:属性值} 复制代码
选择全部的标签,通常用来清除内外边距,重置样式。
/*重置样式*/ *{margin:0;padding:0;} a{text-decoration:none;} li{list-style:none;} 复制代码
选择器之间用空格隔开。修改选择器1下的全部选择器2
选择符1 选择符2{属性:属性值;}
伪类选择器使用时须要按照上面的顺序书写,以避免发生错误。 不要给其余标签使用除了hover之外的伪类选择器
伪对象选择器有::after、::before、::first-letter、::first-line,伪对象选择符也称为伪元素选择器----可让咱们把一个元素当作两个来使用。
div::after{content:url(logo.jpg);}
div::after{content:"文本内容";} 复制代码
div::before{content:"放在前面的内容"}
复制代码
::first-letter定义对象内第一个字符的样式。(该伪元素只能用于块级元素)
::first-line定义对象内第一行的样式。该伪元素只能用于块级元素。
ie6如下版本不支持伪对象选择符
选择器以逗号隔开,能够同时选中多个,例如
//多个选择器有相一样式的时候,用群组选择器,合并为一组 div,p,span{color:red;} 复制代码
上面已经说过,css是层叠样式表,有优先级。权重越大的样式的优先级越高,css权重以四位数表示分别以下:
1.序列选择器(同级别)
2.同类型,能够被隔开
input[name]{ width: 200px; height: 50px; } input[id]{ border: 1px solid red; } 复制代码
input[type="text"]{
border: 1px solid red; } input[type="tel"]{ border: 1px solid blue; } 复制代码
a[href^="#"]{
background-color: red; } 复制代码
a[title$="叫"]{
background-color: orange; } 复制代码
a[href*="#"]{
background-color: red; } 复制代码
就是网页的正常排版顺序 --- 元素排序方式根据元素类型来的
一个元素设置了float属性,就会变成浮动流,不遵循标准流的规则
一个元素若是设置了浮动,再也不遵循标准流中的规则,它看起来就像从标准流中删除了同样,原先 在标准流的中位置会发生改变
浮动的元素对标准流元素原本不占位了,但文字却不能到浮动的元素的位置,所以 会出现文本环绕现象
高度塌陷就是若是没有给父元素设置高度而但愿父元素高度自适应的时候,若是给子元素设置了浮动, 会发生高度塌陷。
在标准流中子元素能够撑开容器的高度,可是浮动后,脱离了标准流,子元素撑不开容器的高度了,把 这种现象叫高度塌陷。
高度塌陷会引发元素重叠。
清除浮动:清除浮动的负面影响
注意点:并非只要设置了浮动就要必须清除,只有在发生高度塌陷和元素重叠时才须要清除
清除浮动的方法:
一、给父元素设置overflow:hidden
overflow:hidden本来意思是文本溢出隐藏,有清除浮动的功能
二、使用空元素(空盒子)的方法
在浮动的子元素的同级下增长一个空(div)的元素
这个空的元素不能有任何其余样式,再给空元素设置clear:both/left/right/none;
三、万能清除法
定义一个类名,使用伪元素:after,并把类名赋给浮动元素的父级元素
.clear:after{
display:block; clear:both; content:"."; visibility:hidden; height:0; } .clear{ //兼容ie浏览器 zoom:1; } 复制代码
盒模型是css布局的基石,决定了网页元素如何显示以及元素相互之间的关系,盒模型是一种形象的称呼,在css里面规定了全部的标签都有一个盒模型。
盒模型组成:margin(边界、外边距)、padding(内边距、填充、补白)、border(边框)、 content(内容---width和height)
盒模型有如下两种:
w3c标准盒模型
盒模型的宽度 = 左右margin + 左右padding + 左右border + width(内容)
IE怪异盒模型
盒模型的宽度 = 左右margin + width(内容)--- 包含了padding和border
区别:
标准盒模型和怪异盒模型的区别在于计算方式的不一样,怪异盒模型的宽度在计算时包含了padding和border
设置怪异盒模型的方法: 在css3里面提供了一个属性,能够把标准盒模型转成怪异盒模型使用
box-sizing:border-box(把标准盒模型转成怪异盒模型)/content-box;(标准盒模型--默认值)
若是但愿所有转成怪异盒模型,在*里面设置box-sizing:border-box;
省略号显示:text-overflow:clip/ellipsis 不显示省略号/显示省略号标记。
单行省略号显示的条件:
.test{
width:200px; white-space:nowrap; overflow: hidden; text-overflow: ellipsis; } 复制代码
在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,能够直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit-line-clamp ;注意:这是一个 不规范的属性(unsupported WebKit property),它没有出如今 CSS 规范草案中。
-webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它须要组合其余的WebKit属性。常见结合属性:
例子:
overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 复制代码
比较靠谱简单的作法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;
例如:
p {
position:relative; line-height:1.4em; /* 3 times the line-height to show 3 lines */ height:4.2em; overflow:hidden; } p::after { content:"..."; font-weight:bold; position:absolute; bottom:0; right:0; padding:0 20px 1px 45px; background:url(/newimg88/2014/09/ellipsis_bg.png) repeat-y; } 复制代码
注意:
用js也能够根据上面的思路去模拟,实现也很简单
语法:position:static(默认值-静态定位) /absolute(绝对定位)/relative(相对定 位)/fixed(固定定位),其也是为了解决布局问题。
所谓的定位其实就是让元素的位置进行移动,给元素设置了position属性后,元素就变成了定位流。
定位属性,必须配合其余值来使用,left、right、top、bottom。
定位元素有参照物。
特色:
相对定位是相对于本身之前在标准流中的位置进行定位的(注意点:相对定位是半脱落状态)
不脱落文档流(标准流)的,占位置(空间)
区分元素类型的(区分是块级元素、内联元素、行内块元素),元素之前是什么类型,设置了相对定位后仍是什么类型
对元素进行微调,主要的做用是配合绝对定位来使用
特色:
脱离文档流的,不占位置的
不区分元素类型
绝对定位是相对于父元素进行定位的,若是父元素不是定位流,元素会往上查找有定位流的元素,找到最上级仍是没有定位流,会相对于body进行定位(相对于祖先元素进行定位的)
特色:
脱落文档流的,不占空间
不区分元素类型
相对于body进行定位的
不会随着滚动条的滚动而滚动
能够相互之间重叠
position: sticky; 粘性定位
粘性定位是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,以后为固定定位。
父元素相对定位
子元素绝对定位
子元素left,right,top,bottom=0
子元素margin:auto;
示例:
html
<div class="transform"><img src="favicon.ico" /></div>
复制代码
css
.transform {
width: 300px; height: 300px; text-align: center; line-height: 300px; background: #90EE90; margin: 0 auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .transform img { width: 50px; height: 50px; vertical-align: middle; } 复制代码
css示例:
.flex{ font-size: 25px; height: 200px; border: 1px solid black; display: flex; align-items: center; justify-content: center; } 复制代码
css示例:
.table-cell { display: table-cell; vertical-align: middle; text-align: center; width: 120px; height: 120px; background: purple; } 复制代码
BFC全称Block Formatting Context ,中文直译为块级格式上下文。它是W3C CSS 2.1 规范中的 一个概念,它决定了元素如何对其内容进行定位,以及与其余元素的关系和相互做用。
特色:
如何触发BFC:
主要应用场景:
两者均为隐藏显示区域。于前者而言,该属性会使对象不可见,但该对象在网页中所占的空间没有改 变;于后者而言,该属性则使对象彻底完全消失
简单的来讲就是个大浏览器使用的内核版本是不同的,有着具备本身的内核。其中不得不说ie六、7了。
做为咱们前端人员来讲ie无疑成为咱们前端开发人员的一大阻碍,有人就说ie是垃圾浏览器,是奇葩浏览器。而为何还会用它呢,那是它在市场上占据着重要地位。
其实在很早之前ie就占据了绝大部分的浏览器市场拥有者霸主地位,以谷歌,火狐为表明的浏览器商家为了争夺市场,从新瓜分浏览器市场这块大的蛋糕,因而就组织起来制定了w3cschool的这样的一套规范来与ie来进行抗衡。就是这样ie浏览器和w3c下的个大浏览器才会有这么多的兼容性问题。
说到这里其实浏览器兼容性缘由很简单那是由于ie先于为w3c诞生。在w3c诞生以前ie就有着本身的的一套执行的标准。之因此以谷歌,火狐为表明的浏览器商家会指定一套属于本身的标准,究其根源是为了争夺市场的占有力。两个字“利益”。
其实ie并无错,咱们不能只看到事物的一面,还要看到实物的本质。用哲学的话来讲,咱们要从感性认识上升到理性认识透过事物的表象抓住事物的本质。能够看到在后来的ie8之后,ie为了在市场上生存下去,只有向w3c妥协。慢慢接近于为w3c的标准
图片默认会给容器撑大3px,给图片display:block,这样图片就会自上而下排列,不横向排列。。
图片并排中间有间隙,给图片左浮动。。
给图片display:block;
img{border:none;}
如何在低版本IE下写出1px的高度?
IE6及如下版本,会出现50%+50%>100%的状况
给右面的元素clear:right;才能解决
子元素的margin-top,被浏览器误认为设置给父元素,致使父元素往下掉。
解决方法:给父元素overflow:hidden;或者让子元素浮动。
以上就是我对css、html的一些总结,但愿能够帮到你们,后期会更新我对JavaScript的一些总结,想持续了解的请关注我公众号
我是monkeysoft,你的【三连】就是monkeysoft创做的最大动力,若是本篇博客有任何错误和建议,欢迎你们留言!
文章持续更新,能够微信搜索 【小猴子的web成长之路】关注公众号第一时间阅读,关注以后后台回复知识体系,更可领取小编精心准备的前端知识体系,将来学习再也不迷茫,更可加入技术群交流讨论。
本文使用 mdnice 排版