pc实战小妙招(一直记录)

1、line-height=width实现垂直居中方法:对具有文字的盒子以及图片有作用。

2、记住块级盒子默认宽度为父级盒子的宽度。

3、设置第一行head时,可以将a链接转换为块级元素,再进行高度、宽度、padding 、margin的设置,以及line-height=height实现(带有文字)元素居中。

4、实现图片和文字在盒子中同时居中可以先将文字元素居中,再利用vertical-align实现图片与文字的居中,从而达到整体居中。

5、当盒子进行定位之后,要使盒子垂直居中或者水平居中:  例如水平居中:left:50% margin-left=-1/2width(-1/2height);

 

绝对定位元素

 

若设置了top和left,则margin-top和margin-left有移动效果

 

设置margin-bottom和margin-right会占据空间,但是无移动效果

 

若设置了bottom和right,则margin-bottom和margin-right有移动效果

 

设置margin-top和margin-left会占据空间,但是无移动效果

 

设置margin时的参照物为,在定位结束后的位置

 

 

6、img标签(图片)的宽度和高度不会适应父盒子,包括弹性盒子也不能让图片自动压缩尺寸(弹性盒子内的其他元素则会),他的高度和宽度要自己指定,不会改变。

7、return跳出整个方法(函数),并返回相应的值

     break只用于循环中(或者switch搭配使用),退出当前一层循环体,循环结束,如果是嵌套循环,则要每一层都要进行break

     continue只用于循环中,停止当前循环,继续执行下一次循环(进行条件判断  执行语句等等),而不是退出循环体,循环并没有结束

8、当一个变量只声明,未定义(赋值),则为undefined(系统自动赋值),undefined与数字相加结果为NaN

  

// 一个变量只声明不赋值  值是undefined  类型也是undefined

// var a ;
// console.log(a)

// console.log(b);   //报错  没有声明变量 直接使用   b is not defined
 
 
 
 
 
 
 
 
 
 
 
9.p元素里面不要嵌套div等块级元素,会有问题,包括在flex的p标签中也不能

1级元素:<body>

2级元素:其他。。(可以互相嵌套,如li和div)

3级元素:

  指哪些不可以自由嵌套的元素,如<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<caption>;段落标记的<p>;分隔线<hr>和一个特别的元素<dt>(它只存在于列表元素<dl>的子一级)。

特别1:

   <ul>、<ol>、<dl>、<table>,它们的子一层必须是指定元素,<ul>、<ol>的子一级必须是<li>;<dl>的子一级必须是<dt>或者<dd>;<table>的子一层必须是<caption> 或<thead>、<tfoot>、<tbody>等,而再子一层必须是<tr> (<tr>只存在于<thead>、<tfoot>、<tbody>中),之后才是可放内容的<td>或者<th>。

特别2:

  <img>和<input>有着其它内联元素没有的宽和高。它们在"inline"的情况下又有"black"的特性,W3C称之为replace元素。

 

最后总结汇总

1、块元素可以包含内联元素或某些块元素(p元素中嵌套Div元素是错误的做法) ,但内联元素却不能包含块元素,它只能包含其他的内联元素

2、p元素中是不能嵌套块级元素的。

3、重点:块状元素的三个级别

4、内联元素的img 与 input比较特殊,他们有内联元素没有的宽高,w3c定义为replace元素,将元素设置为display:inline-block,模拟的就是replace元素。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
js:
函数调用时,是回到函数声明的地方进行运行,也就是说不是在调用环境下运行,而是在声明定义的环境中运行。
函数运行时首先找函数内部的局部变量,再找函数外部的变量。
函数中的局部变量在函数执行完后会被销毁(闭包例外),全局变量不会。
 
回调函数会异步执行
 
 
vue:

scoped是一个vue的指令,用来控制组件的样式生效区域,加上scoped,样式只在当前组件内生效,不加scoped,这个节点下的样式会全局生效。

需要注意的是:一个组件的样式肯定是用来美化自己组件结构的,不应该影响到其他的组件。

建议:只要定义的是单文件组件,一定要给style标签加上scoped指令,从而防止组件之间的样式冲突。

在vue文件中的style标签上,有一个特殊的属性:scoped。当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素。通过该属性,可以使得组件之间的样式不互相污染。如果一个项目中的所有style标签全部加上了scoped,相当于实现了样式的模块化。

如果加上scoped属性,那么style只在当前组件下生效,不会成为全局样式,(同时如果要让一个样式成为全局样式,常用的方法是在main.js中引入),当使用scoped后,如果组件中使用了第三方组件库,要修改第三方组件库中的样式的话,可以两个style属性,一个加上scoped(当前组件样式修改),一个不加上。

 

 

 

获取路由组件router中传过来的参数,在组件中可以使用

1.this.$route.params(this.$route里面主要包含一些参数,配置  ;  this.$router里面主要包含一些方法,例如go()等等)来查看传来的数据。

2.在路由声明中添加props:true   在组件中就可以使用props['参数1',’参数2‘]进行获取,这里props里面的参数相当于data里面return中的参数

 

 

 

$router.replace()

当使用$router.replace(’/path‘)方法之后,当前路径就被替换为指定路径(path),不会产生路径历史记录;

同时当前的路径就变成了'/path',传入的参数也会发生改变,比如当前的路径为'/path1/7'(传入的参数为7,可以用.this.$route.params获取),使用$router.replace(’/path2‘)后,路径变为'/path2',没有传入参数

 
 
在使用第三方上拉加载更多组件时,每次数据请求完成都要将loading属性变为false,表示下一次可以触发相应的函数,最重要的是在最后结束整个数据请求时(没有更多了),还要将loading属性变为false,因为最后一次他还会将loading属性变为true,表示期间不能触发相应的函数,所以在最后要将loading改为false(困惑)
在使用刷新和加载时,最好是将触发加载的属性、改变了的值进行初始化,达到真正严谨的刷新效果,防止出现问题

 

posted @ 2022-07-25 21:27  YBYZ  阅读(48)  评论(0)    收藏  举报