樣式化組件不重寫內(nèi)聯(lián)樣式

我正在嘗試重寫第三方組件內(nèi)聯(lián)樣式。

我遵循了文檔我怎么能覆蓋內(nèi)聯(lián)樣式

所以,我用&[style]重寫了內(nèi)聯(lián)樣式,但這不起作用。

我使用的第三方組件是CookieConsent

現(xiàn)在,我的組件看起來(lái)是這樣的:

import React from 'react';

import CookieConsent from 'react-cookie-consent';
import styled from 'styled-components';

const StyledCookieBanner = styled(CookieConsent)`
  &[style] {
    justify-content: center;
    align-items: center;
    width: calc(100% - 20px);
    margin: 10px;
    padding: 20px;
    background-color: white;
    border-radius: 22px;
    box-shadow: 0 0 19px 3px rgba(0, 0, 0, 0.17);
  }
`;

const CookieBanner = (): React.ReactElement => {
  return (
    <StyledCookieBanner debug buttonText='Ok'>
      Cookie
    </StyledCookieBanner>
  );
};

export default CookieBanner;

我還嘗試了如何用更高的特異性覆蓋樣式,但沒(méi)有成功。

我發(fā)現(xiàn)重寫樣式的唯一方法是這樣做并使用!important

const StyledCookieBanner = styled(CookieConsent)`
  > div {
    justify-content: center;
    align-items: center !important;
    width: calc(100% - 20px) !important;
    margin: 10px;
    padding: 20px;
    background-color: white !important;
    border-radius: 22px;
    box-shadow: 0 0 19px 3px rgba(0, 0, 0, 0.17);
  }
`;

也嘗試過(guò),但沒(méi)有成功

const StyledCookieBanner = styled(CookieConsent)`
  > div {
    // &&& {
    &[style] {
      justify-content: center;
      align-items: center;
      ...
    }
  }
`;

文件看起來(lái)很清楚,但我沒(méi)有成功。

我錯(cuò)過(guò)什么了嗎?這是可能的還是應(yīng)該使用style組件道具?

? 最佳回答:

從鏈接的文檔頁(yè)面:

內(nèi)聯(lián)樣式總是優(yōu)先于外部CSS,因此不能通過(guò)簡(jiǎn)單地增加特定性來(lái)覆蓋它。

我們就到此為止。樣式化組件向元素添加類。在HTML/CSS中,style屬性樣式幾乎總是勝過(guò)class-based樣式;樣式化組件(或任何其他class-based庫(kù))都無(wú)法改變這一點(diǎn)。。。除非你對(duì)!important使用“hack”,那就是。。。

不過(guò),還有一個(gè)巧妙的技巧,那就是將樣式element-attrCSS選擇器與!重要提示:

!important是黑客攻擊的重要組成部分,因此您發(fā)布的(有效)代碼:

const StyledCookieBanner = styled(CookieConsent)`
 > div {
    justify-content: center;
    align-items: center !important;
    width: calc(100% - 20px) !important;
    margin: 10px;
    padding: 20px;
    background-color: white !important;
    border-radius: 22px;
    box-shadow: 0 0 19px 3px rgba(0, 0, 0, 0.17);
  }
`;

是正確的,也是你唯一的選擇。

如果你真的想覆蓋style屬性。。。重寫樣式屬性:)不要使用樣式化的組件,在元素上使用style屬性(或者在您的情況下,請(qǐng)react-cookie-consent使用style屬性來(lái)實(shí)現(xiàn)該效果)。

主站蜘蛛池模板: 夜夜精品视频一区二区| 精品一区二区久久| 无码毛片一区二区三区视频免费播放 | 夜夜嗨AV一区二区三区| 亚洲一区二区三区在线观看蜜桃| 鲁丝片一区二区三区免费| 在线观看亚洲一区二区| 精品无人区一区二区三区| 亚洲AV无码一区二区三区系列| 精品日韩在线视频一区二区三区| 变态调教一区二区三区| 亚洲熟妇无码一区二区三区| 无码人妻精品一区二区三区不卡| 无码人妻精一区二区三区| 国产一区二区三区91| 黄桃AV无码免费一区二区三区| 久久久久人妻一区精品果冻| 色综合视频一区二区三区44| 国产一区二区在线| 国产香蕉一区二区在线网站| 手机福利视频一区二区| 精品一区二区视频在线观看| 人妻少妇久久中文字幕一区二区 | 日本一区二区三区免费高清在线| 八戒久久精品一区二区三区| 国产成人无码aa精品一区| 视频在线一区二区三区| 精品国产一区二区三区香蕉事 | 末成年女AV片一区二区| 国产亚洲一区二区精品| 亚洲色欲一区二区三区在线观看| 久久精品一区二区三区中文字幕| 亚洲熟女乱综合一区二区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产在线观看91精品一区| 在线观看日韩一区| 人妻无码一区二区三区| 日产一区日产2区| 精品亚洲A∨无码一区二区三区| 少妇特黄A一区二区三区| 国产主播福利精品一区二区|