经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS » 查看文章
Vue如何在CSS中使用data定义的数据浅析
来源:jb51  时间:2022/5/9 14:22:59  对本文有异议

1、考虑一个问题, 后端传来一个数据, 比如是某个百分比, 需要在页面做进度展示. 一般的情况都会在 CSS 中设置数据展示, 但是 CSS 中如何获取到后端传来的数据呢?

2、使用自定义属性: data-

通过 v-bind 将后端的数据绑定在自定义 HTML 属性上, 然后通过 CSS 的 attr() 函数获取该属性

  1. <template>
  2. <div>
  3. <div class="box"
  4. :data-content="obj.desc"
  5. :data-percent="obj.percent"></div>
  6. </div>
  7. </template>
  8.  
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. obj: {
  14. percent: '30%',
  15. desc: '哈哈哈哈哈哈'
  16. }
  17. }
  18. },
  19. }
  20. </script>
  21.  
  22. <style>
  23. .box {
  24. width: 400px;
  25. height: 200px;
  26. border: 1px solid salmon;
  27. position: relative;
  28. }
  29. .box::before, .box::after {
  30. position: absolute;
  31. top: 0; bottom: 0;
  32. }
  33. .box::before {
  34. content: attr(data-content);
  35. left: 0;
  36. right: calc(100% - attr(data-percent));
  37. background-color: deepskyblue;
  38. }
  39. .box::after {
  40. content: attr(data-content);
  41. right: 0;
  42. left: attr(data-percent);
  43. background-color: deeppink;
  44. }
  45. </style>

最后页面展示

??计算 right 部分失效了, 原因是 attr() 函数不能在 calc() 中使用! 怎么办呢?

3、自定义 CSS 变量

通过在 HTML 的 style 属性以 v-bind 的形式绑定定义的 CSS 变量, 继而在 CSS 中使用该变量达到效果

  1. <template>
  2. <div>
  3. <div class="box"
  4. :style="{'--percent': obj.percent}"
  5. :data-content="obj.desc"
  6. :data-percent="obj.percent"></div>
  7. </div>
  8. </template>
  9. <style>
  10. .box {
  11. width: 400px;
  12. height: 200px;
  13. border: 1px solid salmon;
  14. position: relative;
  15. }
  16. .box::before, .box::after {
  17. position: absolute;
  18. top: 0; bottom: 0;
  19. }
  20. .box::before {
  21. content: attr(data-content);
  22. left: 0;
  23. /* right: calc(100% - attr(data-percent)); */
  24. right: calc(100% - var(--percent));
  25. background-color: deepskyblue;
  26. }
  27. .box::after {
  28. content: attr(data-content);
  29. right: 0;
  30. /* left: attr(data-percent); */
  31. left: var(--percent);
  32. background-color: deeppink;
  33. }
  34. </style>

上面的代码省略了 <script> 标签部分, 因为这部分没有改动

总结

到此这篇关于Vue如何在CSS中使用data定义的数据的文章就介绍到这了,更多相关Vue在CSS使用data的数据内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号