Border 边框

我们对边框进行统一规范,可用于按钮、卡片、弹窗等组件里。

边框样式

我们提供了以下几种边框样式,以供选择。

Border 边框 - 图1

  1. <template>
  2. <table class="demo-border">
  3. <tbody>
  4. <tr>
  5. <td class="text">Name</td>
  6. <td class="text">Thickness</td>
  7. <td class="line">Demo</td>
  8. </tr>
  9. <tr>
  10. <td class="text">Solid</td>
  11. <td class="text">1px</td>
  12. <td class="line">
  13. <div />
  14. </td>
  15. </tr>
  16. <tr>
  17. <td class="text">Dashed</td>
  18. <td class="text">2px</td>
  19. <td class="line">
  20. <div class="dashed" />
  21. </td>
  22. </tr>
  23. </tbody>
  24. </table>
  25. </template>
  26. <style scoped>
  27. .demo-border .text {
  28. width: 15%;
  29. }
  30. .demo-border .line {
  31. width: 70%;
  32. }
  33. .demo-border .line div {
  34. width: 100%;
  35. height: 0;
  36. border-top: 1px solid var(--el-border-color);
  37. }
  38. .demo-border .line .dashed {
  39. border-top: 2px dashed var(--el-border-color);
  40. }
  41. </style>

圆角

我们提供了以下几种圆角样式,以供选择。

Border 边框 - 图2

  1. <template>
  2. <el-row :gutter="12" class="demo-radius">
  3. <el-col
  4. v-for="(radius, i) in radiusGroup"
  5. :key="i"
  6. :span="6"
  7. :xs="{ span: 12 }"
  8. >
  9. <div class="title">{{ radius.name }}</div>
  10. <div class="value">
  11. <code>border-radius: {{ getValue(radius.type) || '0px' }}</code>
  12. </div>
  13. <div
  14. class="radius"
  15. :style="{
  16. borderRadius: radius.type
  17. ? `var(--el-border-radius-${radius.type})`
  18. : '',
  19. }"
  20. />
  21. </el-col>
  22. </el-row>
  23. </template>
  24. <script lang="ts" setup>
  25. import { ref } from 'vue'
  26. const radiusGroup = ref([
  27. {
  28. name: 'No Radius',
  29. type: '',
  30. },
  31. {
  32. name: 'Small Radius',
  33. type: 'small',
  34. },
  35. {
  36. name: 'Large Radius',
  37. type: 'base',
  38. },
  39. {
  40. name: 'Round Radius',
  41. type: 'round',
  42. },
  43. ])
  44. const getValue = (type: string) => {
  45. const getCssVarValue = (prefix, type) =>
  46. getComputedStyle(document.documentElement).getPropertyValue(
  47. `--el-${prefix}-${type}`
  48. )
  49. return getCssVarValue('border-radius', type)
  50. }
  51. </script>
  52. <style scoped>
  53. .demo-radius .title {
  54. color: var(--el-text-color-regular);
  55. font-size: 18px;
  56. margin: 10px 0;
  57. }
  58. .demo-radius .value {
  59. color: var(--el-text-color-primary);
  60. font-size: 16px;
  61. margin: 10px 0;
  62. }
  63. .demo-radius .radius {
  64. height: 40px;
  65. width: 70%;
  66. border: 1px solid var(--el-border-color);
  67. border-radius: 0;
  68. margin-top: 20px;
  69. }
  70. </style>

阴影

我们提供了以下几种投影样式,以供选择。

Border 边框 - 图3

  1. <template>
  2. <div class="flex justify-between items-center flex-wrap">
  3. <div
  4. v-for="(shadow, i) in shadowGroup"
  5. :key="i"
  6. class="flex flex-col justify-center items-center"
  7. m="auto"
  8. w="46"
  9. >
  10. <div
  11. class="inline-flex"
  12. h="30"
  13. w="30"
  14. m="2"
  15. :style="{
  16. boxShadow: `var(${getCssVarName(shadow.type)})`,
  17. }"
  18. />
  19. <span p="y-4" class="demo-shadow-text" text="sm">
  20. {{ shadow.name }}
  21. </span>
  22. <code text="xs">
  23. {{ getCssVarName(shadow.type) }}
  24. </code>
  25. </div>
  26. </div>
  27. </template>
  28. <script lang="ts" setup>
  29. import { ref } from 'vue'
  30. const shadowGroup = ref([
  31. {
  32. name: 'Basic Shadow',
  33. type: '',
  34. },
  35. {
  36. name: 'Light Shadow',
  37. type: 'light',
  38. },
  39. {
  40. name: 'Lighter Shadow',
  41. type: 'lighter',
  42. },
  43. {
  44. name: 'Dark Shadow',
  45. type: 'dark',
  46. },
  47. ])
  48. const getCssVarName = (type: string) => {
  49. return `--el-box-shadow${type ? '-' : ''}${type}`
  50. }
  51. </script>

源代码

文档 Border 边框 - 图4