css - 如何在移动 View 上切换 Vue 组件的渲染顺序?

标签 css vue.js

我有 2 个 Vue 组件,将页面分成两部分。左侧和右侧。我在每个页面上都使用这两个,如下所示:

<template>
  <div class="page-body">
    <left-side>
      <p class="text" >{{ $t('about') }}</p>
    </left-side>
    <right-side>
      <p class="slogen bottom">{{ $t('slogen') }}</p>
    </right-side>
  </div>
</template>

但是有一种特殊情况,当这两个组件应该交换位置时,​​在使用响应式移动设计时先渲染右侧再渲染左侧。完成此行为的方法是什么?我正在使用 Vue 2.3.3

最佳答案

这是一个 CSS 问题。将它们放在 flexbox 中并使用 order property在媒体查询中更改顺序。

以下示例将在显示宽度介于 300 和 600 像素之间时交换两个彩色区域。

.page-body {
  display: flex;
}

left-side,
right-side {
  background-color: #fdc;
  display: block;
  flex-basis: 50%;
}

right-side {
  background-color: #cdf;
  text-align: right;
}

@media (min-width: 300px) and (max-width: 500px) {
  left-side {
    order: 2;
  }
}
<div class="page-body">
  <left-side>
    <p class="text">{{ $t('about') }}</p>
  </left-side>
  <right-side>
    <p class="slogen bottom">{{ $t('slogen') }}</p>
  </right-side>
</div>

关于css - 如何在移动 View 上切换 Vue 组件的渲染顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46412760/

相关文章:

javascript - vue.js:当数组改变时 v-for 不会重新渲染内容

html - Flex 元素内部边框有间隙

css - 在 bootstrap col 1 的底部对齐单个 Div

javascript - Vue 内联模板不渲染

javascript - 使用 vueJS 有条件地设置 href 属性

firebase - 错误 : Deploy VueJS App in Firebase Hosting

c# - MVCGrid.net 表固定 header

css - 如何使用多个媒体查询?

html - 在 Chrome Dev Tools 中模拟移动设备时,HTML 和正文的大小如何处理?

ios - 如何向 Apple Store 提交 VUE/Cordova Mobile 应用程序?