赞
踩
博主之前出去耍了几天,回来为了复习巩固前一段时间所学的ps切图以及vue的知识,所以去网上找了几个psd文件,用vue实现了一个简单的静态单页网页界面(网页的导航部分并没有实现折叠导航的功能)。
关于vue-cli3的环境安装和工程创建可以参考:
https://blog.csdn.net/qq_36407748/article/details/80739787
npm i element-ui -S
运行命令后会发现package.json中有了相关依赖,如下
import elementUI from 'element-ui' //js
import 'element-ui/lib/theme-chalk/index.css' //css
这两歩配置之后就可以在组件中使用elemen-ui啦,其他工具的引入大同小异,引入时可以去官方文档查看,善用搜索引擎。
这个问题是因为引入的图片是固定大小的,所以将屏幕缩小时也不会改变,只会被隐藏,很影响体验,所以博主查阅了网上的一些方法,但都感觉答非所问,比如:
找了很久都没有自己想要的,虽然js能解决,但是并不是通过css方法,由于本人比较懒,不想写js方法,于是自己在那儿鼓捣了css,得到了解决方法,简洁明了,两行代码
ex:
HTML
<el-row :gutter="0" class="map">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="img">
<img src="../assets/contact/map.png" alt="img">
</el-col>
</el-row>
CSS
.img>img{
width: 85%;
height: auto;
}
效果
原理也很简单,通过element-ui的<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="img">
layout响应式布局规定了容器的宽度,然后让图片的宽度一直为其85%,高度auto,这样在缩放屏幕时图片宽度也会跟着变化,而且高度设置为auto确保了图片不变形
ps:宽度不能设定值
这里要记录的唯一一点就是,要想通过css达到切换图片的效果,初始不能在HTML中通过img标签引入图片,否则不能切换图片,只会新生成一张图片。
解决方法:在css中设置背景图片
HTML
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<el-menu class="nav_right" mode="horizontal">
<el-menu-item><router-link to="/"><div class="img1"></div></router-link></el-menu-item>
<el-menu-item><router-link to="/about"><div class="img2"></div></router-link></el-menu-item>
<el-menu-item><router-link to="/contact"><div class="img3"></div></router-link></el-menu-item>
</el-menu>
</el-col>
CSS
// 默认导航图片 .img1{ width: 67px; height: 9px; background: url(./assets/03_About_03.png) no-repeat; margin-top: 20px; } .img2{ width: 67px; height: 9px; background: url(./assets/02_Home_05.png) no-repeat; margin-top: 20px; } .img3{ width: 67px; height: 9px; background: url(./assets/02_Home_07.png) no-repeat; margin-top: 20px; } //hover时切换 .img1:hover{ background: url(./assets/02_Home_03.png) no-repeat } .img2:hover{ background: url(./assets/03_About_05.png) no-repeat } .img3:hover{ background: url(./assets/05_Contact_03.png) no-repeat } // 选中后激活后的图片 .router-link-exact-active > .img1{ background: url(./assets/02_Home_03.png) no-repeat } .router-link-exact-active > .img2{ background: url(./assets/03_About_05.png) no-repeat } .router-link-exact-active > .img3{ background: url(./assets/05_Contact_03.png) no-repeat }
找到.el-menu.el-menu--horizontal
类进行设置便可
//取消下划线
.el-menu.el-menu--horizontal{
border:none !important;
}
组件的命名不要和关键字以及elemen-ui的关键词冲突,比如footer header
等,如需设置,可以首字母大写,反正只要不冲突就行
<script>
import content from '../components/Contact_content.vue'
import Footer from '../components/Home_footer.vue'
export default {
components: {
'Content': content,
'Footer': Footer
}
}
</script>
这个问题博主之前的文章有过详细的讲解,得熟练掌握,不要弄混,要不达不到预期的效果
问题详解
elemen-ui是基于 Vue 2.0 的桌面端组件库,确实能使我们的开发方便快捷很多,但是它仍存在一些问题:
element-ui的input组件设置大小可通过size
参数来进行设置,但是它改变的是整体的大小,如果需要单独设置宽高就需要借助类啦,这其中博主遇到一些问题并进行了解决
.el-input__inner
设置样式失效的问题关于这个问题着实有点难受,因为F12查看样式所在的类,确实一定是在这个类中啊,但是遇到的情况就是,无论你在这里面设置什么样式,去网页一看,没有任何变化,参数也未变,通过万能的搜索引擎,终于找到了原因:
文件的style加scoped会导致这个情况,因为el的元素是没有data-v-xxx的,所以设置的样式不会生效。
解决办法:
el-input
中设置一个新类,通过它来改变样式,但是经过博主亲测,这样不能设置输入框的高度字体等,只能设置宽度和边距以上就是博主所想到的关于这个问题的解决方法,都没有完美的解决这个问题,感觉element-ui在这个上面还有待完善,如果有更好的解决办法,麻烦在评论下方或联系博主告知,谢谢。
目前博主并没有找到能直接设置文本域高度的方法,唯一能用的设置文本域高度的办法就是文本域自带的:autosize="{minRows:7}"
,通过最小行数来设置初始高度。
本次关于项目的总结就到此啦,通过本次小实践,博主还是深深的感觉到了vue组件化和脚手架以及webpack的实用好用性,使整个项目看起来清晰明了,不再像之前那样有点混乱,开发很便捷
关于上面提到的内容,若有问题,欢迎联系博主解决
加油
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。