h5+c3

W3C盒子模型和ie盒子模型

文档加上的话,所有浏览器都按照W3C的盒子模型,否则ie会按照ie的盒子模型,它的content包括了padding border

box-sizing: content-box/border-box

text-shadow文字阴影

		/*
四个参数: x, y, blur(模糊程度) color
如果有多个阴影, 用逗号隔开
*/
text-shadow: -1px -1px 0px white, 1px 1px 0px black;

box-shadow盒子阴影

		/*
1. x, y, blur(模糊程度), 阴影的缩放, 内阴影或外阴影
2. 内外阴影只有一个参数inset,默认就是外阴影
*/
box-shadow: 0px 0px 10px 10px grey inset;//内阴影 box-shadow: 0px 0px 10px 10px grey; //外阴影

linear-gradient 线性渐变

/* 设置渐变 */
/* 默认从上往下发生渐变, 颜色是平均分布的 */
/* background: linear-gradient(red, yellow, steelblue, cyan); */
/* 可以在颜色后面设置颜色的百分比 */
/* background: linear-gradient(red 50%, yellow 70%, steelblue, cyan); */
/* 设置颜色的角度 */
/* background: linear-gradient(90deg,red, yellow, steelblue, cyan); */
background: linear-gradient(to bottom right, red , blue); /* 标准的语法

radial-gradient 径向渐变

/* linear: 线性的, radial: 径向的, gradient: 渐变, ellipse:椭圆 */
/* 半径写在at的前面, 超出半径的区域用最外面的颜色来填充 */
/* background: radial-gradient(100px at left bottom, red, yellow, steelblue); */ /* 直接指定圆心的坐标 */
/* 径向渐变的总结: 半径 at 圆心点, 颜色。。。 */
background: radial-gradient(100px at 20% 20%, red, yellow, steelblue);
/* 椭圆 */
background: radial-gradient(100px 50px at 20% 20% , red, yellow, steelblue);
background: radial-gradient(ellipse closest-side at 30px 50px, red, blue);

border-radius

/* 单独设置某个角: 如果设一个圆角,只需一个参数,如果设椭圆角,需要两个参数,中间用空格隔开 */
border-top-left-radius: 30px 60px;
/* 所有的x和所有的y 中间用 / 隔开*/
border-radius: 30px 30px 30px 30px/60px 60px 60px 60px;
/*复合写法,只写一, 二, 三对分别代表什么意思*/
/*如果只写一对参数: 对所有的解生效;写两对: 第一对对left,top和right, bottom生效,第二对对right top, left bottom生效;如果写三对, 第一对对left top生效, 第二对对right top, left bottom 生效, 第三对对 right bottom生效*/
border-radius: 30px 80px/ 60px 80px;

background-position & background-size

/* 如果需要设置背景图片的大小,必须指定其位置,大小永远写在位置的后面,用 / 隔开  */
background: url("./img/dog3.jpg") no-repeat center center;
/* 设置背景图片位置, 用得不是很多 */
background: url("./img/dog3.jpg") no-repeat 100px 100px/200px 150px;

多背景实现

background:
url("./img/bg1.png") no-repeat top left,
url("./img/bg2.png") no-repeat top right,
url("./img/bg4.png") no-repeat bottom left,
url("./img/bg3.png") no-repeat bottom right,
url("./img/fox2.jpg") no-repeat 112px 83px/365px 258px;
;

transform 变换

li:nth-child(2) {
/* 变换只会影响到当前元素,不会影响到其它元素, 在动画处理用得比较多 */
transform: scale(0.5);
} li:nth-child(3) {
transform: translate(100px, 200px)
} li:nth-child(4) {
transform: rotate(45deg);
} li:nth-child(5) {
transform: skew(45deg);
}

transform-origin 变换中心点

transform-origin: left top;

改变三个状态

transform: translate(1400px, -800px) scale(0.2) rotate(45deg);

transform-style 打开3d效果

/* 打开3d效果 */
transform-style: preserve-3d;

perspective 近大远小(父盒子)

如果要对某个元素实现近大远小的效果,就需要对其父元素设置perspective的属性, 越小, 效果越明显

perspective: 500px;

动画

/* 应用动画 */
/* forwards可以保存动画结束之后的状态 */
/* infinite 动画执行无限次 */ animation: name duration timing-function delay iteration-count direction; animation:rider-shake 0.5s 4, rider-go 4s 2s forwards; @keyframes rider-go {
/* from如果没有定义, 它就是初始状态,它就可以省略 */
from { } to {
transform: translateX(-1000px);
}
} @keyframes rider-shake {
/* 此句可以不写 */
0% {
/* 如果零秒是原始状态,可以不写 */
}
25% {
bottom: 21%;
} 75% {
bottom: 19%;
} /* 引句也可不写 */
100% {
/* 如果动画还原时和原始状态一致,也可以不写 */
}
}

分布执行动画

animation: changeBg 0.5s steps(11) infinite, swim 5s infinite forwards;

兼容ie8以下的h5写法

<!--[if lte IE 8]>
<script src="./js/html5shiv.js"></script>
<![endif]-->

操作类名

classList:

// 给某个元素添加一个类

document.body.classList.add("light");

// 移除某个元素的某个类

document.body.classList.remove("night");

// 切换类, 点一次删除, 再点一次添加, 轮换

document.body.classList.toggle("night");

// 判断是否拥有某个类

var isopen = document.body.classList.contains("light");

拖拽事件


<h3>从这个盒子</h3>
<div class="from">
<div class="move" draggable="true"></div>
</div>
<h3>到这个盒子</h3>
<div class="to"></div>

//添加和拖拽相关的事件
move.ondragstart = function() {
console.log("开始拖拽");
} move.ondrag = function() {
console.log("正在拖拽");
} move.ondragleave = function() {
console.log("离开");
} move.ondragend = function() {
console.log("结束拖拽");
} // 真正要实现的拖拽的效果,只需要实现这两个方法即可 // drop松手事件应该由将要被拖入的大盒子来监听 to.ondrop = function() {
console.log("松手");
to.appendChild(move);
} //要拖入的大盒子需要实现的方向
to.ondragover = function(event) {
// 阻止默认事件(默认是不允许拖入的)
event.preventDefault();
} to.ondragenter = function() {
console.log("进入盒子");
} // 如果要往回拖,那么from也需要设置为可以接收, 实现ondragover的事件, 阻止默认值
// drop松手事件应该由将要被拖入的大盒子来监听
from.ondrop = function() {
console.log("松手");
from.appendChild(move);
} //要拖入的大盒子需要实现的方向
from.ondragover = function(event) {
// 阻止默认事件(默认是不允许拖入的)
event.preventDefault();
}

拖拽进浏览器


// 如果想要拖入浏览器打开文件,必须要实现以下两个方法,并且,要阻止其默认事件
document.ondragover = function(event) {
event.preventDefault();
} document.ondrop = function(event) {
event.preventDefault();
} //如果想要拖到浏览器的小盒子里,那么必须把小盒子的默认事件阻止掉
var box = document.querySelector(".box"); box.ondragover = function(event) {
event.preventDefault();
} box.ondrop = function(event) {
event.preventDefault(); //就可以来读文件
var file = event.dataTransfer.files[0];
console.log(file); //创建一个filereader
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(){
alert("haha");
console.log(reader.result);
document.querySelector("img").setAttribute("src", reader.result);
}
}

FileReader

作用:实现上传预览

关键:files[0] FileReader reader.readAsDataURL() reader.onload reader.result


document.querySelector("#file").onchange = function(){
//1. 拿到file
var file = document.querySelector("#file").files[0];
//2. 创建fileReader
var reader = new FileReader();
//3. 加载并读取file
reader.readAsDataURL(file);
//4. 使用file
reader.onload = function() {
console.log(reader.result);
document.querySelector("img").setAttribute("src", reader.result);
}
}

本地存储

localStorage/sessionStorage 方法都一样


window.localStorage.setItem("myusername", name);
window.localStorage.getItem("myusername");
window.localStorage.clear();
window.localStorage.removeItem("myusername")

video

关键api

1.	video.pause()
2. video.play()
3. video.webkitRequestFullScreen() //全屏
4. video.currentTime //当前进度
5. video.duration //总进度

监听方法:

video.ontimeupdate = function(){  }

<video src="./movie/bglb.mp4"></video>

var video = document.querySelector("video"); //1. 判断是否是暂停状态
if (video.paused == true) {
//更换按钮
this.classList.remove("icon-play");
this.classList.add("icon-pause"); //播放
video.play();
} else { } //2. 全屏
video.webkitRequestFullScreen(); //3. 监听视频进度更新的事件
//视频的当前时间
("当前时间"+video.currentTime);
// 视频的总时间
//("总时间"+video.duration); video.ontimeupdate = function() {
var percent = video.currentTime/video.duration * 100 +"%";
console.log(percent); //给进度条添加样式
document.querySelector(".move").style.width = percent;
} //4. 点击进度条, 更改播放的位置
document.querySelector(".progress").onclick = function (event) {
//点击的x坐
var clickx = event.offsetX;
console.log(clickx);
//获取到progress的宽度
var pw = this.offsetWidth;
console.log(pw); var percent = clickx / pw;
// 当前的视频的时间点
var currentTime = percent * video.duration;
//设给video
video.currentTime = currentTime;
}

html5和css3的笔记的更多相关文章

  1. html5和css3学习笔记

    HTML5针对移动端,移动端的浏览器主要是chrome,是webkit内核; app(applicatin):应用; native app:原生的app sadsadsadad 单标签可以省略结尾标记 ...

  2. HTML5&CSS3读书笔记

    Hi All, 分享一下我学HTML5 摘抄的读书笔记(我用的还是英文,因为一些新的东西还是来自于欧美国家,希望大家习惯于看一些英文材料): 1. Difference between Section ...

  3. HTML5+CSS3学习笔记(一)

    HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就是HTML ...

  4. HTML5与CSS3基础教程第八版学习笔记11~15章

    第十一章,用CSS进行布局 开始布局注意事项 1.内容与显示分离 2.布局方法:固定宽度和响应式布局 固定宽度,整个页面和每一栏都有基于像素的宽度 响应式布局也称为流式页面,使用百分数定义宽度 3.浏 ...

  5. HTML5+CSS3学习笔记(一) 概述

    HTML5+CSS3概述      HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...

  6. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  7. Webix JavaScript UI 库可以帮你构建跨平台的HTML5 和 CSS3 程序

    XB 软件公司最近发布了JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序不仅能在个人电脑上运行,还能用在iOS. ...

  8. 微信浏览器是移动端的IE6?微信升级内核后Html5和CSS3兼容性总结

    今年4月,自从微信浏览器X5 升级Blink内核之后,各前端社区一片高潮,仿佛看到了前端er,眼含热泪进而抱头痛头的说:终于可以不用兼容这"移动端的IE6 "了,可以早点回家了!! ...

  9. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十七】

    <Web 前端开发精华文章推荐>2013年第五期(总第十七期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...

随机推荐

  1. react-native 横向滚动的商品展示

    在app中会有这种页面 像这样商品是横向的,而且要滚动,思路是利用 ScrollView 横向的滚动 思路: (a): 横向滚动的整体作为一个组件  ShopCenter {/*** 横向滚动 *** ...

  2. Python之数据结构改造

    { "appList":[ { "id" : 120, "name" : "BIGDATA", "alias& ...

  3. luoguP3979 遥远的国度 LCT+multiset维护子树信息

    Code: #include<bits/stdc++.h> #define maxn 150000 #define ll long long #define inf 21474836470 ...

  4. xpath定位实列

    这次将讲Xpath定位! 什么是Xpath: Path就是路径,xpath也类似,就像 在DOS中 D:\Auto\jack. Xpath的使用: 1:在火狐下载 FirePath 插件(图1),然后 ...

  5. matlab读取mysql数据

    conn = database('ci_bootstrap_3','root','1q1q1q1q','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3 ...

  6. 51nod1079 中国剩余定理【数论】

    一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23. Input 第1行:1个数N表 ...

  7. [CodeForces]1042D

    大意:求一个序列有几个子序列的和小于给定值,里面的数有正有负,序列长度≤200000. 列个式子,其实求的是sum[r]-sum[l-1]<T sum[r]-T<sum[l-1] 所以我们 ...

  8. cd:切换目录

    cd命令 1.命令详解 [功能说明] cd命令是“change directory”中每个单词的首字母缩写,其功能是从当前工作目录切换到指定的工作目录. [语法格式] cd    [option]   ...

  9. 05.Python高级编程

    1 ==,is的使用 is 是比较两个引用是否指向了同一个对象(地址引用比较). == 是比较两个对象是否相等.(比较的数值) 2 深拷贝.浅拷贝.copy.copy 2.1 浅拷贝 浅拷贝: 拷贝的 ...

  10. windows 下关于nginx的操作

    在nginx安装目录下操作 1.启动:start nginx 2.停止:① nginx.exe -s stop ②nginx.exe -s quit   注:stop是快速停止nginx,可能并不保存 ...