css vue 内联_04-Vue基础-css和内联样式绑定
v-bind 及 class 与 style 绑定
1. 绑定 class 的集中方式
1.1. 对象语法
给class设置一个对象,可以动态切换class。例如:
var app = new Vue({
el: '#app',
data: {
isActive: true
}
});
示例中,类名active依赖数据isActive,当isActive的值为true时,div标签会拥有active类,否者没有。最终渲染效果如下:
对象中也可以传入过个属性,可以动态切换class。此外,:class可以与普通class共存,例如:
var app = new Vue({
el: '#app',
data: {
isActive: true,
isError: false
}
});
当:class的表达式过长或者逻辑复杂时,还可以绑定一个计算属性,一般当条件多于两个小时,都可以使用data或computed,例如计算属性:
var app = new Vue({
el: '#app',
data: {
isActive: true,
error: null
},
computed: {
classes: function() {
return {
active: this.isActive && !this.error,
'text-fial': this.error && this.error.type === 'fial'
}
}
}
});
除了计算属性,还可以绑定一个Object类型的数据,或者使用类似计算属性的methods。
1.2. 数组语法
当你要应用多个class时,可以使用数组语法,给:class绑定一个数组,应用一个class列表:
var app = new Vue({
el: '#app',
data: {
isActive: true,
error: null
},
computed: {
classes: function() {
return {
activeCls: 'active',
errorCls: 'error'
}
}
}
});
渲染结果为:
还可以使用三元表达式来切换class,例如:
var app = new Vue({
el: '#app',
data: {
isActive: true,
error: null
},
computed: {
classes: function() {
return {
isActive: true,
errorCls: 'error',
activeCls: 'active'
}
}
}
});
当然这样写也比较麻烦,可以在数组语法中使用对象语法:
var app = new Vue({
el: "#app",
data: {
isActive: true,
error: null
},
computed: {
classes: function() {
return {
isActive: true,
errorCls: "error"
};
}
}
});
使用计算属性可以给元素动态的设置类名,在业务中经常用到,尤其是在写复用的组件时,所以在开发过程中,如果表达式较长或逻辑复杂,应该尽可能地优先使用计算属性。
1.3. 组件上使用
如果直接在自定义组件上使用class或:class,样式规则会直接应用到这个组件的根元素上,例如:
Vue.component("my-component", {
template: '
一些文本
'
});
var app = new Vue({
el: "#app",
data: {
isActive: true,
error: null
},
computed: {
classes: function() {
return {
isActive: true
};
}
}
});
最终渲染结果是:
一些文本
这种用法仅仅适合自定义组件的最外层是一个根元素,否者无效,当不满足这种条件还需要给子元素设置类名,那就需要借助于props来传递。
这种方式后续会讲解,此处不做详述。
1.4. 绑定内联样式
使用v-bind:style即:style可以给元素绑定内联样式,方法与:class类似,也有对象和数组语法。例如:
Vue.component("my-component", {
template: '
一些文本
'
});
var app = new Vue({
el: "#app",
data: {
color: 'red',
fontSize: 14
}
});
CSS属性名称使用驼峰命名(camelCase)或短横线分隔命名(kebab-case),渲染后的结果为:
很多时候样式都比较多,不方便维护,所以一般写在data或者computed里,以data为例改写示例:
var app = new Vue({
el: "#app",
data: {
styles: {
color: 'red',
fontSize: 14 + 'px'
}
}
});
应用多个样式对象时,可以使用数组语法:
在实际业务中,:style的数组语法并不常用,往往可以将样式写在一个对象里;比较常用的应当是计算属性。
2. 章节总结
本章主要讲了类名和样式的绑定,以及一个常用的绑定方式。在后面的内容中,将继续穿插使用这些特性。
当你的才华撑不起自己的野心,那就努力学习吧!
css vue 内联_04-Vue基础-css和内联样式绑定相关推荐
- Vue.js 极简小例: 4 种方式样式绑定、style 的多种方式实现
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 代码: <template><div id="app"> ...
- Vue实现集成使用第三方Animate.css动画库详细教程(解决鼠标移入移出闪烁问题)
vue通过第三方集成Animate.css简单快速的实现动画,通过类名引用,可以轻松实现Animate的所有动画,Animate.css是一款强大的预设css3动画库,Animate.css内置了很多 ...
- CSS文档流与块级元素和内联元素
文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不 ...
- Vue 基础之常用内置指令
Vue 基础之常用内置指令 描述 指令 内容渲染指令 {{}} 与 v-text 覆盖面积 v-text {{}} 闪现问题 {{}} v-text v-html 属性绑定指令 v-bind 简写 : ...
- vue中使用woo.js + animate.css
安装 npm install animate.css --save npm i wowjs 引入并绑定到原型方法 import 'animate.css' import wow from 'wowjs ...
- vue动态加载js和css以及部分页面加载特定的js和css
vue动态加载js和css以及部分页面加载特定的js和css vue项目第一次加载很慢的,发现在第一次加载要很大的js导致卡顿.可以使用cdn加速和其他gzip方式效果不是很明显.因此考虑每个页面动态 ...
- css引入报错,vue项目通过import引入外部css报错怎么办
vue项目通过import引入外部css报错的解决办法:首先在[webpack.config.js]中添加相关内容,添加后重新npm run dev:然后json文件中查看是否存在[css-loade ...
- Vue引用第三方动画库animate.css
搜索animate.css - npm 进入它的主页,就可以看到很多动画样式 在vscode中安装animate.css 在使用的组件上引用它 给要使用的元素加上animata_animated an ...
- vue 引用网络css_Vue 引入外部CSS文件
1. 使用@import引入 缺点 无法实现scoped,且比价浪费资源 请看以下代码,我们在一个scoped空间里引入外部css文件 export default { name: "use ...
- 【Vue.js 知识量化】基础语法
Vue.js 基础语法 Vue.js 安装 插值操作 Mustache:将 data 中的文本数据插入到 HTML v-once:使元素和组件只渲染一次 v-html:解析 HTML 并展示 v-t ...
最新文章
- npm构建脚本_NPM脚本简介
- 人类与AI结合的最佳形态是什么样?|A16Z内部万字报告
- android service 学习(上)
- php中的interface和implements及其他
- MongoDB GridFS——本质上是将一个文件分割为大小为256KB的chunks 每个chunk里会放md5标识 取文件的时候会将这些chunks合并为一个整体返回...
- python3.8.2安装教程-在服务器上安装python3.8.2环境的教程详解
- Mysql 授权控制
- Js中 call() 与 apply() exports
- C算法编程题(二)正螺旋
- 使用Docker构建Oracle ADF应用程序
- mysql循环建表_MySQL 开发准则(总结自阿里巴巴开发手册)
- Linux下的进程管理——task_struct
- 计算机配置主板技术参数,i9-7900X/7920X配什么主板好?i9-7920X/7900X主板搭配与参数详解...
- sqlite可视化工具sqliteman的问题
- Markdown文件的标题分级自动编号——Typora
- take apart /ke back等动词词组
- Base64加密和解密使用
- 卡农,用敬仰和泪水思念着你~~~~~
- 步步为营——局域网调试NAS软路由“PVE+爱快+lede+黑群晖硬盘直通”并移植到宽带网(超详细,上篇)
- 软件定义存储的头部厂商也来了,XSKY 星辰天合加入龙蜥社区
热门文章
- matlab2015 产品目录,MathWorks发布包含MATLAB和Simulink产品系列的 Release 2015b-EDA/PCB-与非网...
- jquery实现群星闪烁的效果
- html 手机端瀑布流,移动端 瀑布流布局
- android横向瀑布流布局,ReCyclerView实现瀑布流布局
- potPlayer-windows安装包,皮肤,配置及使用
- 接口测试系列——转转交易业务场景接口测试实践
- html华为手机兼容问题,华为手机不兼容储存卡么
- 操作系统、乱码、驱动、键盘失灵、win7
- Ubuntu wget命令错误
- 数独Sudoku(DFS)