编辑按钮工具提示颜色 Prime React

Edit button tooltip color Prime React

我正在尝试更改工具提示的背景颜色,我正在使用 prime 反应按钮 (https://primefaces.org/primereact/showcase/#/tooltip)。

Tooltip image

我的代码:

<DebtorClientColumn>
   <Tooltip tooltip="Mensagem do tooltip" tooltipOptions={{ position: "bottom" }}>
      <DebtorIcon
        data-testid={`debtor-icon-${client._id}`}
       />
   </Tooltip>

我已尝试设置 DebtorClientColumn 和工具提示的样式,但两者都不起作用:

const Tooltip = styled(Button)`
    .p-tooltip{
        background-color: ${Colors.white} !important;
        color:  ${Colors.white} !important;
    }   

    .p-tooltip-arrow     {
        background-color: ${Colors.white} !important;
        color:  ${Colors.white} !important;

    }

    .p-tooltip-text      {
        background-color: ${Colors.white} !important;
        color: ${Colors.strawberry} !important;

    }
`

const DebtorClientColumn = styled.div`
    display: flex;
    flex-direction: row;

    .p-button, .p-button:enabled:active, .p-button:enabled:hover{
        background-color: ${Colors.white};
        border: none;
        font-size: 0px
    };

    .p-button:enabled:focus {
        box-shadow: none
    };

    .p-tooltip{
        background-color: ${Colors.white} !important;
    }   

    .p-tooltip-arrow     {
        background-color: ${Colors.white} !important;
    }

    .p-tooltip-text      {
        background-color: ${Colors.white} !important;
        color: ${Colors.strawberry} !important;
    }
`

使用 tooltipOptions 并提供自定义 class。

Working demo (hoverover on the button)

JSX

       <Button
          tooltipOptions={{
            className: "hoverClass",
            showDelay: 500,
            hideDelay: 101300
          }}
          type="button"
          label="Save"
          icon="pi pi-check"
          tooltip="Click to proceed"
        />

CSS

.hoverClass .p-tooltip-text {
  background-color: red !important;
}

编辑:

工具提示是portals,它们是一个单独的渲染树。带样式的组件的 classes 的范围限定为已设置样式的元素。您可以定位样式元素和其中的元素,但是当涉及到门户时,您不能应用 classes。参见 github issue here

因此,在您的情况下,对于样式工具提示,请使用此答案中提到的常规 css。

您可以使用样式组件加入图标

在这里您可以看到应该呈现工具提示的列或主要组件

const Container = styled.div`
    display: flex;
    flex-direction: row;
    justify-content: center;

    &:hover ${Tooltip} {
        display: inline;
        text-align:center
    }
  `

这里是工具提示组件:

const Tooltip = styled.div`
    display: none;
    position: absolute;
    margin-top: 28px;
    border-radius: 4px;
    box-shadow: 0 1px 15px 0 black;
    background-color: ${Colors.white};
    padding: 6px;
`;

您应该使用以下方式处理组件:

 <Container>
  <Tooltip />
</Container>