最近写了一个弹出框的功能,期间主要遇到的问题是<ui-view>
的使用,和css的定位,还有设置背景的透明,及解决背景透明的异常。
在这里记录一下自己的问题解决的步骤。
先看一下实现的效果
<ui-view>
的使用
在这里我们实现的功能是点击一个按钮,实现弹出框的功能。
方法是用<ui-view>
包住触发按钮,然会将按钮触发的下一个路由的界面替换按钮实现弹出框效果。
下面给出示例代码1
2
3
4
5<ui-view>
<a class="btn btn-xs btn-outline btn-info" ui-sref="personnel.personnelQualificationManage.viewTrainingRecord({data: object.trainingRecords})">
<i class="pe-7s-look"></i> 查看
</a>
</ui-view>
css的定位
在这里介绍css的三种定位方式:relative,absolute,fixed
relative:相对于一个元素的正常位置来对其定位
absolute:元素框从文档流完全删除,并相对于其包含块定位。
fixed:元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
在这里主要介绍一下absolute与fixed的区别:
1、没有滚动条的情况下没有差异
2、在有滚动条的情况下,fixed定位不会随滚动条移动而移动,而absolute则会随滚动条移动
可以这么理解,fixed:固定在当前window不动, absolute:会随参照对象元素的高度和宽度变化而变化
一般fixed用在遮盖层和固定在页面某个位置,如固定在顶端的菜单栏,又如弹出提示框居中显示
下面给一下示例代码看一下区别:
1 | // 弹出框的效果,定位相对于浏览器窗口左280px; 上100px; |
设置背景的透明度
目的:实现一个黑背景,并在背景上添加我们的显示弹窗。
实现方法:利用z-index设置两个分层,下面的分层实现黑色透明背景。上面分层显示弹窗。
设置透明度有两种方法:
1.opacity 属性
使用方法:opacity:0.5;
显示0.5的透明度 他的值可以为0-1
子元素会继承父元素的透明效果。
2.RGBA(R,G,B,A)
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数 | 百分数
A:Alpha透明度。取值0~1之间。
使用方法:background: rgba(0,0,0,0.5);
显示0.5的透明度
子元素不继承父元素的透明效果。
z-index的分层
刚开始的时候我并没为有通过z-index
分层,遇到了有些背景之后的内容透过背景的效果,这个问题是通过z-index
设置分层来解决的。
原因是当你不使用分层时,你的所有的fixed和absolute都在一个层上面,会产生我们的黑色背景无法将内容全部遮盖的效果。