`####选择器子选择器div>p选中div的子标签p相邻兄弟选择器img+p图片后面紧跟的p序号选择器:first-child首个元素:last-child末尾元素:nth-of-type第三个某类型元素:nth-child(3)第三个元素:nth-child(3n+2)从第2个开始每三个选中一个:nth-child(odd)偶数:nth-child(even)奇数:nth-last-child(3)倒数第三个元素属性选择器img[alt]选择有alt属性的img标签img[alt=”故宫”]选择alt属性是故宫的img标签img[alt^=”北京”]选择alt属性以北京开头的img标签img[alt$=”夜景”]选择alt属性以夜景结尾的img标签img[alt*=”美”]选择有alt属性中含有美字的img标签img[alt~=”手机拍摄”]选择有alt属性中有空格隔开的手机拍摄字样的img标签CSS3新增伪类:empty选择空标签:focus选择当前获得焦点的表单元素:enabled选择当前有效的表单元素:disabled选择当前无效的表单元素:checked选择当前已经勾选的单选按钮或者复选框:root选择根元素,即<html>标签伪元素::before和::after在元素的前面和和面加入content::selectionCSS伪元素应用于文档中被用户选中的部分(使用鼠标圈选的部分)::first-letter和::first-line::first-letter会选中某元素中(必须是块级元素)第一行的第一个字母浮动1.子盒子会按顺序进行贴靠,如果没有足够空间,则会寻找再前一个兄弟元素BFC(BoxFormattingContext,块级格式化上下文)是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然如何创建BFC方法①:float的值不是none方法②:position的值不是static或者relative方法③:display的值是inline-block、flex或者inline-flex绝对定位绝对定位的盒子垂直居中是一个非常实用的技术position:absolute;top:50%;固定定位固定定位只能以页面为参考点,没有子固父相这个性质阴影box-shadow:10px20px30px40pxrgba(0,0,0,.4),10px20px30px40pxrgba(0,0,0,.4)背景图片contain和covercontain和cover是两个特殊的background-size的值contain表示将背景图片智能改变尺寸以容纳到盒子里background-clip属性border-box背景延伸至边框(默认值)(边框也有背景图片)padding-box背景延伸至内边(padding),不会绘制到边框处(仅在dotted、dashed边框可察觉)(内边距部分有背景图片)background-attachment属性fixed自己滚动条不动,外部滚动条不动local自己滚动条动,外部滚动条动background综合属性线性渐变盒子的background-image属性可以用linear-gradient()形式创建线性渐变背景background-image:linear-gradient(toright,blue,red);左到右渐变background-image:linear-gradient(45deg,blue,red);斜着渐变浏览器私有前缀Chrome-webkit-Firefox-moz-IE、Edge-ms-旋转旋转变形将transform属性的值设置为rotate(),即可实现旋转变形transform:rotate(45deg);可以使用transform-origin属性设置自己的自定义变换原点缩放变形将transform属性的值设置为scale(),即可实现缩放变形transform:scale(3);斜切变形将transform属性的值设置为skew(),即可实现斜切变形位移变形将transform属性的值设置为translate(),即可实现位移变形transform:translate(100px,200px);向右移动向下移动3D旋转将transform属性的值设置为rotateX()或者rotateY(),即可实现绕横轴、纵轴旋转perspective属性空间移动当元素进行3D旋转后,即可继续添加translateX()、translateY()、translateZ()属性让元素在空间进行移动一定记住,空间移动要添加在3D旋转之后transitiontransition:width1slinear0s;什么属性需要过渡动画时长变化速度曲线延迟时间动画动画定义@keyframesr{from{transform:rotate(0);}to{动画的调用animation:r1slinear0s3;哪个动画耗时时间动画曲线延时播放次数永远写infintealternate和forwards如果想让动画的第2、4、6……(偶数次)自动逆向执行,那么要加上alternate参数即可如果想让动画停止在最后结束状态,那么要加上forwardsanimation:movelr2slinear0sinfinitealternate;多关键帧动画#@keyframeschangeColor{0%{background-color:red;}20%{background-color:yellow;}40%{background-color:blue;}60%{background-color:green;}80%{background-color:purple;}100%{`
<?phpfunctiongeturl($url){$headerArray=array("Content-type:application/json;","Accept:application/json");$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);$output=curl_exec($ch);curl_close($ch);$output=json_decode($output,true);return$output;}functionposturl($url,$data){$ch=curl_init();//初始化cURLcurl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);//忽略证书curl_setopt($ch,CURLOPT_URL,$url);//抓取指定网页curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串并输出到屏幕上curl_setopt($ch,CURLOPT_POST,1);//Post请求方式curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//Post变量$output=curl_exec($ch);//执行并获得HTML内容curl_close($ch);//释放cURL句柄return$output;}functionputurl($url,$data){$data=json_encode($data);$ch=curl_init();//初始化CURL句柄curl_setopt($ch,CURLOPT_URL,$url);//设置请求的URLcurl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//设为TRUE把curl_exec()结果转化为字串,而不是直接输出curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");//设置请求方式curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置提交的字符串$output=curl_exec($ch);curl_close($ch);returnjson_decode($output,true);}functiondelurl($url,$data){$data=json_encode($data);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$put_url);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");curl_setopt($ch,CURLOPT_POSTFIELDS,$data);$output=curl_exec($ch);curl_close($ch);$output=json_decode($output,true);}functionpatchurl($url,$data){$data=json_encode($data);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PATCH");curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//20170611修改接口,用/id的方式传递,直接写在url中了$output=curl_exec($ch);curl_close($ch);$output=json_decode($output);return$output;}?>
1.首先注册码云账号以及安装git2.生成一个SSH密钥,并在码云设置3.在码云创建一个仓库,一个仓库就是一个项目这三步就不详细说了,基本看看官网都能解决。在正式开始前需要打开cmd进行全局设置gitconfig--globaluser.name"码云名字"gitconfig--globaluser.email"码云邮箱"(正式开始)1.打开cmd。进入本地项目文件夹执行gitinit代表本地初始化一个项目,会生成一个.git隐藏文件夹2.执行gitadd.gitadd.test.txt代表把本地项目所有文件放进缓存区,分别是全部文件和指定文件3.添加项目说明gitcommit-m"初次提交"4.指定仓库git地址gitremoteaddoriginhttps://gitee.com/****/****.git在第一次上传的时候需要指定git地址,后续更新的时候就不用了。git的配置文件会记录git的地址需要注意的是第一次设置仓库地址,会弹出密码登录验证,输入码云账号密码验证下就可以了。5.执行提交命令gitpush-uoriginmaster执行这条命令就可以成功提交,需要注意的是,如果你不是第一次提交,且你手动删除过码云仓库的文件,导致仓库文件和本地文件不匹配,就会报错需要强制上传gitpush-uoriginmaster-f加个-f就可以强制上传了。总结一下所用命令gitinit#初始化创建一个本地仓库gitadd.#当前文件夹下所有内容添加至本地仓库缓存区gitadd.test.txt#指定文件添加gitcommit-m"提交信息(备注)"gitpush-uoriginmaster#将本地仓库添加的内容上传至远程仓库gitpush-uoriginmaster-f#强行把本地文件覆盖远程仓库文件,例如:远程有10个文件,本地有一个文件,那么强制的后果就是仓库只剩本地仓库的一个文件。附两条参考链接码云的安装和配置git命令:全局设置用户名邮箱配置
<?phpfunctiongeturl($url){$headerArray=array("Content-type:application/json;","Accept:application/json");$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);$output=curl_exec($ch);curl_close($ch);$output=json_decode($output,true);return$output;}functionposturl($url,$data){$data=json_encode($data);$headerArray=array("Content-type:application/json;charset='utf-8'","Accept:application/json");$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_POSTFIELDS,$data);curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($curl);curl_close($curl);returnjson_decode($output,true);}functionputurl($url,$data){$data=json_encode($data);$ch=curl_init();//初始化CURL句柄curl_setopt($ch,CURLOPT_URL,$url);//设置请求的URLcurl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//设为TRUE把curl_exec()结果转化为字串,而不是直接输出curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");//设置请求方式curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置提交的字符串$output=curl_exec($ch);curl_close($ch);returnjson_decode($output,true);}functiondelurl($url,$data){$data=json_encode($data);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$put_url);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");curl_setopt($ch,CURLOPT_POSTFIELDS,$data);$output=curl_exec($ch);curl_close($ch);$output=json_decode($output,true);}functionpatchurl($url,$data){$data=json_encode($data);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type:application/json'));curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PATCH");curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//20170611修改接口,用/id的方式传递,直接写在url中了$output=curl_exec($ch);curl_close($ch);$output=json_decode($output);return$output;}?>
同级div设置display:inline-block,父级div强制不换行<html><head></head><body><divid="container"><divclass="lable">测试测试</div><divclass="lable">测试测试</div><divclass="lable">测试测试</div><divclass="lable">测试测试</div><divclass="lable">测试测试</div><div></body><style>#container{width:400px;height:200px;background-color:red;overflow:auto;white-space:nowrap;}.lable{width:100px;background-color:blue;display:inline-block;}</style></html>
事件背景我也是个前端半吊子,第一次正儿八经的前后端分离写法。第一次在后端使用JWT的方法。前端使用Axios进行请求,需要携带header头携带token进行请求。axios({method:'post',url:'http://www.fanghong.com/Api/Api.php?act=token',headers:{"Authorization":token},})js端代码就是这样。但是网页一直有一个报错我晃了一眼,没认真看我还以为是跨域问题,然后在PHP端允许了跨域header('Access-Control-Allow-Origin:*');但报错依旧存在继续检查各种百度,总感觉没什么问题,直到看到了一篇文章,有人和我有同样的问题,有人回答说是后端拒绝了Authorization标头。我才知道后端不仅默认不允许跨域,而且连自定义的标头也不允许。然后又加了一句header('Access-Control-Allow-Headers:Origin,Content-Type,Authorization,X-Auth-Token');当然也可以用*号来表明允许所有标头。提醒:一定要认认真真看报错补一个当时js报错图