Vue.js iView Layout相关修改

问题:

        在利用Vue.js和iView组件库设计网页时,使用原生的html代码太多,并不好维护。回看iView官方文档,发现有个布局组件,考虑能不能使用这个进行简单的重写。

过程:

        由于个人编写的是一个应用型后台管理网站,所以选取如图的整体布局

Vue.js iView Layout相关修改_第1张图片

        整体代码可以简单的表示成

    细节:

        1 Header左右出现间隔

                       Vue.js iView Layout相关修改_第2张图片

                F12调出控制台,查看对应的css设置

                Vue.js iView Layout相关修改_第3张图片

            很明显是padding的问题,应该是

的问题

        修改:

               在不动'iview/dist/styles/iview.css'的情况下,利用重写覆盖来修改padding

        2 Sider,左侧Menu导航栏的高度问题,无法覆盖剩余高度

Vue.js iView Layout相关修改_第4张图片

            左侧Menu导航栏悬空,看起来特别尴尬,直接添加height:100%并不起作用

        修改:

    给当前Layout添加style="position: absolute;top: 64px;bottom: 0px;left: 0px;right: 0px;"       

        利用绝对布局,占据界面距左边0px,右边0px,上边64px(Header默认的高度是64px),下边(底部)0px

Vue.js iView Layout相关修改_第5张图片            这下看起来就正常了,并且不会随着浏览器框体的拉伸和缩放而发生超出预期的变形

总结:

      iView组件库的方案整体还是比较全的,不过有的组件只能说,并没有写完善,使用起来非常死板,如Header的高度为64px,可以使用覆盖的方式修改,但是Sider Content等组件也会发生相关变化,如果要修改,会十分麻烦,最后不得不放弃。

         iView在使用的过程的,常常会出现并不想要的结果,这时就要学会修改。Vue.js使用渲染式生成界面,所有的组件最后都是转化成html+css+js的基本结构(双向绑定除外),我们可以利用css的属性覆盖优先级,来实现css的重写,方式主要有在里添加(包含class)或者直接在标签里直接添加相关css属性。

            

你可能感兴趣的:(前端)