Vue之样式绑定

更新日期: 2019-11-17阅读: 2.1k标签: 样式

前端开发中,设置元素的 class 列表和内联样式是基本要求。本文主要讲解vue开发中,样式列表和内联样式的绑定,仅供学习分享使用,如果有不足之处,还请指正。


概述

Vue操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。


绑定 html Class

可以传给 v-bind:class 一个对象,以动态地切换 class:

<div v-bind:class="{red:isred,bold:isbold}">混合样式1--绑定数据属性</div>

上面的语法表示 red 这个 class 存在与否将取决于数据属性 isred 的 是否为true。你可以在对象中传入更多属性来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class 属性共存。

绑定的数据对象采用复合样式的效果,不必内联定义在模板里,如下所示:

<div v-bind:class="multi">混合样式2---复合对象</div>

其中multi是一个复合数据对象,如下所示:

<script type="text/javascript">
    var vm=new Vue({
        el:"#app",
        data:{
            bg:'yellow',
            isbold:true,
            isred:true,
            multi:{
                red:true,
                bold:true,
            }
        }

    });
</script>

以上两种,结果渲染是一样的,如下所示:

<div class="red bold"></div>


绑定计算属性

我们也可以在这里绑定一个返回对象的计算属性。这是一个常用且强大的模式:

<div v-bind:class="cmpstyle">混合样式3---计算属性</div>

其中cmpstyle是一个计算属性,返回的对象,如下所示:

<script type="text/javascript">
    var vm=new Vue({
        el:"#app",
        computed:{
            cmpstyle:function(){
                return {
                    red:true,
                    bold:true,
                }
            }
        }
    });
</script>

css数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

<div v-bind:class="arrcss">混合样式4---数组绑定样式</div>

其中arrcss是一个数组样式,如下所示:

<script type="text/javascript">
    var vm=new Vue({
        el:"#app",
        data:{
            arrcss:['red','bold'],
        }
    });
</script>

绑定内联样式

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名:

<div v-bind:style="{color:bg2}">内联样式2--属性</div>

绑定内联样式,直接绑定到一个样式对象通常更好,这会让模板更清晰:

<div v-bind:style="bg3">内联样式3--绑定对象</div>

其中,bg3是一个对象,如下所示:

<script type="text/javascript">
    var vm=new Vue({
        el:"#app",
        data:{
            bg2:'green',
            bg3:{
                color:'red',
                fontSize:'30px'
            }
        }
    });
</script>

内联样式数组语法

v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:

<div v-bind:style="[bg3,bg4]">内联样式4--绑定对象</div>


多重值

从 2.3.0 起你可以为 style 绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:

<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex。


链接: https://fly63.com/article/detial/6895

css样式大全,完整的Css样式大全(整理)

CSS样式被称为为“层叠样式表”,是一种网页制作做不可或缺的技术,是用于装饰网页,达到设计效果的一种样式语言。

css 分割线样式_css实现文章分割线的多种方法总结

这篇文章整理css如何实现文章分割线的多种方式,分割线在页面中可以起到美化作用,那么就来看看使用css实现分割线样式的多种方法:单个标签实现分隔线、巧用背景色实现分隔线、inline-block实现分隔线、浮动实现分隔线、利用字符实现分隔线

原生js获取、添加、修改_非行间css样式

在html中样式分为:浏览器默认样式,引用样式(link外部样式文件,stle标签定义样式)、行间样式(及节点style属性定义的样式)。这篇文章主要讲解使用原生js获取、添加非行间css样式。

css常用样式整理_css属性大全

css常用样式有哪些?这篇文章整理如下内容:字体属性(font)、 常用字体 (font-family)、背景属性 (background)、区块属性 (Block)、方框属性 (Box)、边框属性 (Border)、列表属性 (List-style)、定位属性 (Position)、CSS文字属性

CSS层叠样式表

层叠样式表,用来表现HTML或者XML等文件样式的计算机语言。网页表现与内容分离的样式设计语言,能够对网页中对象排版进行像素级精确控制,几乎支持所有字体字号

如何用自己喜欢的 CSS 风格重置网站的样式

许多前端开发人员都在用 Normalize 为他们的网站设计样式。一些人喜欢在 Normalize.css 中添加一些自己偏好的样式,我也一样。在本文中,我会与你分享我自己的 CSS reset 项目(除了 Normalize.css 之外我还使用它们)。

css单行截断和多行截断问题

多行截断有好几种方法,可以直接使用float方法,方便自定义样式及监听事件,并且兼容性好,是暂时最完美的解决方案。就是略复杂,不过网上有可以直接拿来用哦~

引入CSS样式的三种方式

行内式:该语法中style是标记的属性,实际上任何HTML标记都拥有style属性,用来设置行内式。内嵌式<style>标记一般位于<head>标记中的<title>标记之后,也可以把它放在HTML文档的任何地方。

整理一些少用但又实用的 CSS 样式

什么是偏门,就是有些片段很少使用,时间久了就记不起来,但用的时候又要去找,所以这里为大家整理一些少用但又实用的 CSS 样式,input 的 H5 placeholder 属性,很好用,但不能直接改这个文字颜色

vue用v-html加载渲染,里面的内容样式不生效

需要输出富文本的内容,需要设置里面的图片样式最大宽度100%。可是设置img 100%后没反应,看F12检查元素也没加上去。解决方法有2个:coped属性导致css仅对当前组件生效

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!