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
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元素。
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',没有传入参数