Vue中使用纯CSS实现全屏网格加渐变色背景布局

简介: Vue中使用纯CSS实现全屏网格加渐变色背景布局

Vue中使用纯CSS实现全屏网格加渐变色背景布局

现在,我们先看一看项目结构:

接下来我们就在App.vue中,随页面背景进行更改。

我们需要在<template></template>下建立两个div,一个用于绘制网格,另一个用于绘制渐变背景色:

<!--这里是第一层div,用来放网格-->
<div class="bdgrid">
  <!--这里是第二层div,用来放渐变背景色-->
  <div class="bdkgc">
  </div>
</div>

为了不改变你的原有内容,直接把原内容放在最里层即:

<template>
<div class="bdgrid">
<!--这里是第二层div,用来放渐变背景色-->
 <div class="bdkgc">
  <img src="./assets/logo.png">
  <div>
    <p>
      If Element Plus is successfully added to this project, you'll see an
      <code v-text="'<el-button>'"></code>
      below
    </p>
    <el-button type="primary">el-button</el-button>
  </div>
  <HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</div>
</template>

然后使用css来绘制:

body{
    margin: 0;
}
.bdgrid{
  height:100%;
  width:100%;
  background-size: 100% 100%;
  position:fixed;
  margin: 0;
  background:
  /* 水平条纹 */
  -webkit-linear-gradient(top, transparent 10px, #F0F0F0 10px, #cdcdcd 12px,transparent 12px, transparent 69px, #F0F0F0 60px),
  /* 垂直条纹 */
  -webkit-linear-gradient(left, transparent 10px, #F0F0F0 10px, #cdcdcd 12px,transparent 12px, transparent 69px, #F0F0F0 60px)
  ;
  -webkit-background-size: 41px 41px;
  -moz-background-size: 41px 41px;
  background-size: 41px 41px;
  ;
  -webkit-background-size: 20px 20px;
  -moz-background-size: 20px 20px;
  background-size: 20px 20px;
}
.bdkgc{
  opacity: 0.9;
  width: 100%;
  height: 100%;
    position:fixed;
  background-image: linear-gradient(#060d4d, #010738 ,#000752,#040736 ,#010429);
  -webkit-background-size:100% 100%;
  -moz-background-size: 100% 100%;
  background-size: 100% 100%;
}

其中,项目生成时自带了一段写法很“蠢”的样式:

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}

这里的margin-top: 60px;将使得整个页面上方将有一个60px的内边距而不能实现全屏,如图:

在不希望改变原内容位置的条件下我们可以再加一层div:

<template>
<div class="bdgrid">
<!--这里是第二层div,用来放渐变背景色-->
<div class="bdkgc">
  <!--这里是第三层div,其margin属性不在影响背景-->
<div class="ctn">
  <img src="./assets/logo.png">
  <div>
    <p>
      If Element Plus is successfully added to this project, you'll see an
      <code v-text="'<el-button>'"></code>
      below
    </p>
    <el-button type="primary">el-button</el-button>
  </div>
  <HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</div>
</div>
</template>

对应的#app改为:

.ctn {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}

现在我们就可以看到想要的样子了,如图:

这部分.Vue文件的完整代码如下:

<template>
<div class="bdgrid">
<!--这里是第二层div,用来放渐变背景色-->
<div class="bdkgc">
  <!--这里是第三层div,其margin属性不在影响背景-->
<div class="ctn">
  <img src="./assets/logo.png">
  <div>
    <p>
      If Element Plus is successfully added to this project, you'll see an
      <code v-text="'<el-button>'"></code>
      below
    </p>
    <el-button type="primary">el-button</el-button>
  </div>
  <HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</div>
</div>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>
<style>
body{
    margin: 0;
}
.bdgrid{
  height:100%;
  width:100%;
  background-size: 100% 100%;
  position:fixed;
  margin: 0;
  background:
  /* 水平条纹 */
  -webkit-linear-gradient(top, transparent 10px, #F0F0F0 10px, #cdcdcd 12px,transparent 12px, transparent 69px, #F0F0F0 60px),
  /* 垂直条纹 */
  -webkit-linear-gradient(left, transparent 10px, #F0F0F0 10px, #cdcdcd 12px,transparent 12px, transparent 69px, #F0F0F0 60px)
  ;
  -webkit-background-size: 41px 41px;
  -moz-background-size: 41px 41px;
  background-size: 41px 41px;
  ;
  -webkit-background-size: 20px 20px;
  -moz-background-size: 20px 20px;
  background-size: 20px 20px;
}
.bdkgc{
  opacity: 0.9;
  width: 100%;
  height: 100%;
  position:fixed;
  background-image: linear-gradient(#060d4d, #010738 ,#000752,#040736 ,#010429);
  -webkit-background-size:100% 100%;
  -moz-background-size: 100% 100%;
  background-size: 100% 100%;
}
.ctn {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


目录
相关文章
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
435 83
|
8月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
266 1
|
8月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
523 0
|
11月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
616 99
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计