JQuery භාවිතා කිරීමෙන් පසු :: පෙර සහ :: වැනි CSS ව්‍යාජ මූලද්‍රව්‍ය තෝරා ගැනීම සහ හැසිරවීම


961

JQuery භාවිතා කරමින් ::beforeසහ ::after(සහ එක් අර්ධ යටත් විජිතයක් සහිත පැරණි අනුවාදය) වැනි CSS ව්‍යාජ මූලද්‍රව්‍ය තෝරා ගැනීමට / හැසිරවීමට ක්‍රමයක් තිබේද?

උදාහරණයක් ලෙස, මගේ මෝස්තර පත්‍රයට පහත රීතිය ඇත:

.span::after{ content:'foo' }

JQuery භාවිතා කර 'foo' 'bar' ලෙස වෙනස් කරන්නේ කෙසේද?


4
මම ඔබ වෙනුවෙන් වැඩ කළ යුතු දෙයක් සෑදුවෙමි
yckart

1
මම ලිවීමට යන ස්ටැක් ඕවර් ප්‍රවාහය පිළිබඳ එවැනි අදහස් වලට මම වෛර කරමි (එහිදී විවරණකරු අසන්නේ ඇයි ඔබ එය සම්පූර්ණ ප්‍රතිවිරුද්ධ ආකාරයකින් නොකරන්නේ? ), නමුත්: යම් අවස්ථාවක දී කේත-සැලසුම් ගැටළුව අවබෝධ කර ගෙන එම ව්‍යාජ මූලද්‍රව්‍යය ආදේශ කළ යුතුය පරතරය හෝ යමක්. මම හිතන්නේ ඔබ පෙන්වා දෙන දේ ඔබ දන්නවා ඇති.
zsitro

1
පිළිගත් පිළිතුර විශිෂ්ටයි. ඔබ පහත සඳහන් කරුණු කිසිවක් සාක්ෂාත් කර ගැනීමට උත්සාහ කළත්, පිළිතුර ක්‍රියාත්මක නොවනු ඇත: 1. ශෛලිය වෙනස් කරන්න: පෙර ජේ. 2. අන්තර්ගතය වෙනස් කරන්න: පෙර JS විසින් ඔබට අවශ්‍ය නම් ඒ සඳහා මගේ පිළිතුර බලන්න.
ඉගෙනුම්


@Learner දැන් මේ සියලු tfor පිළිතුරක් නැත: stackoverflow.com/a/49618941/8620333
Temani Afif

Answers:


707

ඔබට දත්ත අංගයක් සමඟ ව්‍යාජ මූලද්‍රව්‍යයට අන්තර්ගතය යැවිය හැකි අතර එය හැසිරවීමට jQuery භාවිතා කරන්න:

HTML හි:

<span>foo</span>

JQuery හි:

$('span').hover(function(){
    $(this).attr('data-content','bar');
});

CSS හි:

span:after {
    content: attr(data-content) ' any other text you may want';
}

ඔබට 'වෙනත් පෙළ' පෙන්වීම වලක්වා ගැනීමට අවශ්‍ය නම්, ඔබට මෙය සීකෝලෙගාගේ විසඳුම සමඟ ඒකාබද්ධ කළ හැකිය:

HTML හි:

<span>foo</span>

JQuery හි:

$('span').hover(function(){
    $(this).addClass('change').attr('data-content','bar');
});

CSS හි:

span.change:after {
    content: attr(data-content) ' any other text you may want';
}

2
දේපලවලට attrඑරෙහිව එම ශ්‍රිතය භාවිතා කිරීම සඳහා පිරිවිතරයේ ඔබට සබැඳියක් contentතිබේද? මට පුදුමයි මම මේ ගැන කවදාවත් අසා නැති බව ...
කෙවින් පෙන්ෝ

98
+1 සඳහා attr(), ඉතා නරක නිසා මට වෙනත් ගුණාංග සමඟ එය භාවිතා කිරීමට නොහැකි විය content. නිරූපණය
මැක්සිම් වී.

29
එයට හේතුව attr()CSS2 න් ඔබ්බට කිසිදු බ්‍රව්සරයක් තවමත් ක්‍රියාත්මක වී නොමැති අතර CSS2 attr()හි contentදේපල සඳහා පමණක් අර්ථ දක්වා ඇති බැවිනි.
බෝල්ට් ක්ලොක්

10
ගුණාංග යොමුව සඳහා යාවත්කාලීන කළ සබැඳිය: w3.org/TR/css3-values/#attr-notation


485

JQuery හට කළ හැකි අනෙක් සියල්ල සමඟ මෙය පිළිතුරු දීමට සරල ප්‍රශ්නයක් වනු ඇතැයි ඔබ සිතනු ඇත. අවාසනාවකට මෙන්, ගැටළුව තාක්ෂණික ගැටළුවකට එළඹේ : css: after and: before rules DOM හි කොටසක් නොවන අතර එබැවින් jQuery හි DOM ක්‍රම භාවිතයෙන් වෙනස් කළ නොහැක.

එහි සිටින JavaScript යොදා ගනිමින් මෙම මූලද්රව්ය හා / හෝ CSS උත්සහ හැසිරවීමට ක්රම; ඔබ භාවිතා කරන දේ ඔබගේ නිශ්චිත අවශ්‍යතා මත රඳා පවතී.


මම ආරම්භ කිරීමට යන්නේ “හොඳම” ප්‍රවේශය ලෙස පුළුල් ලෙස සලකන දේ සමඟ ය:

1) කලින් තීරණය කළ පන්තියක් එක් කරන්න / ඉවත් කරන්න

මෙම ප්‍රවේශයේදී, ඔබ දැනටමත් ඔබේ CSS හි වෙනස් :afterහෝ :beforeශෛලියක් සහිත පන්තියක් නිර්මාණය කර ඇත. මෙම "නව" පන්තිය පසුකාලීනව ඔබගේ මෝස්තර පත්‍රිකාවේ එය ඉක්මවා යන බවට වග බලා ගන්න:

p:before {
    content: "foo";
}
p.special:before {
    content: "bar";
}

එවිට ඔබට පහසුවෙන් jQuery (හෝ වැනිලා ජාවාස්ක්‍රිප්ට්) භාවිතයෙන් මෙම පන්තිය එක් කිරීමට හෝ ඉවත් කිරීමට හැකිය:

$('p').on('click', function() {
    $(this).toggleClass('special');
});

  • වාසි: jQuery සමඟ ක්‍රියාත්මක කිරීම පහසුය; එකවර විවිධ මෝස්තර ඉක්මනින් වෙනස් කරයි; උත්සුකයන් වෙන් කිරීම බලාත්මක කරයි (ඔබේ CSS සහ JS ඔබේ HTML වලින් හුදකලා කිරීම)
  • අවාසි: CSS කලින් ලියා කළ යුතුය, එසේ අන්තර්ගතය :beforeහෝ :afterසම්පූර්ණයෙන්ම ගතික නොවේ

2) ලේඛනයේ මෝස්තර පත්‍රයට කෙලින්ම නව මෝස්තර එකතු කරන්න

එය ඇතුළුව, ලේඛනය stylesheet කෙලින්ම මෝස්තර එකතු කිරීමට JavaScript භාවිතා කිරීමට හැකි වේ :afterහා :beforeසමන්විතය. jQuery පහසු කෙටිමඟක් සපයන්නේ නැත, නමුත් වාසනාවකට මෙන් JS එතරම් සංකීර්ණ නොවේ:

var str = "bar";
document.styleSheets[0].addRule('p.special:before','content: "'+str+'";');

.addRule()අදාල .insertRule()ක්‍රමවේදයන් තරමක් හොඳින් සහාය දක්වයි.

විචල්‍යතාවයක් ලෙස, ලේඛනයට සම්පූර්ණයෙන්ම නව මෝස්තරයක් එක් කිරීමට ඔබට jQuery භාවිතා කළ හැකිය, නමුත් අවශ්‍ය කේතය කිසිදු පිරිසිදුකාරකයක් නොවේ:

var str = "bar";
$('<style>p.special:before{content:"'+str+'"}</style>').appendTo('head');

අපි කතා කරන්නේ සාරධර්ම "හැසිරවීම" ගැන මිස ඒවාට එකතු කිරීම පමණක් නොව, අපට වෙනත් ප්‍රවේශයක් භාවිතා කරමින් පවතින හෝ මෝස්තර කියවිය:after:before හැකිය :

var str = window.getComputedStyle(document.querySelector('p'), ':before') 
           .getPropertyValue('content');

තරමක් කෙටි කේතයක් සඳහා jQuery භාවිතා document.querySelector('p')කරන $('p')[0]විට අපට එය ප්‍රතිස්ථාපනය කළ හැකිය .

  • වාසි: ඕනෑම නූලක් ගතිකව ශෛලියට ඇතුළත් කළ හැකිය
  • අවාසි: මුල් මෝස්තර වෙනස් කර නැත, අභිබවා ඇත; නැවත නැවත (ab) භාවිතා කිරීමෙන් DOM අත්තනෝමතික ලෙස විශාල විය හැක

3) වෙනස් DOM ලක්ෂණයක් වෙනස් කරන්න

විශේෂිත DOM ලක්ෂණයක් කියවීමට ඔබේ CSS හි භාවිතාattr() කළ හැකිය . ( බ්‍රව්සරයක් සහය දක්වන්නේ නම් :before, එය ද සහාය දක්වයි attr(). ) මෙය content:ප්‍රවේශමෙන් සකස් කරන ලද සමහර CSS සමඟ ඒකාබද්ධ කිරීමෙන් අපට අන්තර්ගතය (නමුත් ආන්තිකය හෝ වර්ණය වැනි වෙනත් ගුණාංග නොවේ ) :beforeසහ :afterගතිකව වෙනස් කළ හැකිය:

p:before {
    content: attr(data-before);
    color: red;
    cursor: pointer;
}

JS:

$('p').on('click', function () {
    $(this).attr('data-before','bar');
});

CSS නියමිත වේලාවට පෙර සකස් කළ නොහැකි නම් මෙය දෙවන තාක්ෂණය සමඟ ඒකාබද්ධ කළ හැකිය:

var str = "bar";

document.styleSheets[0].addRule('p:before', 'content: attr(data-before);');

$('p').on('click', function () {
    $(this).attr('data-before', str);
});

  • වාසි: නිමක් නැති අමතර මෝස්තර නිර්මාණය නොකරයි
  • අවාසි: attr CSS හි අදාළ විය හැක්කේ URL හෝ RGB වර්ණ නොව අන්තර්ගත නූල් වලට පමණි

2
මම උත්සාහ කරන්නේ ග්ලයිෆිකන් අගයන් ගතිකව සැකසීමටයි (එනම්, ඒවායේ හෙක්ස් අගයන් හරහා) :: psedo පසු. අන්තර්ගතය: මූලද්‍රව්‍යය (උදා: අන්තර්ගතය: "\ e043";). එය මට වැඩ කරන බවක් නොපෙනේ, එබැවින් ග්ලයිෆිකෝන සඳහා හෙක්ස් අගයන් සඳහා එය ක්‍රියා නොකරනු ඇතැයි මම සිතමි.
user2101068

@ user2101068 ඔබ එය නව ප්‍රශ්නයක් ලෙස පළ කළ යුතුය. ඔබ භාවිතා කරන සියලුම කේත මට දැකීමට සිදුවේ.
බ්ලේස්මොන්ගර්

බ්ලේස්මොන්ගර්, ඉක්මන් පිළිතුරට ස්තූතියි .. අවාසනාවකට තරමක් කේතයක් ඇති අතර අදාළ කේතය ඉවත් කිරීමට තරමක් උත්සාහයක් අවශ්‍ය වේ. මම දැනටමත් පැය 12+ ක් මෙම කාර්යය ලබා ගැනීමට උත්සාහ කර ඇති අතර එය වැඩ කිරීමට මගේ අවසාන උත්සාහය මෙයයි. මගේ පාඩු කපා ගැනීමට අවශ්‍යයි. ඉහත # 3 හි (කේත ස්නිපටයට පෙර) ඔබ විස්තර කළ තාක්‍ෂණය භාවිතා කරන විට මගේ උපකල්පනය නැවත: හෙක්ස් අගයන් සත්‍යාපනය කිරීමට ඔබට හැකි වේ යැයි මම බලාපොරොත්තු වෙමි. මට අන්තර්ගත මූලද්‍රව්‍යයට හෙක්ස් නූල් ඇතුළත් කළ හැකි නමුත් එය සත්‍ය ග්ලයිෆිකනයට වඩා ග්ලයිෆිකන් හෙක්ස් අගය සඳහා පෙළ පෙන්වයි. සියලුම කේත දැකීමෙන් තොරව හැඟීම?
user2101068

1
@ user2101068 හෙක්ස් නූල් භාවිතා නොකරන්න; ඒ වෙනුවට, සත්‍ය යුනිකෝඩ් අක්‍ෂරය HTML ගුණාංගයට පිටපත් කර අලවන්න. jsfiddle.net/mblase75/Lcsjkc5y
Blazemonger

විසඳුම 2 සහ 3 සම්බන්ධයෙන්. ඇත්ත වශයෙන්ම ඔබ භාවිතා කරන්නේ නම් (වැඩි) ස්ටයිල් ෂීට් වර්ධනය වීම වළක්වා ගත හැකිය: document.styleSheets [0] .insertRule (රීතිය, දර්ශකය), ඉන්පසු මෙම දර්ශකය භාවිතා කිරීමෙන් ඔබට අවශ්‍ය නොවන විට නීති ඉවත් කළ හැකිය: ලේඛනය. styleSheets [0] .deleteRule (දර්ශකය)
Picard

158

වෙනත් සැබෑ DOM මූලද්‍රව්‍යයන් මෙන් ඒවා CSS හරහා බ්‍රව්සර් මගින් විදහා දැක්වුවද, ව්‍යාජ මූලද්‍රව්‍යයන් DOM හි කොටසක් නොවේ, මන්ද ව්‍යාජ මූලද්‍රව්‍යයන් නමට අනුව සැබෑ මූලද්‍රව්‍ය නොවන අතර එබැවින් ඔබට එය කළ නොහැක jQuery (හෝ ඒ සඳහා ඕනෑම ජාවාස්ක්‍රිප්ට් ඒපීඅයි, තේරීම් ඒපීඅයි පවා නැත ) සමඟ කෙලින්ම ඒවා තෝරාගෙන හැසිරවීම . මෙම කිසිදු ව්යාජ අංග කාගේ මෝස්තර ඔබ තිර රචනය සමග වෙනස් කිරීමට උත්සාහ කරනවා, සහ පමණක් අදාළ ::beforeසහ ::after.

ඔබට ව්‍යාජ මූලද්‍රව්‍ය ශෛලියට සෘජුවම ක්‍රියාත්මක වන්නේ CSSOM හරහා (සිතන්න window.getComputedStyle()), එය jQuery වලින් ඔබ්බට නිරාවරණය .css()නොවන, ව්‍යාජ මූලද්‍රව්‍යයන්ට සහාය නොදක්වන ක්‍රමයකි.

ඔබට සෑම විටම එය වටා වෙනත් ක්‍රම සොයාගත හැකිය, උදාහරණයක් ලෙස:

  • අත්තනෝමතික පංති එකක හෝ වැඩි ගණනක ව්‍යාජ මූලද්‍රව්‍යයන්ට මෝස්තර යෙදීම, පසුව පන්ති අතර ටොගල් කිරීම (ඉක්මන් උදාහරණයක් සඳහා සීකෝලෙගාගේ පිළිතුර බලන්න) - මෙය සරල තේරීම් (ව්‍යාජ මූලද්‍රව්‍ය නොවන) භාවිතා කිරීමට භාවිතා කරන මුග්ධ ක්‍රමයයි . මූලද්‍රව්‍ය සහ මූලද්‍රව්‍ය තත්වයන් අතර වෙනස හඳුනා ගැනීමට ඒවා භාවිතා කිරීමට අදහස් කරන ආකාරය

  • ඉහත සඳහන් ව්‍යාජ මූලද්‍රව්‍යයන්ට අදාළ වන මෝස්තර හැසිරවීම, ලේඛන ශෛලිය වෙනස් කිරීමෙන්, එය අනවසරයෙන් වැඩි ය.


78

ඔබට jQuery හි ව්‍යාජ මූලද්‍රව්‍ය තෝරා ගත නොහැක, මන්ද ඒවා DOM හි කොටසක් නොවන බැවිනි. නමුත් ඔබට පියාගේ මූලද්‍රව්‍යයට නිශ්චිත පන්තියක් එක් කළ හැකි අතර CSS හි එහි ව්‍යාජ මූලද්‍රව්‍ය පාලනය කළ හැකිය.

උදාහරණයක්

JQuery හි:

<script type="text/javascript">
    $('span').addClass('change');
</script>

CSS හි:

span.change:after { content: 'bar' }

51

ව්‍යාජ මූලද්‍රව්‍යය හැසිරවීම සඳහා අපට අභිරුචි ගුණාංග (හෝ CSS විචල්‍යයන්) මත විශ්වාසය තැබිය හැකිය . අපට පිරිවිතරයෙන් කියවිය හැකිය :

අභිරුචි ගුණාංග සාමාන්‍ය ගුණාංග වන බැවින් ඒවා ඕනෑම මූලද්‍රව්‍යයක් මත ප්‍රකාශයට පත් කළ හැකිය, සාමාන්‍ය උරුමය සහ කඳුරැල්ල නීති සමඟ විසඳා ගත හැකිය, @ මාධ්‍ය සහ වෙනත් කොන්දේසි සහිත රීති සමඟ කොන්දේසිගත කළ හැකිය, HTML හි ශෛලීය ගුණාංගයේ භාවිතා කළ හැකිය, කියවීමට හෝ සැකසීමට හැකිය CSSOM ආදිය භාවිතා කිරීම .

මෙය සැලකිල්ලට ගනිමින්, අදහස වන්නේ මූලද්‍රව්‍යය තුළ ඇති අභිරුචි දේපල නිර්වචනය කිරීමයි. ව්‍යාජ මූලද්‍රව්‍යය එය උරුම කර ගනී. එබැවින් අපට එය පහසුවෙන් වෙනස් කළ හැකිය.

1) පේළිගත ශෛලිය භාවිතා කිරීම :

.box:before {
  content:var(--content,"I am a before element");
  color:var(--color, red);
  font-size:25px;
}
<div class="box"></div>
<div class="box" style="--color:blue;--content:'I am a blue element'"></div>
<div class="box" style="--color:black"></div>
<div class="box" style="--color:#f0f;--content:'another element'"></div>

2) CSS සහ පන්ති භාවිතා කිරීම

.box:before {
  content:var(--content,"I am a before element");
  color:var(--color, red);
  font-size:25px;
}

.blue {
  --color:blue;
  --content:'I am a blue element';
}
.black {
  --color:black;
}
<div class="box"></div>
<div class="box black" ></div>
<div class="box blue"></div>

3) javascript භාවිතා කිරීම

document.querySelectorAll('.box')[0].style.setProperty("--color", "blue");
document.querySelectorAll('.box')[1].style.setProperty("--content", "'I am another element'");
.box:before {
  content:var(--content,"I am a before element");
  color:var(--color, red);
  font-size:25px;
}
<div class="box"></div>
<div class="box"></div>

4) jQuery භාවිතා කිරීම

$('.box').eq(0).css("--color", "blue");
/* the css() function with custom properties works only with a jQuery vesion >= 3.x
   with older version we can use style attribute to set the value. Simply pay
   attention if you already have inline style defined! 
*/
$('.box').eq(1).attr("style","--color:#f0f");
.box:before {
  content:"I am a before element";
  color:var(--color, red);
  font-size:25px;
}
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>


එය සංකීර්ණ අගයන් සමඟ ද භාවිතා කළ හැකිය:

.box {
  --c:"content";
  --b:linear-gradient(red,blue);
  --s:20px;
  --p:0 15px;
}

.box:before {
  content: var(--c);
  background:var(--b);
  color:#fff;
  font-size: calc(2 * var(--s) + 5px);
  padding:var(--p);
}
<div class="box"></div>

ඔබ මම කාරක රීති සලකා මා බව දක්නට හැකිය var(--c,value)එහිදී valueද ෆෝල්බැක් අගය නම් පෙරනිමි අගය වන අතර.

එකම පිරිවිතරයෙන් අපට කියවිය හැකිය:

අභිරුචි දේපලක වටිනාකම var () ශ්‍රිතය සමඟ වෙනත් දේපලක වටිනාකමට ආදේශ කළ හැකිය. Var () හි වාක්‍ය ඛණ්ඩය:

var() = var( <custom-property-name> [, <declaration-value> ]? )

ශ්‍රිතයේ පළමු තර්කය වන්නේ ආදේශ කළ යුතු අභිරුචි දේපලෙහි නමයි. ශ්‍රිතයේ දෙවන තර්කය, ලබා දී ඇත්නම්, ආපසු හැරවීමේ අගයක් වන අතර, එය යොමු කරන ලද අභිරුචි දේපල අවලංගු වූ විට ආදේශන අගය ලෙස භාවිතා කරයි .

සහ පසුව:

දේපල වටිනාකමකින් var () ආදේශ කිරීම සඳහා:

  1. var()ශ්‍රිතයේ පළමු තර්කය මගින් නම් කරන ලද අභිරුචි දේපල සජිවිකරණ-කැළැල් සහිත නම්, සහ var()ශ්‍රිතය සජීවිකරණ දේපලෙහි හෝ එහි දිගුකාලීනව භාවිතා කරන්නේ නම්, මෙම ඇල්ගොරිතමයේ ඉතිරි කොටස සඳහා අභිරුචි දේපල එහි ආරම්භක වටිනාකම ඇති බව සලකන්න.
  2. var()ශ්‍රිතයට පළමු තර්කය මගින් නම් කරන ලද අභිරුචි දේපලෙහි වටිනාකම ආරම්භක අගය හැර වෙනත් දෙයක් නම්, var()ශ්‍රිතය අනුරූප අභිරුචි දේපලෙහි අගය මගින් ප්‍රතිස්ථාපනය කරන්න .
  3. එසේ නොමැති නම්, var()ශ්‍රිතයට එහි දෙවන තර්කය ලෙස ආපසු හැරවීමේ අගයක් තිබේ නම්, ශ්‍රිතය ප්‍රතිස්ථාපන var()අගය මගින් ප්‍රතිස්ථාපනය කරන්න . var()පසුබෑමේ කිසියම් සඳහනක් තිබේ නම්, ඒවා ද ආදේශ කරන්න.
  4. එසේ නොමැතිනම්, var()ශ්‍රිතය අඩංගු දේපල ගණනය කළ අගය අනුව වලංගු නොවේ.

අපි අභිරුචි දේපල සැකසුවේ නැත්නම් හෝ අපි එය සකසා ඇත්නම් initialහෝ එහි අවලංගු අගයක් අඩංගු වේ නම් ආපසු හැරවීමේ අගය භාවිතා වේ. initialඅභිරුචි දේපලක් එහි පෙරනිමි අගයට නැවත සැකසීමට අපට අවශ්‍ය නම් භාවිතය ප්‍රයෝජනවත් වේ.

අදාළ

CSS අභිරුචි දේපලක් තුළ (CSS විචල්‍යයන්) උරුම වටිනාකම ගබඩා කරන්නේ කෙසේද?

කොටු ආකෘතිය සඳහා CSS අභිරුචි ගුණාංග (විචල්යයන්)


ඔබ අදාළ යැයි සලකන සියලුම බ්‍රව්සර්වල CSS විචල්‍යයන් නොතිබිය හැකි බව කරුණාවෙන් සලකන්න (උදා: IE 11): https://caniuse.com/#feat=css-variables


@akalata ඔව්, කේතයට jQuery අනුවාදය 3.x අවශ්‍ය වේ .. මම වැඩි විස්තර සහ jQuery සමඟ තවත් විකල්පයක් එක් කළෙමි;)
ටෙමානි අෆිෆ්

IE 11 හි මෙය සිදු වන්නේ කෙසේද?
Connexo

1
anyconnexo ඕනෑම හොඳ හා නවීන අංගයකට කැමතියි .. එයට සහය නොදක්වන අතර වැඩ නොකරනු ඇත caniuse.com/#feat=css-variables
Temani Afif

Ofc මම දැන සිටි අතර IE 11 තවමත් ඉතා අදාළ බැවින්, ඔබේ පිළිතුරේ හඳුන්වාදීමේ කොටසෙහිම එම තොරතුරු මට මග හැරුණි.
Connexo

1
මෙම පිළිතුර CSS විචල්‍යයන් භාවිතා කරමින් ජාවාස්ක්‍රිප්ට් සමඟ ව්‍යාජ මූලද්‍රව්‍ය සම්බන්ධ කිරීම හා වෙනස් කිරීම පිළිබඳ ගැඹුරු නිබන්ධනයකි. ඔබගේ කාලය සහ මෙම අතිශය වටිනා තාක්‍ෂණය (ය) බෙදා ගැනීම ගැන ඔබට බොහෝම ස්තූතියි.
LebCit

37

කිතුනුවන් යෝජනා කරන දෙයට අනුව ඔබටද කළ හැකිය:

$('head').append("<style>.span::after{ content:'bar' }</style>");

2
මෙහි හැඳුනුම්පතක් එකතු කළ යුතුය, එබැවින් නව එකක් එකතු කිරීමට පෙර මූලද්‍රව්‍යය තෝරා මකා දැමිය හැකිය. එසේ නොවේ නම්, අනවශ්‍ය ශෛලීය නෝඩ් රාශියක් ඉදිරිපත් කළ හැකිය.
කේඑස්

24

ප්රවේශය සඳහා මාර්ගය මෙන්න: පසු සහ: ශෛලියේ ගුණාංග වලට පෙර, css වලින් අර්ථ දක්වා ඇත:

// Get the color value of .element:before
var color = window.getComputedStyle(
    document.querySelector('.element'), ':before'
).getPropertyValue('color');

// Get the content value of .element:before
var content = window.getComputedStyle(
    document.querySelector('.element'), ':before'
).getPropertyValue('content');

11

සම්පුර්ණයෙන්ම CSS හරහා සූඩෝ මූලද්‍රව්‍යයන්ගෙන් පසුව :: පෙර හෝ :: හැසිරවීමට ඔබට අවශ්‍ය නම්, ඔබට එය JS කළ හැකිය. පහත බලන්න;

jQuery('head').append('<style id="mystyle" type="text/css"> /* your styles here */ </style>');

<style>මූලද්රව්යයේ හැඳුනුම්පතක් ඇති ආකාරය සැලකිල්ලට ගන්න , ඔබේ ශෛලිය ගතිකව වෙනස් වුවහොත් එය ඉවත් කර නැවත එය එකතු කිරීමට ඔබට භාවිතා කළ හැකිය.

මේ ආකාරයෙන්, ඔබේ මූලද්‍රව්‍යය ජේඑස් ආධාරයෙන් CSS හරහා ඔබට අවශ්‍ය ආකාරයටම විලාසිතාවකි.


6

වැඩ කරන නමුත් ඉතා කාර්යක්ෂම නොවන ක්‍රමයක් නම් නව අන්තර්ගතය සමඟ ලේඛනයට රීතියක් එකතු කර එය පන්තියක් සමඟ යොමු කිරීමයි. අවශ්‍ය දේ මත පදනම්ව පන්තියේ අන්තර්ගතයේ එක් එක් අගය සඳහා අද්විතීය හැඳුනුම්පතක් අවශ්‍ය විය හැකිය.

$("<style type='text/css'>span.id-after:after{content:bar;}</style>").appendTo($("head"));
$('span').addClass('id-after');

5

මෙන්න HTML:

<div class="icon">
  <span class="play">
    ::before
  </span>
</div>

'පෙර' මත ගණනය කළ විලාසය විය content: "VERIFY TO WATCH";

මෙන්න මගේ jQuery පේළි දෙක, මෙම මූලද්‍රව්‍යය විශේෂයෙන් සඳහන් කිරීම සඳහා අමතර පංතියක් එකතු කිරීමේ අදහස භාවිතා කර පසුව සුඩෝ-මූලද්‍රව්‍යයේ අන්තර්ගත අගයේ CSS වෙනස් කිරීම සඳහා ශෛලීය ටැගයක් (වැදගත් ටැගයක් සමඟ) එකතු කිරීම:

$("span.play:eq(0)").addClass('G');

$('body').append("<style>.G:before{content:'NewText' !important}</style>");


5

ඔබ සැමට ස්තූතියි! මට අවශ්‍ය දේ කිරීමට මට හැකි විය: D http://jsfiddle.net/Tfc9j/42/ මෙහි බලන්න

අභ්‍යන්තර කොට් of ාශයේ පාරාන්ධතාවයට වඩා වෙනස් වීමට පිටත කොට් of ාශයක පාරාන්ධතාවය මට අවශ්‍ය විය.

   $('#ena').on('click', function () {
        $('head').append("<style>#ena:before { opacity:0.3; }</style>");
    });

$('#duop').on('click', function (e) {

        $('head').append("<style>#ena:before { opacity:0.8; }</style>");

     e.stopPropagation(); 
    });

#ena{
    width:300px;
    height:300px;
    border:1px black solid;
    position:relative;
}
#duo{
    opacity:1;
    position:absolute;
    top:50px;
  width:300px;
    height:100px;
      background-color:white;
}
#ena:before {
    content: attr(data-before);
    color: white;
    cursor: pointer;
    position: absolute;
    background-color:red;
    opacity:0.9;
    width:100%;
    height:100%;
}


<div id="ena">
    <div id="duo">
        <p>ena p</p>
        <p id="duop">duoyyyyyyyyyyyyyy p</p>

    </div>   


</div>

උත්සාහ නොකරන්න append, භාවිතය htmlවඩාත් සුදුසුය
කිං රයිඩර්

1
සෝදිසියෙන් සිටින්න: මෙන්න ඔබ එම ක්ලික් කිරීම් වලින් එකක් හසුරුවන සෑම විටම හිසට ශෛලීය ටැගයක් එක් කරයි. අළුත් එකක් එකතු කිරීමට පෙර පැරණි එක ඉවත් කිරීමට මම කේත කරමි.
pupitetris

3

ඔබට ව්‍යාජ දේපලක් නිර්මාණය කිරීමට හෝ පවතින එකක් භාවිතා කර එය ව්‍යාජ මූලද්‍රව්‍යයේ මෝස්තර පත්‍රිකාවේ උරුම කර ගත හැකිය.

var switched = false;

// Enable color switching
setInterval(function () {
    var color = switched ? 'red' : 'darkred';
    var element = document.getElementById('arrow');
    element.style.backgroundColor = color;
    
    // Managing pseudo-element's css
    // using inheritance.
    element.style.borderLeftColor = color;
    
    switched = !switched;
}, 1000);
.arrow {
    /* SET FICTIONAL PROPERTY */
    border-left-color:red;
    
    background-color:red;
    width:1em;
    height:1em;
    display:inline-block;
    position:relative;
}
.arrow:after {
    border-top:1em solid transparent;
    border-right:1em solid transparent;
    border-bottom:1em solid transparent;
    border-left:1em solid transparent;
    
    /* INHERIT PROPERTY */
    border-left-color:inherit;
    
    content:"";
    width:0;
    height:0;
    position:absolute;
    left:100%;
    top:-50%;
}
<span id="arrow" class="arrow"></span>

එය "අන්තර්ගත" දේපල සඳහා ක්‍රියා නොකරන බව පෙනේ :(


3

සැබෑ ලෝකයේ භාවිතයන් සඳහා මා මෙය ලියා නැති බැවින් මෙය ප්‍රායෝගික නොවේ, ඔබට අත් කරගත හැකි දේ පිළිබඳ උදාහරණයක් ලබා දීමට.

css = {
before: function(elem,attr){ 

if($("#cust_style") !== undefined){ 
$("body").append("<style> " + elem + ":before {"  + attr +  "} </style>"); 
} else {
 $("#cust_style").remove();
$("body").append("<style> " + elem + ":before {"  + attr +  "} </style>"); 
}

}, after: function(elem,attr){
if($("#cust_style") !== undefined){ 
$("body").append("<style> " + elem + ":after {"  + attr +  "} </style>"); 

} else { $("#cust_style").remove();
$("body").append("<style> " + elem + ":after {"  + attr +  "} </style>"); 
}
}
}

මෙය දැනට එකතු කරන ලද / හෝ ශෛලී මූලද්‍රව්‍යයක් එකතු කරන අතර එය ඔබේ අවශ්‍ය ගුණාංග අඩංගු වන අතර එය ව්‍යාජ මූලද්‍රව්‍යයට පසුව ඉලක්කගත මූලද්‍රව්‍යයට බලපායි.

මෙය භාවිතා කළ හැකිය

css.after("someElement"," content: 'Test'; position: 'absolute'; ") // editing / adding styles to :after

සහ

css.before( ... ); // to affect the before pseudo element.

පසු සහ පෙර: ව්‍යාජ මූලද්‍රව්‍ය DOM හරහා කෙලින්ම ප්‍රවේශ විය නොහැකි බැවින් දැනට CSS හි නිශ්චිත අගයන් නිදහසේ සංස්කරණය කළ නොහැක.

මගේ ක්‍රමය නිදසුනක් පමණක් වන අතර එය භාවිතයට සුදුසු නොවේ, ඔබට එය වෙනස් කළ හැකිය ඔබේම උපක්‍රම කිහිපයක් උත්සාහ කර සැබෑ ලෝක භාවිතය සඳහා එය නිවැරදි කරන්න.

ඉතින් ඔබේම අත්හදා බැලීම් මේ හා වෙනත් අය සමඟ කරන්න!

සුභ පැතුම් - ආදර්ෂ් හෙග්ඩේ.


3

මම සෑම විටම මගේම උපයෝගීතා ශ්‍රිතයක් එක් කරමි, එය මේ වගේ ය.

function setPseudoElContent(selector, value) {    
    document.styleSheets[0].addRule(selector, 'content: "' + value + '";');
}

setPseudoElContent('.class::after', 'Hello World!');

හෝ ES6 විශේෂාංග භාවිතා කරන්න:

const setPseudoElContent = (selector, value) => {    
    document.styleSheets[0].addRule(selector, `content: "${value}";`);
}

setPseudoElContent('.class::after', 'Hello World!');

2

ඔබට styleහිසට එකතු කළ හැකි විට පන්ති හෝ ගුණාංග එකතු කරන්නේ ඇයි

$('head').append('<style>.span:after{ content:'changed content' }</style>')

2

මෙහි බොහෝ පිළිතුරු ඇත, නමුත් කිසිදු පිළිතුරක් css හැසිරවීමට :beforeහෝ :afterපිළිගත් පිළිතුරට පවා උපකාරී නොවේ.

මෙන්න මම එය කිරීමට යෝජනා කරන ආකාරය. ඔබේ HTML මේ වගේ යැයි සිතමු:

<div id="something">Test</div>

ඉන්පසු ඔබ එය සකසන්නේ: පෙර CSS හි එය නිර්මාණය කර:

#something:before{
   content:"1st";
   font-size:20px;
   color:red;
}
#something{
  content:'1st';
}

කරුණාකර contentඑය පසුව පහසුවෙන් පිටතට ගෙනයාමට හැකි වන පරිදි මම මූලද්‍රව්‍යයේම ගුණාංගයක් ද සකසා ඇති බව කරුණාවෙන් සලකන්න. දැන් buttonක්ලික් කිරීමක් තිබේ, ඔබට වර්ණය වෙනස් කිරීමට අවශ්‍යය: කොළ පාටට පෙර සහ එහි අකුරු ප්‍රමාණය 30px දක්වා වෙනස් කිරීමට. ඔබට එය පහත පරිදි සාක්ෂාත් කරගත හැකිය:

කිසියම් පන්තියක ඔබට අවශ්‍ය ශෛලිය සමඟ CSS එකක් නිර්වචනය කරන්න .activeS:

.activeS:before{
   color:green !important;
   font-size:30px !important;
 }

දැන් ඔබට වෙනස් කළ හැකිය: ශෛලියට පෙර පන්තිය ඔබේ: මූලද්‍රව්‍යයට පෙර පහත පරිදි එකතු කිරීමෙන්:

<button id="changeBefore">Change</button>
<script>
    $('#changeBefore').click(function(){
        $('#something').addClass('activeS');
    });
</script>

ඔබට අන්තර්ගතය ලබා ගැනීමට අවශ්‍ය නම් :before, එය මෙසේ කළ හැකිය:

<button id="getContent">Get Content</button>
<script>
    $('#getContent').click(function(){
        console.log($('#something').css('content'));//will print '1st'
    });
</script>

අවසානයේදී ඔබට :beforejQuery මගින් අන්තර්ගතය ගතිකව වෙනස් කිරීමට අවශ්‍ය නම් , ඔබට එය පහත පරිදි සාක්ෂාත් කරගත හැකිය:

<button id="changeBefore">Change</button>
<script>
    var newValue = '22';//coming from somewhere
    var add = '<style>#something:before{content:"'+newValue+'"!important;}</style>';
    $('#changeBefore').click(function(){
        $('body').append(add);
    });
</script>

ඉහත “changeBefore” බොත්තම ක්ලික් කිරීමෙන් :beforeඅන්තර්ගතය #somethingගතික අගයක් වන '22' බවට වෙනස් වේ .

එය උපකාරී වේ යැයි මම බලාපොරොත්තු වෙමි


1

මම භාවිතා අර්ථ විචල්ය සාදා :rootඇතුළත CSSඑම වෙනස් කිරීමට :after(එම අදාළ :before) ව්යාජ-අංගයක් , විශේෂයෙන්ම වෙනස් කිරීමට background-colorකැපුමක් වටිනාකමක් anchorවිසින් අර්ථ .sliding-middle-out:hover:afterහා contentතවත් වටිනාකමක් anchor( #reference) ඇති පහත ආදර්ශනය JavaScript භාවිතා අහඹු වර්ණ ජනනය කරන jQuery:

HTML

<a href="#" id="changeColor" class="sliding-middle-out" title="Generate a random color">Change link color</a>
<span id="log"></span>
<h6>
  <a href="https://stackoverflow.com/a/52360188/2149425" id="reference" class="sliding-middle-out" target="_blank" title="Stack Overflow topic">Reference</a>
</h6>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/davidmerfield/randomColor/master/randomColor.js"></script>

CSS

:root {
    --anchorsFg: #0DAFA4;
}
a, a:visited, a:focus, a:active {
    text-decoration: none;
    color: var(--anchorsFg);
    outline: 0;
    font-style: italic;

    -webkit-transition: color 250ms ease-in-out;
    -moz-transition: color 250ms ease-in-out;
    -ms-transition: color 250ms ease-in-out;
    -o-transition: color 250ms ease-in-out;
    transition: color 250ms ease-in-out;
}
.sliding-middle-out {
    display: inline-block;
    position: relative;
    padding-bottom: 1px;
}
.sliding-middle-out:after {
    content: '';
    display: block;
    margin: auto;
    height: 1px;
    width: 0px;
    background-color: transparent;

    -webkit-transition: width 250ms ease-in-out, background-color 250ms ease-in-out;
    -moz-transition: width 250ms ease-in-out, background-color 250ms ease-in-out;
    -ms-transition: width 250ms ease-in-out, background-color 250ms ease-in-out;
    -o-transition: width 250ms ease-in-out, background-color 250ms ease-in-out;
    transition: width 250ms ease-in-out, background-color 250ms ease-in-out;
}
.sliding-middle-out:hover:after {
    width: 100%;
    background-color: var(--anchorsFg);
    outline: 0;
}
#reference {
  margin-top: 20px;
}
.sliding-middle-out:before {
  content: attr(data-content);
  display: attr(data-display);
}

JS / jQuery

var anchorsFg = randomColor();
$( ".sliding-middle-out" ).hover(function(){
    $( ":root" ).css({"--anchorsFg" : anchorsFg});
});

$( "#reference" ).hover(
 function(){
    $(this).attr("data-content", "Hello World!").attr("data-display", "block").html("");
 },
 function(){
    $(this).attr("data-content", "Reference").attr("data-display", "inline").html("");
 }
);

attr()හැරෙන්නට සහය contentඇත්තෙන්ම හිඟයි. ඔබට ඒ සඳහා caniuse.com පරීක්ෂා කළ හැකිය. :rootසහ CSS- විචල්‍යතා සහාය වඩා හොඳය, නමුත් තවමත් එතරම් පුළුල් ලෙස ව්‍යාප්ත වී නොමැති බැවින් ඒ සඳහා වන සහයෝගය අළුත් ය. (caniuse.com හි ද ඒ සඳහා වන සහාය පරීක්ෂා කරන්න)
කෙසෙල් ඇසිඩ්

1

.css()විශේෂිත මූලද්‍රව්‍ය සඳහා භාවිතා කිරීම වැනි css-pseudo නීති එකතු කිරීම සඳහා මම jQuery ප්ලගිනයක් නිර්මාණය කර ඇත්තෙමි .

  • ප්ලගීන කේතය සහ පරීක්ෂණ නඩුව මෙහි ඇත
  • නඩුව සරල css රූප උත්පතන ලෙස භාවිතා කරන්න

භාවිතය:

$('body')
  .css({
    backgroundColor: 'white'
  })
  .cssPseudo('after', {
    content: 'attr(title) ", you should try to hover the picture, then click it."',
    position: 'absolute',
    top: 20, left: 20  
  })
  .cssPseudo('hover:after', {
    content: '"Now hover the picture, then click it!"'
  });


0

මේ සඳහා ඔබට මගේ ප්ලගිනය භාවිතා කළ හැකිය.

විමසුම:

(function() {
  $.pseudoElements = {
    length: 0
  };

  var setPseudoElement = function(parameters) {
    if (typeof parameters.argument === 'object' || (parameters.argument !== undefined && parameters.property !== undefined)) {
      for (var element of parameters.elements.get()) {
        if (!element.pseudoElements) element.pseudoElements = {
          styleSheet: null,
          before: {
            index: null,
            properties: null
          },
          after: {
            index: null,
            properties: null
          },
          id: null
        };

        var selector = (function() {
          if (element.pseudoElements.id !== null) {
            if (Number(element.getAttribute('data-pe--id')) !== element.pseudoElements.id) element.setAttribute('data-pe--id', element.pseudoElements.id);
            return '[data-pe--id="' + element.pseudoElements.id + '"]::' + parameters.pseudoElement;
          } else {
            var id = $.pseudoElements.length;
            $.pseudoElements.length++

              element.pseudoElements.id = id;
            element.setAttribute('data-pe--id', id);

            return '[data-pe--id="' + id + '"]::' + parameters.pseudoElement;
          };
        })();

        if (!element.pseudoElements.styleSheet) {
          if (document.styleSheets[0]) {
            element.pseudoElements.styleSheet = document.styleSheets[0];
          } else {
            var styleSheet = document.createElement('style');

            document.head.appendChild(styleSheet);
            element.pseudoElements.styleSheet = styleSheet.sheet;
          };
        };

        if (element.pseudoElements[parameters.pseudoElement].properties && element.pseudoElements[parameters.pseudoElement].index) {
          element.pseudoElements.styleSheet.deleteRule(element.pseudoElements[parameters.pseudoElement].index);
        };

        if (typeof parameters.argument === 'object') {
          parameters.argument = $.extend({}, parameters.argument);

          if (!element.pseudoElements[parameters.pseudoElement].properties && !element.pseudoElements[parameters.pseudoElement].index) {
            var newIndex = element.pseudoElements.styleSheet.rules.length || element.pseudoElements.styleSheet.cssRules.length || element.pseudoElements.styleSheet.length;

            element.pseudoElements[parameters.pseudoElement].index = newIndex;
            element.pseudoElements[parameters.pseudoElement].properties = parameters.argument;
          };

          var properties = '';

          for (var property in parameters.argument) {
            if (typeof parameters.argument[property] === 'function')
              element.pseudoElements[parameters.pseudoElement].properties[property] = parameters.argument[property]();
            else
              element.pseudoElements[parameters.pseudoElement].properties[property] = parameters.argument[property];
          };

          for (var property in element.pseudoElements[parameters.pseudoElement].properties) {
            properties += property + ': ' + element.pseudoElements[parameters.pseudoElement].properties[property] + ' !important; ';
          };

          element.pseudoElements.styleSheet.addRule(selector, properties, element.pseudoElements[parameters.pseudoElement].index);
        } else if (parameters.argument !== undefined && parameters.property !== undefined) {
          if (!element.pseudoElements[parameters.pseudoElement].properties && !element.pseudoElements[parameters.pseudoElement].index) {
            var newIndex = element.pseudoElements.styleSheet.rules.length || element.pseudoElements.styleSheet.cssRules.length || element.pseudoElements.styleSheet.length;

            element.pseudoElements[parameters.pseudoElement].index = newIndex;
            element.pseudoElements[parameters.pseudoElement].properties = {};
          };

          if (typeof parameters.property === 'function')
            element.pseudoElements[parameters.pseudoElement].properties[parameters.argument] = parameters.property();
          else
            element.pseudoElements[parameters.pseudoElement].properties[parameters.argument] = parameters.property;

          var properties = '';

          for (var property in element.pseudoElements[parameters.pseudoElement].properties) {
            properties += property + ': ' + element.pseudoElements[parameters.pseudoElement].properties[property] + ' !important; ';
          };

          element.pseudoElements.styleSheet.addRule(selector, properties, element.pseudoElements[parameters.pseudoElement].index);
        };
      };

      return $(parameters.elements);
    } else if (parameters.argument !== undefined && parameters.property === undefined) {
      var element = $(parameters.elements).get(0);

      var windowStyle = window.getComputedStyle(
        element, '::' + parameters.pseudoElement
      ).getPropertyValue(parameters.argument);

      if (element.pseudoElements) {
        return $(parameters.elements).get(0).pseudoElements[parameters.pseudoElement].properties[parameters.argument] || windowStyle;
      } else {
        return windowStyle || null;
      };
    } else {
      console.error('Invalid values!');
      return false;
    };
  };

  $.fn.cssBefore = function(argument, property) {
    return setPseudoElement({
      elements: this,
      pseudoElement: 'before',
      argument: argument,
      property: property
    });
  };
  $.fn.cssAfter = function(argument, property) {
    return setPseudoElement({
      elements: this,
      pseudoElement: 'after',
      argument: argument,
      property: property
    });
  };
})();

$(function() {
  $('.element').cssBefore('content', '"New before!"');
});
.element {
  width: 480px;
  margin: 0 auto;
  border: 2px solid red;
}

.element::before {
  content: 'Old before!';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<div class="element"></div>

JQuery.css හි සාමාන්‍ය ශ්‍රිතයේ දී මෙන් අගයන් නියම කළ යුතුය

මීට අමතරව, jQuery.css හි සාමාන්‍ය ශ්‍රිතයේ දී මෙන් ව්‍යාජ මූලද්‍රව්‍ය පරාමිතියේ වටිනාකම ද ඔබට ලබා ගත හැකිය.

console.log( $(element).cssBefore(parameter) );

JS:


GitHub: https://github.com/yuri-spivak/managing-the-properties-of-pseudo-elements/


0

තවත් අයෙක් හිස් ශෛලමය අංගයක් සහිත ශීර්ෂ මූලද්‍රව්‍යයට එකතු කිරීම ගැන අදහස් දැක්වූ අතර ඔබ එය එක් වරක් පමණක් කරන්නේ නම් එය නරක නැත, නමුත් ඔබට එය නැවත වරක් නැවත සැකසීමට අවශ්‍ය නම් ඔබ ටොන් ගණනක විලාසිතාවේ අංග සමඟ අවසන් වනු ඇත. එබැවින් එය වලක්වා ගැනීම සඳහා මම හිස් ශෛලියේ මූලද්‍රව්‍යයක් හැඳුනුම්පතක් සමඟ නිර්මාණය කර එහි අභ්‍යන්තර HTML වෙනුවට ආදේශ කරමි:

<style id="pseudo"></style>

එවිට ජාවාස්ක්‍රිප්ට් එක මේ වගේ වනු ඇත:

var pseudo = document.getElementById("pseudo");

function setHeight() {
    let height = document.getElementById("container").clientHeight;
    pseudo.innerHTML = `.class:before { height: ${height}px; }`
}

setHeight()

දැන් මගේ නඩුවේදී තවත් මූලද්‍රව්‍යයක උස මත පදනම්ව පෙර මූලද්‍රව්‍යයක උස සැකසීමට මට මෙය අවශ්‍ය වූ අතර එය ප්‍රමාණය වෙනස් කිරීම මත වෙනස් වනු ඇත. එබැවින් මෙය භාවිතා setHeight()කර කවුළුව ප්‍රතිප්‍රමාණනය කරන සෑම අවස්ථාවකම ධාවනය කළ හැකි අතර එය <style>නිසි ලෙස ප්‍රතිස්ථාපනය වේ.

හිර වී සිටින කෙනෙකුට එකම දේ කිරීමට උත්සාහ කරන බලාපොරොත්තුව.


-1

ඔබ වෙනුවෙන් වෙනස් දෙයක් මා සතුව ඇත, එය පහසු සහ .ලදායී වේ.

    <style> 
    .case-after:after { // set your properties here like eg: 
        color:#3fd309 !important; 
     } 
     .case-before:before { // set your properties here like eg: 
        color:#151715 !important; 
     }
 </style>
  // case for after
    $('#button-id').on('click', function() {
        $(".target-div").toggleClass('case-after');
    });

     // case for before
    $('#button-id').on('click', function() {
        $(".target-div").toggleClass('case-before');
    });
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.