我是靠谱客的博主 忧郁犀牛,最近开发中收集的这篇文章主要介绍Vue 框架 学习--3、vue cli开发中组件套用的布局问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:本文是为了总结个人在vue学习中摸索组件布局的规律而创作。

我们队组件进行布局需要了解该问题:

         我们在操纵组件进行一些列效果实现时,组件的模板是否受到父元素的干扰?

我们来进行实验,看看实验结果:

首先我们在index.html中创建一个div作为导航栏:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>vueex</title>
    <style type="text/css">
    .guide-line{
      width: 100%;
      height: 70px;
      position: absolute;
      margin-top: 0px;
      background:#7B68EE;
    }
    .guide-img{
      position: absolute;
      margin-top: 10px;
      margin-left: 50px;
      width: 100px;
      height: 100%;
      font-family: 微软雅黑;
      font-size:40px;

    }
    /* .guide-to{
      position: absolute;
      width: 500px;
      height: 100%;
      float: right;
    } */

    </style>
  </head>
  <body style="margin:0px">
  <div id="app">
    <div id="guide-line" class="guide-line">
      <div class="guide-img">
        <span style="color:white">Wiki</span>
        
      </div>
    	
        <app></app>
      
    </div>
    <!-- built files will be auto injected -->
  </div>
  </body>
</html>

我们app.vue组件中只包含hello和hi两个按钮路由已经设置好了。关于路有文件的配置以及实例化,在本人的上一篇博客中有详细介绍。代码如下:

<template>
  <div id="guide-to" class="guide-to">

      <router-link to="/foo"><span class="guide-bt-span">Hello</span></router-link> 
      
      <router-link to="/bar"><span class="guide-bt-span">hi</span></router-link> 
     
  <router-view/>
  </div>
</template>

<script>
export default {
  name: 'guideTo'
}
</script>

<style>
.guide-to {
  position: absolute;
  margin-top:0px;
  width: 100%;
}
.guide-bt{
  float: right;
  position: absolute;
  width: 500px;
  height: 70px;
  margin-top: 0px;
}
.guide-bt-span{
    float: right;
    margin-top: 0px;
    color: #FFFFFF;
    font-size:40px;
    font-family: 微软雅黑;
}
</style>

页面的大致效果为:

好了那我们现在为<app></app>裹上一层div并且讲div中margin-top设置为100px看看会有什么效果:

.guide-to{
      position: absolute;
      margin-top: 100px;
    }
<div class="guide-to">
        <app></app>
      </div>

结果是页面没有产生任何变化,我们进行审查元素,发现这个div仍旧没有执行margin-top:100px。

说明,在html页面中调用组件,组件是不受html中包裹的div的css属性控制的。

可以理解为,我们在app.vue中产生了一个新的图层,组件独立在这个图层中。

那么如果组件中嵌套组件会怎么样呢?会不会只能在这个父组件规定的区域大小中渲染呢?我们继续做实验

我们将App.vue的模板设置为margin-top为100px;

然后将App.vue中通过路由绑定到/foo的组件PI的模板样式设置为margin-top:0px;出现了以下效果:

子组件里页面的上边距不是0px;而是由父组件样式中规定的100px!

所以综上所述:在html文件中调用组件时是不受父元素样式的影响的,然而在组件中调用子组件,子组件受到了来自父组件模板样式的约束,也是就说子组件只能在父组件规定的大小中展示,当然你也可以将margin设置为负数来实现一些效果。

最后

以上就是忧郁犀牛为你收集整理的Vue 框架 学习--3、vue cli开发中组件套用的布局问题的全部内容,希望文章能够帮你解决Vue 框架 学习--3、vue cli开发中组件套用的布局问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部