Skip to content

Box(盒子)

概述

Box 组件是一个容器组件,旨在帮助你轻松创建带有不同样式和内容的盒子。它可以用于各种 UI 布局中,支持多种类型的样式、插槽内容、自定义类名等功能。

预览

这是一个 Primary 类型的 Box
这是一个 Secondary 类型的 Box
这是一个使用 Section 标签的 Box
带有自定义类名的 Box

插槽内容可以是任意的 HTML 或组件。

基本使用
展示如何使用基本的 Box 组件,包含不同的类型和插槽内容。
<template>
  <div>
    <!-- 案例 1:基础使用 -->
    <se-box type="primary">这是一个 Primary 类型的 Box</se-box>

    <!-- 案例 2:带有自定义类型 -->
    <se-box type="secondary">这是一个 Secondary 类型的 Box</se-box>

    <!-- 案例 3:动态标签 -->
    <se-box type="success" tag="section"
      >这是一个使用 Section 标签的 Box</se-box
    >

    <!-- 案例 4:自定义类名 -->
    <se-box type="warning" customClass="custom-style"
      >带有自定义类名的 Box</se-box
    >

    <!-- 案例 5:动态插槽内容 -->
    <se-box type="info">
      <template #default>
        <p>插槽内容可以是任意的 HTML 或组件。</p>
        <button>这是一个按钮</button>
      </template>
    </se-box>
  </div>
</template>

<style scoped>
/* 示例:自定义样式 */
.custom-style {
  border: 2px dashed red;
  padding: 10px;
}
</style>

示例

html
<se-box>测试</se-box>

基础配置

参数说明

参数名类型默认值描述
typeString''用于设置 Box 组件的类型,控制其样式。可选值:primary, secondary, success, warning, info, custom
tagString'div'用于自定义渲染的 HTML 标签。默认是 div,可以选择其他标签(如 sectionarticle 等)。
customClassString''为 Box 组件添加额外的自定义类名,方便进行样式扩展和个性化设计。
slotsVNodenull支持默认插槽和具名插槽,可以将自定义内容插入到 Box 组件内。

类型 (type) 说明

Box 组件通过 type 参数支持不同的样式。通过设置不同的类型,组件的外观和颜色会发生变化,适应不同的业务需求。以下是可用的类型及其对应样式:

  • primary: 蓝色主题,适用于需要突出显示的重要内容。
  • secondary: 灰色主题,适用于次要或辅助性内容。
  • success: 绿色主题,表示成功或通过的状态。
  • warning: 黄色主题,表示警告或需要注意的内容。
  • info: 蓝绿色主题,用于提示信息。
  • custom: 自定义样式,允许你通过自定义类名来修改样式。

示例:基础使用

html
<se-box>这是一个基础的 Box</se-box>

示例:设置类型

html
<se-box type="primary">这是一个 primary 类型的 Box</se-box>
<se-box type="success">这是一个 success 类型的 Box</se-box>

标签 (tag) 说明

tag 属性允许你自定义渲染的 HTML 标签,默认为 div,你可以根据实际需求将其更改为其他标签,如 sectionarticle,以增强语义化。

示例:自定义标签

html
<se-box type="info" tag="section">这是一个使用 section 标签的 Box</se-box>

自定义类名 (customClass)

通过 customClass 属性,你可以为 Box 组件添加一个或多个额外的 CSS 类,进而应用定制化的样式。这样,你可以在不修改组件本身的情况下,轻松实现样式定制。

示例:自定义类名

html
<se-box type="warning" customClass="my-custom-box">这是一个带有自定义类名的 Box</se-box>
css
/* 自定义样式 */
.my-custom-box {
    border: 2px dashed red;
    background-color: #fff4f4;
}

插槽内容 (slots)

Box 组件支持插槽,可以插入任意的内容(如文本、按钮、图标或其他组件)以增强其灵活性。你可以通过默认插槽或具名插槽来传递内容。

示例:插槽内容

html
<se-box type="info">
    <p>这是插槽中的内容,可以是任意 HTML 或组件。</p>
    <button>点击按钮</button>
</se-box>

高级用法

响应式设计

Box 组件支持响应式设计,确保在不同屏幕尺寸下都能良好展示。你可以通过 @media 媒体查询自定义样式,调整 Box 的内边距、字体大小等,确保组件在各种设备上都具有良好的显示效果。

示例:响应式样式

less
@media (max-width: 768px) {
    .se-box {
        font-size: 14px;
        padding: 12px;
    }
}

其他说明

  1. 交互效果:所有类型的 Box 都包含简单的 hover 效果,在鼠标悬停时,组件的背景色和边框颜色会发生变化,提供用户交互反馈。
  2. 默认样式Box 组件自带基础的边框、圆角、内边距等样式,可根据需要通过 typecustomClasstag 属性进行扩展。
  3. 主题支持Box 组件通过不同的 type 属性支持多种视觉主题,适应不同的 UI 风格和设计需求。

总结

Box 组件是一个灵活的容器,支持通过参数配置、插槽内容和自定义样式进行定制,适用于各种 UI 布局。它使得在 Vue 项目中创建容器变得更加简便和高效。

Released under the MIT License.