您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

vue3单文件组件中style特性的深入讲解

51自学网 2022-05-02 21:32:37
  javascript

style scoped

需要注意的有:

  • 样式不会影响到其他组件,只会在当前组件生效。
  • 子组件的根元素会同时 受父组件的作用域样式,和子组件的作用域样式影响. 这样做的目的是让父组件可以调整子组件的布局。
  • 存在3个特殊的选择器:

1. 深度选择器:可以影响到子组件. 使用伪类 => :deep(cls: 影响的选择器)

    .a :deep(.b) {        ...    }

2. 插槽选择器: 可以影响到插槽内容的样式。使用伪类 => :slotted(选择器)

    :slloted(.a) {        ...    }

3. 全局选择器: 是样式影响到全局。 使用伪类 => :global(选择器)

    :slloted(.a) {        ...    }

scoped style 可以和 style同时存在

style module

style 标签中带有 module。其样式和 style scoped一样只能作用域于当前组件。

此方式会将css 编译为 css modules.且暴露给组件$styles对象来使用css样式

<template>  <p :class="$style.red">    This should be red  </p></template><style module>.red {  color: red;}</style>

可以给module赋值来自定义暴露的对象名称

<template>  <p :class="style.red">    This should be red  </p></template><style module='style'>.red {  color: red;}</style>

在组合式api中可以使用 useCssModule() api来使用cssModule.

// 默认, 返回 <style module> 中的类useCssModule()// 命名, 返回 <style module="classes"> 中的类useCssModule('classes')

状态驱动的动态css

可以使用 v-bind() 来将css值关联到动态的组件状态上

<template>  <div class="text">hello</div></template><script>export default {  data() {    return {      color: 'red'    }  }}</script><style>.text {  color: v-bind(color);}</style>

总结

到此这篇关于vue3单文件组件中style特性的文章就介绍到这了,更多相关vue3单文件组件style特性内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


JS实现随机生成验证码
JavaScript必备的断点调试技巧总结(推荐)
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1