当标签覆盖多条线时,步进器垂直线分离?

Posted

技术标签:

【中文标题】当标签覆盖多条线时,步进器垂直线分离?【英文标题】:Stepper vertical line detaches when label wraps over multiple lines? 【发布时间】:2021-11-30 02:38:44 【问题描述】:

MaterialUI Stepper // StepLabel 中的文本有时会包含多行。

无论标签中的文本行数如何,我都需要保持垂直 StepConnector 附加在 StepIcons 上。

我尝试过其他解决方案,例如使用 CSS 伪标签,但每次尝试将这些更改应用于我们现有的解决方案时都会碰壁。

非常感谢任何可以提供帮助的人。

沙盒

https://codesandbox.io/s/practical-chebyshev-4hktl?file=/src/App.js

当前截图

现有的主题选项

import 
  ThemeOptions,
  createTheme,
  ThemeProvider,
  CssBaseline
 from "@material-ui/core";

export const themeOptions: ThemeOptions = 
  overrides: 
    MuiStepper: 
      root: 
        backgroundColor: "transparent" // remove set background
      
    ,
    MuiStepConnector: 
      vertical: 
        padding: 0,
        width: 5,
        marginLeft: 8 // half icon
      ,
      lineVertical: 
        top: "calc(-50%)",
        bottom: "calc(50%)",
        borderLeftWidth: "2px",
        marginLeft: "-1px", // center (1/2 width)
        marginTop: "-6px", // add -ve margin to top and bottom ...
        marginBottom: "-6px", // ... to hide gap due to smaller icon
        borderColor: "lightgrey",
        "$active &, $completed &": 
          borderLeftWidth: "4px",
          marginLeft: "-2px",
          borderColor: "blue"
        
      
    ,
    MuiStepLabel: 
      label: 
        textAlign: "left",
        fontSize: "1.25rem",
        "&$active": 
          fontWeight: 400
        ,
        "&$completed": 
          fontWeight: 400
        
      ,
      iconContainer: 
        paddingRight: 12
      
    ,
    MuiStepIcon: 
      root: 
        display: "block",
        fontSize: "1rem",
        color: "lightgrey",
        "&$completed": 
          color: "blue"
        ,
        "&$active": 
          color: "blue"
        
      
    
  
;

【问题讨论】:

【参考方案1】:

以防万一将来有人发现这一点,我们在实施上做出了妥协以交付任务。

MuiStepLabel 没有使用可变高度,而是给定了一个固定高度,以保持 StepIcon 之间的距离相同。如果您想象下面的屏幕截图具有不同的字体大小 + 间距,它最终看起来还不错,但并不理想。

之前

// src/Theme/index.tsx

export const themeOptions: ThemeOptions = 
  overrides: 
    MuiStepConnector: 
        marginTop: "-6px",
        marginBottom: "-6px",
    
    MuiStepLabel: 
  

之后

// src/Theme/index.tsx

export const themeOptions: ThemeOptions = 
  overrides: 
    MuiStepConnector: 
        marginTop: "-2px",
        marginBottom: "-4px",
        minHeight: "calc(24px + 0.5rem)",
    ,
    MuiStepLabel: 
        height: "1.25rem",
        lineHeight: "1.25rem",
    
  

沙盒

https://codesandbox.io/s/epic-bohr-0p7fj?file=/src/Theme/index.ts

【讨论】:

以上是关于当标签覆盖多条线时,步进器垂直线分离?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL读写分离

如何使用角和角材料将步进器从一步移动到第二步

屏幕太小时,Angular Material 步进器标题消失

css基础语法

1 css概念

YAML缩进和分离