.aboutus{
font-size:14px;
text-align:left;
padding:0px100px;
}
.intro{
width:200px;
border:1pxsolid#ddd;
border-radius:5px;
}
.text{
font-size:14px;
text-align:left;
line-height:30px;
text-indent:2em;
}
.box-card{
position:relative;
}
.item{
display:inline-block;
margin:30px50px;
}
.clearfix:before,
.clearfix:after{
display:table;
content:"";
}
.clearfix:after{
clear:both
}
.clearfixspan{
color:#fff;
font-weight:bold;
}
.titlep{
color:#8c8888;
font-size:15px;
margin-bottom:80px;
text-align:center;
}
.grid-content.large{
font-size:16px;
color:#409EFF;
font-weight:bold;
}
.topMask{
width:100px;
height:100px;
background-color:rgba(68,138,255,0.2);
transform:rotate(45deg);
position:absolute;
}
.square{
border-radius:5px;
top:0px;
}
.circular{
border-radius:50%;
top:80px;
left:80%;
background-color:rgba(255,208,75,0.2);
}
2.说明
个人简介这个组件中,主要包含三个内容:分割线标题、分割线标题下的蓝色标签、内容部分和文字上方半透明圆形/方形阴影
分割线标题
分割线使用了element的 Divider 分割线 组件,并且在分割线上面添加子自定义的文字内容。
分割线的样式为公共的样式,在src\components\Product\Product.vue组件中,可以在浏览器中-右键-查看元素样式,可以看到生效的样式来源于该Product组件。
蓝色标签
蓝色的标签使用了element的 Tag 标签 组件。
内容
内容部分使用了element的 layout24分栏布局 ,总共分为三列,每一栏占据的列数为8列:el-col的span属性设置为8(同一行的span设置数组相加不能超过24,否则会换行)
同时三列中间的间隔通过设置el-row的gutter属性来实现。
文字上方半透明圆形/方形阴影
文字上方有两个阴影:蓝色方形半透明阴影和橙色圆形半透明阴影
这两个也比较简单,代码位于分栏布局下方,设置了两个div
对这两个div都设置为100*100的大小,圆形形状的实现通过设置圆角属性border-radius为50%;菱形形状通过将div进行2d的旋转45度即可实现。
两个阴影的颜色和透明度可以自行修改,两个阴影的位置通过设置两个元素的定位为absolute,并且设置相应的偏移量(top、bottom、left、right)即可。
五.个人技能
个人技能组件代码:src\components\SecurityResearch\SecurityResearch.vue
1.源代码
个人技能
vue全家桶javascriptcss
Vue
JS
CSS
Echarts
webpack
python
linux
.securityresearch{
font-size:14px;
padding:0px100px;
}
.titlep{
color:#8c8888;
font-size:15px;
margin-bottom:80px;
text-align:center;
}
.contentp{
font-size:20px;
color:#8c8888;
}
.skill{
margin:100px0px;
position:relative;
}
.skillspan{
display:inline-block;
color:#fff;
border-radius:50%;
}
span.vue{
background-color:rgba(102,153,204,1);
width:200px;
height:200px;
line-height:200px;
font-size:28px;
z-index:100;
}
span.js{
background-color:rgba(255,153,102,0.5);
width:130px;
height:130px;
line-height:130px;
font-size:26px;
position:absolute;
left:43%;
bottom:150px;
z-index:0;
}
span.css{
background-color:rgba(102,204,204,0.8);
width:90px;
height:90px;
font-size:26px;
line-height:90px;
font-size:26px;
position:absolute;
left:35%;
top:100px;
z-index:0;
}
span.echarts{
background-color:rgba(255,153,153,0.7);
width:100px;
height:100px;
line-height:100px;
font-size:24px;
position:absolute;
left:59%;
bottom:10px;
z-index:0;
}
span.webpack{
background-color:rgba(255,204,51,0.8);
width:70px;
height:70px;
line-height:70px;
font-size:13px;
position:absolute;
left:30%;
top:20px;
z-index:0;
}
span.python{
background-color:rgba(204,102,102,0.5);
width:60px;
height:60px;
line-height:60px;
font-size:14px;
position:absolute;
left:51%;
bottom:-10px;
z-index:0;
}
span.linux{
background-color:rgba(153,153,255,0.8);
width:60px;
height:60px;
line-height:60px;
font-size:14px;
position:absolute;
left:60%;
top:-50px;
z-index:0;
}
2.说明
个人技能组件主要就是技能模块的布局(分割线和蓝色标签在个人简介组件介绍时已经说过,这里不再重复)
技能模块布局
所有的技能模块均使用span元素实现
默认的情况下,这七个技能模块并排在一行显示,且没有任何样式
然后给这七个模块设置共同的样式:字体颜色白色、圆角50%;在给这七个技能模块设置你想要的元素大小(width/height)、字体大小、背景颜色。
然后我们需要设置两个定位:
技能模块的父元素div#skill设置为relative相对定位
将vue技能模块之外的其他六个技能模块进行absolute绝对定位
最后一步就是根据自己的喜好设置其他六个技能模块的偏移量(top、bottom、left、right),将不同的技能模块移动到不同的位置。
六.工作经历
工作经历组件代码:src\components\SecurityResearch\SecurityResearch.vue
1.源代码
工作经历
某司某某司
某司
主要负责某某产品、某某某产品的前端开发和部分后端功能开发
产品bug修复
产品前场问题反馈处理
xxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
项目1
项目2
项目3
项目介绍:{{projectInfo[currentIndex]['intro']}}
所在公司:{{projectInfo[currentIndex]['company']}}
开发环境:{{projectInfo[currentIndex]['developEnv']}}
职责描述:
{{projectInfo[currentIndex]['responsibility'][key]}}
.productpage{
padding:0px100px0px100px;
}
.productpage.project{
display:flex;
justify-content:space-around;
}
.ifns{
width:85%;
display:inline-block;
outline:1pxdashedrgba(84,92,100,0.1);
}
.experience{
text-align:left;
}
.content{
text-align:center;
display:inline;
position:relative;
margin:20px;
}
.contentp{
width:95%;
color:#fff;
font-size:14px;
text-align:center;
}
.hover{
position:absolute;
bottom:5px;
left:7.5%;
background-color:rgba(84,92,100,0.3);
height:60px;
width:85%;
line-height:60px;
cursor:pointer;
}
.hover:hover{
background-color:rgba(84,92,100,0.6);
}
h2{
border:1pxsolid#ccc;
height:0px;
}
.titlep{
color:#8c8888;
font-size:15px;
margin-top:30px;
margin-bottom:20px;
}
.titlep.el-tag{
margin:0px5px;
cursor:pointer;
}
.info{
font-size:14px;
color:#72767b;
line-height:25px;
}
2.说明
工作经历组件主要包含两个部分:时间轴、项目介绍、点击项目打开详情
时间轴
时间轴使用的是element的 Timeline 时间线 组件。
项目介绍
项目介绍这块先说一下三个项目的布局。
这三个div包裹在div#project中,div#project采用了flex布局,就可以轻松的实现三个div并排显示,并且根据屏幕大小自适应显示。
点击项目打开详情
点击项目显示的这个详情使用了element的 Drawer 抽屉 组件,在这里有一些逻辑代码,就是div#content的drawerHander函数。在点击项目时,传递了对应项目的编号index,然后设置两个数据:
drawer=true
currentIndex=index-1
drawer数据是控制 Drawer 抽屉 组件是否显示的一个变量,设置为true表示抽屉打开。
currentIndex用于记录当前用户点击打开的是那个项目,假如传递的index是1,表示当前用户点击打开的是项目1,那么currentIndex的值就为0(使用index-1的原因就是因为数组下标是从0开始的,后面需要从projectInfo数组中获取数据)。
此时我们就可以通过这个currentIndex,从保存项目数据的projectInfo中获取下标为0的元素的项目的标题(title)、项目介绍(intro)、开发该项目时所属的公司(company)、项目开发环境(developEnv)和职责(responsibility),并且将这几个数据展示到 Drawer 抽屉 组件中。
项目介绍:{{projectInfo[currentIndex]['intro']}}
所在公司:{{projectInfo[currentIndex]['company']}}
开发环境:{{projectInfo[currentIndex]['developEnv']}}
职责描述:
{{projectInfo[currentIndex]['responsibility'][key]}}
七.底部页脚
底部页脚组件:src\components\Footer\Footer.vue
1.源代码
法律声明
友情链接
联系我
版权所有JEmbrace
电话:18822299999
邮箱:18822299999@163.com
博客:https://www.cnblogs.com/HouJiao/
github:https://github.com/JEmbrace
.footer{
height:250px;
text-align:center;
font-size:16px;
padding:0px100px;
position:relative;
}
.footer{
cursor:pointer;
}
.copyright{
font-size:12px;
}
.info{
font-size:14px;
color:#72767b;
line-height:25px;
}
.footer.scroll{
display:inline-block;
width:20px;
height:20px;
border-radius:5px;
border:1pxsolid#448aff;
background-color:rgba(68,138,255,0.2);
position:absolute;
left:5%;
top:-25px;
z-index:10;
animation:scrollAinfinite20slinearalternate;
}
@keyframesscrollA{
0%{left:5%;transform:rotate(180deg);};
10%{left:5%;transform:rotate(270deg);}
20%{left:5%;transform:rotate(450deg);}
25%{left:10%;transform:rotate(540deg);}
30%{left:20%;transform:rotate(720deg);}
35%{left:30%;transform:rotate(900deg);}
40%{left:40%;transform:rotate(1080deg);}
45%{left:50%;transform:rotate(1260deg);}
50%{left:60%;transform:rotate(1440deg);}
55%{left:70%;transform:rotate(1620deg);}
60%{left:80%;transform:rotate(1800deg);}
80%{left:90%;transform:rotate(2610deg);}
90%{left:90%;transform:rotate(2340deg);}
100%{left:90%;transform:rotate(2520deg);}
}
2.说明
底部页脚组件比较简单,三个文字+两个分割线也是使用了element的分割线组件 中的垂直分割线。
点击联系我,可以打开一个抽屉,这个跟工作经历中的抽屉一样,不在重复说明。
以上是“Vue+Element如何实现网页版个人简历系统”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
发布于 2021-05-30 14:07:56