美文网首页人生几何?
[vue3快速入门] 13.样式控制2——style绑定

[vue3快速入门] 13.样式控制2——style绑定

作者: 林哥学前端 | 来源:发表于2021-09-15 08:51 被阅读0次

    跟class绑定类似,我们在vue里动态控制一个元素的style时,最常用的也是对象的方式,例如

    <div :style="{color: activeColor}"></div>
    
    data() {
      return {
        activeColor: 'red',
      }
    }
    

    渲染的结果就是

    <div style="color: red;"></div>
    

    在css属性名中,有好多是多个单词,用短杠链接的,在绑定style时候要注意,这次属性名要写成驼峰式或者还是用短杠链接,不过要用引号括起来
    例如:

    <div :style="{ fontSize: large + 'px' }"></div>
    

    或者

    <div :style="{ 'font-size': large + 'px' }"></div>
    

    data是这样的

    data(){
      return{
        large: 18
      }
    }
    

    还有一个点需要注意,想font-size这种有单位的属性,写的时候别忘了后面的单位,px或者em什么的

    我们再来写一个背景图片的例子,
    data数据里有一个头像的url,叫做avatarURL

    data(){
      return{
        avatarURL: 'http://www.test.com/avatar.jpg'
      }
    }
    

    然后我们把它绑定到一个div中,当做背景图

    <div :style="{'background-image': 'url('+avatarURL+')'}"></div>
    

    渲染的结果是

    <div style="background-image: url(http://www.test.com/avatar.jpg);"></div>
    

    下面我们写一个实际工作中可能会遇到的例子,
    现在有一个标题,但是显示标题的宽度有限,要求标题字数越少时,字号越大,字数越多是,字号越小

    <template>
      <h1 :style="{ fontSize: fontSize + 'px' }">{{ title }}</h1>
      <input type="text" v-model="title" />
    </template>
    
    <script>
    // style绑定
    export default {
      name: 'App',
      data() {
        return {
          title: '这是一个标题',
        }
      },
      computed: {
        fontSize() {
          return 30 - this.title.length // fontSize这个计算属性根据title的长度计算,长度越长,fontSize越小
        },
      },
    }
    </script>
    
    <style></style>
    
    

    正好也用这个例子复习了我们之前学习的input的v-model绑定,计算属性
    比较生疏的小伙伴一定要动手写一写,然后通过input更改一下title的长度,就可以看到字号变化了。

    相关文章

      网友评论

        本文标题:[vue3快速入门] 13.样式控制2——style绑定

        本文链接:https://www.haomeiwen.com/subject/hnufgltx.html