一般字体下载下来是.ttf格式,需要转换才能使用
字体转换网址
http://www.font2web.com//?error=no_file_uploaded
https://www.fontsquirrel.com/tools/webfont-generator
转换需要上传字体,转换完成后会自动下载安装包,解压安装包,将font文件夹下边.eot .woff .ttf .svg四个文件(这是我们自定义字体时需要的)引用到项目目录中,为更好的兼容性,我们采用以下代码
@font-face {
font-family: ‘PingFangSCRegular’;
src: url(‘…/…/fonts/PingFang SC Regular_0.eot’);
src: url(‘…/…/fonts/PingFang SC Regular_0.eot?#iefix’) format(‘embedded-opentype’),
url(‘…/…/fonts/PingFang SC Regular_0.woff’) format(‘woff’),
url(‘…/…/fonts/PingFang SC Regular_0.ttf’) format(‘truetype’),
url(‘…/…/fonts/PingFang SC Regular_0.svg#PingFangSCRegular’) format(‘svg’);
font-weight: normal;
font-style: normal;
}
然后再用font-family引用字体就可以了
body{
font-family: ‘PingFangSCRegular’
}
11.yarn remove packname yarn卸载安装包
12.起初开发的时候我用的是给元素绑定onclick事件,但是click事件有3秒延迟,还是应该用zepto自带的tap事件
13.子元素{flex:1}第一个参数为flex-flow:1,等分剩余空间,如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
14.去除select默认样式
.myform select {
/*很关键:将默认的select选择框样式清除*/
appearance:none;
-moz-appearance:none;
-webkit-appearance:none;
/*在选择框的最右侧中间显示小箭头图片*/
background: url(“…/…/images/symbols-下拉.png”) no-repeat scroll 92.6% center transparent;
background-color: #fff;
background-size: 13.4px;
/*为下拉小箭头留出一点位置,避免被文字覆盖*/
padding-right: 22.5px;
}
/*清除ie的默认选择框样式清除,隐藏下拉箭头*/
select::-ms-expand { display: none; }
15.写提交申请事件时,将提示文字写在了form窗体外,所以不显示,写在form窗体内就可以了
17.select 下拉框箭头处,取消默认样式 ,为其添加背景图
但一开始最左边的图标我也是直接在背景图上添加的,有两种方法,一种是为元素添加多个背景图
,除了backgroud-color是唯一一个不能使用多个值的background-*元素,所以,我们以上的三个元素都可以使用多个值,两个值之间以逗号相连。
(1)
div {background-image:url(),url();
background-position:0 30px, 0 45px;
backgroud-repeat:no-repeat
}
(2)也可以使用background属性
div { background :url () no-repeat 0 30px;
url() no-repeat 0 45px;
}
另一种是在select外套一个div,把左边用来装饰的背景图加到此div上,把下拉列表背景图加到select元素上。
18
.zepto获取select元素的选中option不能用类似jq的方法$(‘option[selected]’),因为selected属性不是css的标准属性
应该使用$(‘option’).not(function(){ return !this.selected })
比如:jq:$this.find(‘option[selected]’).attr(‘data-v’) * 1
zepto:$this.find(‘option’).not(function() {return !this.selected}).attr(‘data-v’) * 1
但是获取有select中含有disabled属性的元素可以用$this.find(“option:not(:disabled)”)因为disabled是标准属性
19.git操作
(1).撤消git commit操作
使用git log查看 commit 日志,日志中包含本次commit的哈希值,找到需要回退的那次commit的哈希值,
使用
git reset --hardcommit_id 命令进行回退
(2).撤消git add 操作
如果是撤销所有的已经add的文件:
git reset HEAD .
如果是撤销某个文件或文件夹:
git reset HEAD -filename
(3).撤消git push操作
方法:
git reset --hard <commit_id>
git push origin HEAD --force
其他:
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD 最近一个提交
HEAD^ 上一次
(4).git rebase
git rebase用于把一个分支的修改合并到当前分支
如果想要放弃当前rebase操作,用
git rebase --abort
如果冲突已经解决,先add冲突文件,之后
git rebase --continue
20、flex布局
1、Flex是Flexible Box 的缩写,意为弹性布局。用来为盒状模型提供最大的灵活性。
webkit内核的浏览器,必须要加上-webkit的前缀
.box{display: -webkit-flex;/* Safari */display: flex;}
webkit内核八大浏览器包括: chrome,safari,搜狗高速浏览器,傲游浏览器3,qq浏览器,360极速浏览器,世界之窗浏览器(极速版),阿里云浏览器
2、flex属性
flex-wrap: 定义如何换行{no-wrap(默认):不换行
wrap:换行,第一行在上方,
wrap-reverse: 换行,第一行在下方
}
justify-content: 项目在主轴上的对齐方式
{flex-start左对齐
flex-end 右对齐
center居中对齐
space-between两端对齐,项目之间间隔相等
space-around每个项目两侧的间隔相等,即左边距与右边距一样大,所以项目之间的间隔要比项目与大的外边框之间的距离大一倍。
21、在表单中不能使用元素,因为不同的浏览器会提交不同的按钮值。请使用 input 元素在 HTML 表单中创建按钮。
22、模块式引入swipper
问题:swipper.js swipper.css不能使用
原因:swipper.js swipper.js没有引入
解决办法:引入 node_modules下的swiper的css 和js
问题:引入 swipper轮播图无法正常滑动
原因:swipper版本不对 ,npm install swipper默认安装的版本是swipper 4.* beta版,应该安装swipper3.*版本的23、$(document).ready(function(){
function Func(){}
})
第一次写的时候丢了function,这段代码的意思是当页面加载完成后执行此函数里边的函数,所以function(){}不能丢
24、测试js,用return返回不执行下边的函数来观察是否有问题。
二、学习任务
1.zepto支持浏览器
ie10+
chrome 30+
firefox 24+
safiri 6+
ios 5+ safari
andriod 2.3+ browser
2.zepto 模块
* zepto —— default ——核心模块,必须引入
* event ——default —— 通过on() off()处理事件
* ajax —— default —— XMLHttpRequest 和JSONP实用功能
* form —— default —— 序列化提交web表单
* ie —— default —— 增加支持桌面的ie10和windows phone 8
* detect —— 提供$.os $.browser消息(
判断设备和浏览器,zepto.os判断查看设备,返回一个对象{ios:true ,iphoe:true,version:“6.1”}
zepto.browser查看浏览器,返回对象{version:'536.26,webkit:true}
)
* fx —— 提供 animate() 方法
* fx_methods —— 以动画形式的show,hide,toggle.fade*()方法,即可使用show() hide()方法支持动画
var div1 = $(“#fool”)
div1.animate({
“width”; “300px”,
“height”: “300px”
),
‘slow’,‘ease-in-out’,
function {
console.log(‘div animate callback’)
div2.hide(‘slow’,function() {})
div2.fadeOut(‘slow’,function)() {
console.log(‘div2 animate callback’)
})
},2000)
* assets 支持从DOM中移除Image元素并清理 ios内存
mobile safari严格的资源占用限制说起;mobile safari要比桌面版的浏览器的资源占用限制严格的多,当ios加载大文件时会停止加载,这时需要回收这些图片资源 ,因为不能保证垃圾回收机制是否有回收处理掉这些图片,所以我们采用移除image元素后清理内存,释放图片资源。
* data 对data()方法的完整支持,能够在内存中存储内存对象(读取或写入dom的data-* 属性,点像attr,但属性名要加上data-,zepto基本实现 ‘data()’方法只能存储字符串,当读取属性时,会有下列转换:
“true",“false”"null"转换为相应类型
数字值转换为实际数字类型
有效的JSON值会被解析
其他一切均作为字符串返回
)
* deferred 提供$.Deferred pormised API.依赖"callbakcs"模块
ajax请求或处理结果需要回调函数来执行完成后的操作时,使用deferred作为回调函数解决方案
$.Deferred()生成deferred对象
deferred.done()操作成功时的回调函数
deferred.fail()失败
deferred.promise() 无参时返回对象,运行状态无法改变,有参时作为在参数对象上部署deferred接口
deferre.resolve()改变 deferred对象运行状态为”已完成“触发done()方法
deferre.reject()改变 deferred对象运行状态为”已完成“触发fail()方法
$.when()为多个操作指定回调函数
deferred.then(), ex: w h e n ( when( when(.ajax(url).then(successFunc,failureFunc)
deferred.always
ajax版本区别
ajax1.5之前
$.ajax({url:test.html’,
success(){},
error(){}
})
ajax 1.5之后 ,返回deferred对象,可链式操作
$.ajax(“test.html”)
.done({function(){})
.fail(function(){})
允许添加多个回调函数
$.ajax(“test.html”)
.done({function(){})
.fail(function(){})
.done({function(){})
.fail(function(){})
允许为多个事件指定一个回调函数
* callbacks 为"deferred"模块提供 $.Callbacks.
* selector 支持 jquery css表达式功能($(‘div:first’)第一个div对象,el.is(‘:visible’)判断el是否为禁用的input或者button
* touch 在触摸设备上触发tap- swipe-相关事件。
基本touch事件:
touchstart 手指触发屏幕上的时候触发
touchmove 手指在屏幕移动的时候触发
touchend 手指离开屏幕的时候触发
touchcancel 系统取消touch事件的时候触发
* gesture 在触摸设备上触发 pinch(手指缩放)事件
* stack (栈)提供andSelf() &end ()链式调用方法
* ios3 String.prototype.trim 和 Array.prototype.reduce 方法 (如果他们不存在) ,以兼容 iOS 3.x.
3.zepto api
(1).$()
//创建元素
#$(“
hello
”)//创建带有属性的元素
$(“
”),{ text”:’hello’,id:"greeting’,css:{color:“darkbule”} })
(2).camelCase(string)驼峰命名
(3).$contains(parent,node) 检查父节点是否包含给定的dom节点,如果两者是相同的节点 ,返回false
(4).each(collection,function(index,item){…})遍历数组或心key-value值对方式遍历对象。回调函数返回false停止遍历。
*%d带符号十进制数
%s字符串
(5)$.fn在此对象上添加的方法所有的zepto对象都能调用
(6)$.grep 获取包含回调函数中返回true的数组项
$.grep([1,2,3], function(item) {
return item > 1
})
(7)inArray 返回数组中指定元素的索引值
(8)isNumeric如何该值为有限数值或一个字符串表示则返回true
(9)isPLainObject 测试一个对象是否通过 对象常量(“{}”) 或者 new Object
创建的,如果是,则返回true。
(10) var callback = $.noop引用一个空函数
(11)$.parseJson接受一个标准格式的json并返回解析后的js对象
(12)add 添加元素到当前匹配的元素集合中
$(‘li’).add(‘p’).css(‘background-color’,‘red’)
(13)append在匹配元素末尾插入内容 after在匹配元素后面插入内容
(14)append appendTo区别
$(‘ul’).append(‘
- new list item
- ’)
$(‘
- new list item
- ’).appendTo(‘ul’)
(15 ) filter对象,过滤对象集合
(16)forEach与each相似,都是遍历对象集合中的每个元素,但回调函数返回false时不停止遍历
(17)get 从当前对象集合中获取指定的元素或所有元素
ex: $(‘h2’).get()
$(‘h2’).get(0)
( 18 )hasClass 检查对象集合中是否有元素含有指定的class
( 19 )获取或设置元素的html内容,不用innerHTML
( 20 )is判断当前元素集合中第一个元素是否符合css选择器
( 21)offSet获取当前元素在document的位置
(22)offsetParent 找到第一个定位过的祖先元素
(23)parent 获取直接父元素
parents 获取所有祖先元素
(24)pluck 获取对象元素的属性值,返回值是数组
(25)prepend将内容插入到元素开头 prependTo(同appendTo)
(26)prev 获取元素的前一个兄弟节点
(27)prop读取或设置元素属性值,优先于attr
(28)reduce 遍历当前对象集合,memo是上次函数的返回值,迭代进行遍历
reduce(function(memo,item,index,array){}
(29)removeClass 移除class名可用空格分隔
(30)replaceWith 用给定内容替换所有匹配元素
(31)slice(start, [end]) 提取数组的子集
(32)text 方法不能用来获取或设置html,只能获取元素的文本内容
(33)toggleClass 如果匹配元素有此class名就删除它,如果没有就添加它
(34)unwrap 移除集合中每个元素的直接父节点,并把他们的子元素还保留在原来的公交车
(35)wrap 在每个匹配的元素外层包上一个html元素 (".button a’).wrap(‘’)
wrapAll 在所有匹配元素外层包一个单独结构 $(‘a.button’).wrapAll(‘