CSS මව් තේරීම් කාරකයෙක් සිටීද?


3188

<li>නැංගුරම් මූලද්‍රව්‍යයේ parent ජු මාපියෙකු වන මූලද්‍රව්‍යය තෝරා ගන්නේ කෙසේද ?

උදාහරණයක් ලෙස, මගේ CSS මේ වගේ දෙයක් වනු ඇත:

li < a.active {
    property: value;
}

නිසැකවම ජාවාස්ක්‍රිප්ට් සමඟ මෙය කිරීමට ක්‍රම තිබේ, නමුත් CSS මට්ටම 2 ට ආවේණික වූ යම් ආකාරයක ක්‍රියාමාර්ගයක් ඇතැයි මම බලාපොරොත්තු වෙමි.

මා විලාසිතාවට උත්සාහ කරන මෙනුව CMS මඟින් විසුරුවා හරිනු ලැබේ, එබැවින් මට ක්‍රියාකාරී අංගය මූලද්‍රව්‍යයට ගෙන යා නොහැක <li>... (මම මෙනු නිර්මාණය කිරීමේ මොඩියුලය තේමාව නොකරන්නේ නම්).

අදහස් තිබේද?


මෙම ප්‍රශ්නය දශකයකට වඩා පැරණි ය, නමුත් යමෙකු තනි සේවාදායකයින් (සේවාදායකයක නොව) මෙය කිරීමට ක්‍රමයක් ගැන උනන්දුවක් දක්වන්නේ නම් , මට පිළිතුරක් ලබා දිය හැකිය. මට දැනගැනීමට සලස්වන්න. කරුණාකර මතක තබා ගන්න මගේ පිළිතුර සේවාදායකයන් මත ක්‍රියා නොකරනු ඇති අතර එමඟින් වඩාත් පොදු අවශ්‍යතාව සපුරාලන්නේ නැත .
RockPaperLizard

Answers:


2544

CSS හි මූලද්‍රව්‍යයක මවුපියන් තෝරා ගැනීමට දැනට ක්‍රමයක් නොමැත.

එය කිරීමට ක්‍රමයක් තිබේ නම්, එය වර්තමාන CSS තේරීම් පිරිවිතරයන්ගෙන් එකක් වනු ඇත:

ඒ කතා කොට, ' තේරීම් පෙළ 4 කෘත්යාධිකාරී කෙටුම්පත් කිරීම ඇතුලත් :has()ව්යාජ පන්තියේ මෙම හැකියාව ලබා දෙන බවට. එය jQuery ක්‍රියාත්මක කිරීමට සමාන වනු ඇත .

li:has(> a.active) { /* styles to apply to the li tag */ }

කෙසේ වෙතත්, 2020 මැයි වන විට, මෙය තවමත් කිසිදු බ්‍රව්සරයකින් සහය නොදක්වයි .

මේ අතර, ඔබට මව් අංගයක් තෝරා ගැනීමට අවශ්‍ය නම් ඔබට ජාවාස්ක්‍රිප්ට් වෙත යා යුතුය.


68
එය දැනටමත් යෝජනා කර ප්‍රතික්ෂේප කර ඇති බව පෙනේ: stackoverflow.com/questions/45004/…
RobM

14
දැන් භාවිතා කිරීමෙන් හැර, විෂය තේරීම්!The subject of the selector can be explicitly identified by appending an exclamation mark (!) to one of the compound selectors in a selector.
කාරකය

13
පෙර සූදානම $මට වඩා හොඳ පෙනුමක් ... එකතු !කළ ඒවා වඩාත් පහසුවෙන් නොසලකා හැරිය හැකිය.
ක්‍රිස්ටෝෆ්

51
ප්‍රධාන කුමන්ත්‍රණය විකෘති කිරීම! මෙම තේරීම් 4 වන ඩබ්ලිව් පමණක් යාවත්කාලීන කර අද CSS නිර්මාණයන් භාවිතා කිරීමට වන වේගයෙන් පැතිකඩ, මෙම විෂය දර්ශකයක් ඉවත් කිරීමට. මෙම වෙනස පවතින්නේ නම්, එයින් අදහස් වන්නේ ඔබට විෂය දර්ශකය තවදුරටත් මෝස්තර පත්‍රවල භාවිතා කිරීමට නොහැකි වනු ඇති බවයි (ඔබ වෙනත් පිළිතුරක විස්තර කර ඇති ආකාරයට යම් ආකාරයක පොලිෆිල් එකක් එකතු නොකරන්නේ නම් ) - ඔබට එය භාවිතා කළ හැක්කේ තේරීම් කාරක API සහ ඕනෑම තැනක පමණි නැතිනම් සම්පූර්ණ පැතිකඩ ක්‍රියාත්මක කළ හැකිය.
බෝල්ට් ක්ලොක්

56
තවත් ප්‍රධාන යාවත්කාලීනයක්: ඔවුන් විෂය තේරීම් වාක්‍ය ඛණ්ඩය මුළුමනින්ම ඉවත් කර එය :has()ව්‍යාජ ලෙස ප්‍රතිස්ථාපනය කිරීම ගැන සලකා බලන බව පෙනේ . නවතම ED විසින් විෂය දර්ශකය පිළිබඳ සියලු යොමු කිරීම් ඉවත් කර ඇති අතර එය :has()ව්‍යාජ ලෙස ප්‍රතිස්ථාපනය කර ඇත . නිශ්චිත හේතු මම නොදනිමි, නමුත් CSSWG මීට කලකට පෙර මත විමසුමක් පැවැත්වූ අතර ප්‍රති results ල මෙම තීරණයට බලපෑම් කළ යුතුය. එය බොහෝ විට jQuery සමඟ අනුකූල වීමට බොහෝ දුරට ඉඩ ඇත (එබැවින් එය වෙනස් කිරීමකින් තොරව qSA උත්තේජනය කළ හැකිය), සහ විෂය දර්ශක වාක්‍ය ඛණ්ඩය අවුල් සහගත බව ඔප්පු වූ බැවිනි.
බෝල්ට්ලොක්

152

ඔබට CSS වලින් පමණක් දෙමාපියන් තෝරා ගත හැකි යැයි මම නොසිතමි.

නමුත් ඔබට දැනටමත් .activeපංතියක් ඇති බව පෙනෙන පරිදි , එම පන්තිය li(වෙනුවට a) වෙත ගෙන යාම පහසු වනු ඇත . එමඟින් ඔබට CSS හරහා පමණක් liසහ aපිවිසිය හැකිය.


4
ව්‍යාජ තේරීම ලැයිස්තු අයිතමයට මාරු කළ නොහැක, මන්ද එය අවධානය යොමු කළ හැකි අංගයක් නොවේ. ඔහු භාවිතා කරන්නේ: සක්‍රීය තේරීම් කාරකය, එබැවින් නැංගුරම සක්‍රිය වූ විට ඔහුට අවශ්‍ය වන්නේ ලැයිස්තු අයිතමයට බලපෑමක් ඇති කිරීමයි. ලැයිස්තු අයිතම කිසි විටෙකත් ක්‍රියාකාරී තත්වයේ නොමැත. අනෙක් අතට, එවැනි තේරීම් කාරකයක් නොවීම අවාසනාවකි. සම්පූර්ණ යතුරුපුවරුවට ප්‍රවේශ විය හැකි පිරිසිදු CSS මෙනුවක් ලබා ගැනීම එය නොමැතිව කළ නොහැකි බව පෙනේ (සහෝදර සහෝදරියන් තේරීම් භාවිතා කිරීමෙන් ඔබට කැදැලි ලැයිස්තු භාවිතයෙන් උප මෙනූ සෑදිය හැකිය, නමුත් ලැයිස්තුව අවධානය යොමු වූ පසු එය නැවත සැඟවී යයි). මෙම විශේෂිත කේතුධරයට CSS පමණක් විසඳුම් තිබේ නම්

13
Omin ඩොමිනික් ඇක්වයිලිනා ප්‍රශ්නය දෙස බලන්න, OP භාවිතා කරන්නේ පන්තියක් මිස ව්‍යාජ තේරීම් කාරකයක් නොවේ.
ජෙරෝන්

126

ඔබට මෙම ස්ක්‍රිප්ට් භාවිතා කළ හැකිය :

*! > input[type=text] { background: #000; }

මෙය පෙළ ආදානයක ඕනෑම දෙමාපියෙකු තෝරා ගනු ඇත. නමුත් රැඳී සිටින්න, තව බොහෝ දේ ඇත. ඔබට අවශ්‍ය නම්, ඔබට නිශ්චිත දෙමාපියෙකු තෝරා ගත හැකිය:

.input-wrap! > input[type=text] { background: #000; }

නැතහොත් එය සක්‍රිය විට එය තෝරන්න:

.input-wrap! > input[type=text]:focus { background: #000; }

මෙම HTML බලන්න:

<div class="input-wrap">
    <input type="text" class="Name"/>
    <span class="help hide">Your name sir</span>
</div>

සක්‍රිය span.helpවිට ඔබට එය තෝරා inputඑය පෙන්විය හැකිය:

.input-wrap! .help > input[type=text]:focus { display: block; }

තවත් බොහෝ හැකියාවන් ඇත; ප්ලගිනයේ ප්‍රලේඛනය බලන්න.

BTW, එය ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් හි වැඩ කරයි.


5
jquery භාවිතා patent()කිරීම වේගවත් වේ යැයි සිතමු . කෙසේ වෙතත්, මෙම අවශ්‍යතා පරීක්ෂා කිරීම
ඩෑන්

2
@Idered නැහැ, ඔබ දරුවා තේරීම් සමඟ වාරකය යට CSS ප්රකාශ ඇති වූ විට එය අසමත් ( #a!පමණක්, දෝෂයක් අවුලට #a! pක්රියා කරයි), සහ අන් අය නිසා හෝ වැඩ නැහැ එසේ Uncaught TypeError: Cannot call method 'split' of undefined: බලන්න jsfiddle.net/HerrSerker/VkVPs
yunzen

3
Er හර්සර්කර් මම හිතන්නේ #a! අවලංගු තේරීම් කාරකයක්, එය තෝරාගත යුත්තේ කුමක්ද?
Idered

2
මම දන්නේ නැහැ. පිරිවිතර එය නීති විරෝධී යැයි නොකියයි. #ඒ! තමන් විසින්ම තෝරා ගත යුතුය. අවම වශයෙන් ඒවා ජාවාස්ක්‍රිප්ට් හි කිසිදු දෝෂයක් නොවිය යුතුය
yunzen

5
පිළිගත් පිළිතුර පිළිබඳ මගේ අදහස් අනුව, නුදුරු අනාගතයේ දී පවා පොලිෆිල් අවශ්‍ය විය හැකි බව පෙනේ, මන්ද CSS හි බ්‍රව්සර් විසින් විෂය දර්ශකය කිසි විටෙකත් ක්‍රියාත්මක කළ නොහැකි බැවිනි.
බෝල්ට් ක්ලොක්

107

තවත් කිහිප දෙනෙකු සඳහන් කළ පරිදි, හුදෙක් CSS භාවිතා කරමින් මූලද්‍රව්‍යයක මවුපියන්ගේ ශෛලිය සැකසීමට ක්‍රමයක් නොමැත, නමුත් පහත සඳහන් දෑ jQuery සමඟ ක්‍රියා කරයි :

$("a.active").parents('li').css("property", "value");

21
මෙම <තේරීම් (jQuery 1.7.1 භාවිතා තහවුරු) නොපවතියි.
රොබ් ඩබ්ලිව්

6
සමහර විට එම <සින්ටැක්ස් 2009 දී වැඩ කළ නමුත් මම එය යාවත්කාලීන කර ඇත (2013 සඳහා).
ඇලෙස්ටෙයාර්

5
ඊටත් වඩා හොඳයි, jQuery හි සාදන ලද :has()තේරීම භාවිතා කරන්න : $("li:has(a.active)").css("property", "value");. එය CSS 4 හි යෝජිත !තේරීම් කාරකයට සමානව කියවයි . මෙයද බලන්න: :parentතේරීම් කාරකය , .parents()ක්‍රමය , .parent()ක්‍රමය .
රෝරි ඕ'කේන්

7
.css("property", "value")තෝරාගත් අංග මෝස්තර කිරීමට භාවිතා කරනවාට වඩා , ඔබ සාමාන්‍යයෙන් .addClass("someClass")සහ ඔබේ CSS තුළ .someClass { property: value }( හරහා ) තිබිය යුතුය . ඒ ආකාරයෙන්, ඔබට CSS හි පූර්ණ බලය සහ ඔබ භාවිතා කරන ඕනෑම පූර්ව සකසනයකින් ශෛලිය සටහන් කළ හැකිය.
රෝරි ඕ'කේන්


69

දෙමාපිය තේරීම් කාරයෙක් නොමැත; කලින් සහෝදර සහෝදරියන් තෝරා නොගත් ආකාරයට. මෙම තේරීම්කරුවන් නොසිටීමට එක් හොඳ හේතුවක් නම්, පංතියක් යෙදිය යුතුද නැද්ද යන්න තීරණය කිරීම සඳහා බ්‍රව්සරයට මූලද්‍රව්‍යයක සියලුම දරුවන් හරහා ගමන් කළ යුතු බැවිනි. උදාහරණයක් ලෙස, ඔබ ලියා ඇත්නම්:

body:contains-selector(a.active) { background: red; }

එවිට </body>පිටුව රතු වී තිබේද නැද්ද යන්න තීරණය කිරීමට බ්‍රව්සරයට සියල්ල පටවා විග්‍රහ කරන තෙක් බලා සිටීමට සිදුවනු ඇත .

අපට මව් තේරීම්කරුවෙකු නොමැති ඇයි යන ලිපිය එය විස්තරාත්මකව පැහැදිලි කරයි.


11
එබැවින් බ්‍රව්සරය වේගවත් කරන්න. අන්තර්ජාලය වේගවත් වේ. මෙම තේරීම අනිවාර්යයෙන්ම අවශ්‍ය වන අතර එය ක්‍රියාත්මක නොකිරීමට හේතුව කනගාටුවට කරුණකි, මන්ද අප ජීවත් වන්නේ මන්දගාමී, ප්‍රාථමික ලෝකයක ය.
vsync

11
ඇත්ත වශයෙන්ම, තේරීම්කරු ඉතා වේගවත් බ්‍රව්සරයක් මන්දගාමී පෙනුමක් ලබා දෙනු ඇත.
සල්මාන් ඒ

5
බ්‍රව්සර් සංවර්ධකයින් ජාවාස්ක්‍රිප්ට් අනුවාදය තරම් වේගයෙන් (අවම වශයෙන්) ක්‍රියාත්මක කිරීමක් ඉදිරිපත් කරනු ඇතැයි මම විශ්වාස කරමි, එය කෙසේ හෝ භාවිතා කිරීම අවසන් කරයි.
මාර්ක් 2377

"අපි ජීවත් වන්නේ මන්දගාමී, ප්‍රාථමික ලෝකයක" කැස්ස කැස්ස නව ඇපල් ඔරලෝසු කැස්ස කැස්ස
මර්වින්

@ Marc.2377 ඔබ ඔබේ වෙබ් අඩවියේ JS හි ඉහත උදාහරණය උත්සාහ කළහොත්, මම කිසි විටෙකත් එය නැරඹීමට යන්නේ නැත. අනෙක් පැත්තෙන්, බොහෝ විට ඔබ සැලකිලිමත් වන්නේ ක්ෂණික දරුවන් ගැන පමණක් යැයි මම කියමි, එබැවින් එය ළඟම දරුවන්ට පමණක් සීමා වූවා නම්, එය වැඩි බලපෑමක් නොමැතිව හොඳ එකතු කිරීමක් වනු ඇත.
xryl669

55

CSS 2 හි මෙය කිරීමට ක්‍රමයක් නොමැත. ඔබට පන්තිය එකතු කර පහත liසඳහන් කළ හැකිය a:

li.active > a {
    property: value;
}

3
මූලද්රව්ය සංදර්ශකය සෑදීමෙන්: අවහිර කිරීමෙන් ඔබට මුළු li ප්රදේශයටම ගැලපෙන පරිදි එය මෝස්තර කළ හැකිය. ඔබ සොයන විලාසිතාව ඔබට පැහැදිලි කළ හැකි නම්, විසඳුමක් සඳහා මට උදව් කළ හැකිය.
ජොෂ්

මෙය සැබවින්ම සරල හා අලංකාර විසඳුමක් වන අතර බොහෝ අවස්ථාවලදී දෙමව්පියන් මත පන්තිය සැකසීම අර්ථවත් කරයි.
රිකාඩෝ

35

මාරු කිරීමට උත්සාහ aකිරීමට blockසංදර්ශකය, සහ, ඉන් පසුව ඔබට අවශ්ය ඕනෑම ආකාරයේ භාවිතා කරන්න. මෙම aසාධකය පුරවන්නේ liඅංගයක්, සහ ඔබට අවශ්ය ලෙස එහි පෙනුම වෙනස් කිරීමට හැකි වනු ඇත. liපෑඩින් 0 ලෙස සැකසීමට අමතක නොකරන්න .

li {
  padding: 0;
  overflow: hidden;
}
a {
  display: block;
  width: 100%;
  color: ..., background: ..., border-radius: ..., etc...
}
a.active {
  color: ..., background: ...
}

30

CSS තේරීම් කාරක “ සාමාන්‍ය සහෝදර සහෝදරියන් ” ඔබට අවශ්‍ය දේ සඳහා භාවිතා කළ හැකිය:

E ~ F {
    property: value;
}

මෙය Fමූලද්‍රව්‍යයකට පෙර ඇති ඕනෑම මූලද්‍රව්‍යයකට ගැලපේ E.


25
මෙය හුදෙක් සහෝදර සහෝදරියන් තෝරා ගැනීමකි, එය දරුවා නොවේ, මවුපිය ... ඇත්ත වශයෙන්ම ප්‍රශ්න සහකරුට පිළිතුරු නොදෙයි
Alireza

26

මා දන්නා තරමින් CSS 2 හි නොවේ. CSS 3 වඩා ශක්තිමත් තේරීම් කරුවන් ඇති නමුත් සියලු බ්‍රව්සර් හරහා නිරන්තරයෙන් ක්‍රියාත්මක නොවේ. වැඩිදියුණු කළ තේරීම්කරුවන් සමඟ වුවද, එය ඔබගේ උදාහරණයේ දක්වා ඇති දේ හරියටම ඉටු කරනු ඇතැයි මම විශ්වාස නොකරමි.


24

OP විසින් CSS විසඳුමක් සොයන බව මම දනිමි, නමුත් jQuery භාවිතා කර එය සාක්ෂාත් කර ගැනීම සරල ය. මගේ නඩුවේදී , දරුවා තුළ අඩංගු <ul>ටැගයක් සඳහා මව් ටැගය සොයා ගැනීමට මට අවශ්‍ය විය . jQuery හි තේරීම් කාරකය සිටින බැවින් එහි අඩංගු දරුවන් විසින් දෙමාපියෙකු හඳුනාගත හැකිය:<span><li>:has

$("ul:has(#someId)")

ulid someId සමඟ ළමා අංගයක් ඇති මූලද්‍රව්‍යය තෝරා ගනු ඇත . නැතහොත් මුල් ප්‍රශ්නයට පිළිතුරු සැපයීම සඳහා පහත සඳහන් දෑ වැනි උපක්‍රමයක් කළ යුතුය (පරීක්ෂා නොකළ):

$("li:has(.active)")

3
නැතහොත් භාවිතා කරන්න, $yourSpan.closest("ul")එවිට ඔබට ඔබේ පරතරයේ මූලද්‍රව්‍යයේ මව් යූඑල් ලැබෙනු ඇත. එසේ වුවද, ඔබේ පිළිතුර සම්පුර්ණයෙන්ම පරස්පර විරෝධී ය. අපට CSS ටැග් කළ සියලුම ප්‍රශ්න වලට jQuery විසඳුමක් සමඟ පිළිතුරු දිය හැකිය.
රොබින් වැන් බැලන්

1
වෙනත් පිළිතුරු වලින් හඳුනාගෙන ඇති පරිදි, CSS 2 භාවිතා කර මෙය කිරීමට ක්‍රමයක් නොමැත. එම අවහිරතාවය සැලකිල්ලට ගෙන, මා ලබා දුන් පිළිතුර effective ලදායී බව මා දන්නා අතර ජාවාස්ක්‍රිප්ට් ඉමෝ භාවිතා කරමින් ප්‍රශ්නයට පිළිතුරු දීමට ඇති සරලම ක්‍රමය එයයි.
ඩේවිඩ් ක්ලාක්

ඔබගේ අභිවෘද්ධිය අනුව, සමහර අය ඔබ සමඟ එකඟ වේ. නමුත් එකම පිළිතුර පිළිගත් පිළිතුරයි. සරල හා සරල “එය ඔබට අවශ්‍ය ආකාරයට කළ නොහැක”. ප්‍රශ්නය නම් බයිසිකලයකින් පැයට සැතපුම් 60 ක් උපයා ගන්නේ කෙසේද යන්නයි. ඔබ එයට පිළිතුරු දෙන්නේ “සරලයි; මෝටර් රථයකට නැග ගෑස් වලට පහර දෙන්න” යනුවෙනි. එය තවමත් පිළිතුරක් නොවේ. එබැවින් මගේ අදහස.
රොබින් වැන් බැලන්

1
එම ප්‍රවේශය SO සම්පූර්ණයෙන්ම පාහේ නිෂ් less ල වනු ඇත. ගැටළු විසඳන්නේ කෙසේදැයි මම SO සොයමි, "එකම පිළිතුර" සොයා නොගැනීම ගැටළුව විසඳන්නේ නැත. බළලෙකු සමට ගැනීම සඳහා සෑම විටම එකකට වඩා ක්‍රම ඇති බැවින් SO මෙතරම් නියමයි.
ඩේවිඩ් ක්ලාක්

23

ව්‍යාජ මූලද්‍රව්‍යය :focus-withinපරම්පරාවකට අවධානය යොමු වී ඇත්නම් මවුපියන් තෝරා ගැනීමට ඉඩ දෙයි.

මූලද්‍රව්‍යයකට tabindexලක්ෂණයක් තිබේ නම් එය අවධානය යොමු කළ හැකිය .

අවධානය යොමු කිරීම සඳහා බ්‍රව්සර සහාය

ටබින්ඩෙක්ස්

උදාහරණයක්

.click {
  cursor: pointer;
}

.color:focus-within .change {
  color: red;
}

.color:focus-within p {
  outline: 0;
}
<div class="color">
  <p class="change" tabindex="0">
    I will change color
  </p>
  <p class="click" tabindex="1">
    Click me
  </p>
</div>


2
මගේ කාරණයේදී මෙය හොඳින් ක්‍රියාත්මක වේ, ස්තූතියි! එසේ නොවේ නම්, ඔබ වර්ණය දෙමව්පියන්ට වෙනස් කළහොත් මිස සහෝදරයාට නොව, මෙය වඩාත් ප්‍රතිස්ථාපනය වනු .color:focus-within .changeඇත .color:focus-within. මගේ නඩුවේදී මම භාවිතා කරන්නේ බූට්ස්ට්‍රැප් nav-bar වන අතර එය ක්‍රියාකාරී වන විට ළමයින්ට පන්තිය එක් කරන අතර මවුපියන්ට පන්තියක් එක් කිරීමට මට අවශ්‍යය .nav-bar. මම හිතන්නේ මෙය මාක්අප් හිමිකම ඇති පොදු සිදුවීමක් වන නමුත් css + js සං component ටකය බූට්ස්ට්‍රැප් (හෝ වෙනත්) බැවින් මට හැසිරීම වෙනස් කළ නොහැක. මට ටැබින්ඩෙක්ස් එකතු කර මෙම CSS භාවිතා කළ හැකි වුවද. ස්තූතියි!
cancerbero

22

තේරීම්කරුවන්ගේ 4 වන මට්ටමේ පිරිවිතරයේ වඩාත්ම සාකච්ඡා වූ අංගය මෙයයි . මේ සමඟ, තේරීම් කරුවෙකුට (!) ලබා දුන් පසු විශ්මය දනවන සලකුණක් භාවිතා කිරීමෙන් මූලද්‍රව්‍යයක් තම දරුවාට අනුව හැඩගස්වා ගත හැකිය.

උදාහරණයක් වශයෙන්:

body! a:hover{
   background: red;
}

පරිශීලකයා ඕනෑම නැංගුරමක් උඩින් සැරිසැරුවහොත් රතු පසුබිම් වර්ණයක් සකසනු ඇත.

නමුත් බ්‍රව්සර් ක්‍රියාත්මක කිරීම සඳහා අප බලා සිටිය යුතුය :(


21

ඔබ මවුපියන් ලෙස හයිපර්ලින්ක් භාවිතා කිරීමට උත්සාහ කළ හැකිය, පසුව හෝවර් හි අභ්‍යන්තර අංග වෙනස් කරන්න. මෙවැනි:

a.active h1 {color:red;}

a.active:hover h1 {color:green;}

a.active h2 {color:blue;}

a.active:hover h1 {color:yellow;}

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


1
එය නිවැරදිය, නමුත් aඔබට XHTML ප්‍රමිතීන්ට අනුකූල වීමට අවශ්‍ය නම්, ටැගය තුළ ඇති සලකුණු කේතය ඇතැම් මූලද්‍රව්‍යයන්ට පමණක් සීමා කරයි. නිදසුනක් ලෙස, යෝජනා ක්‍රමය උල්ලං of නය කිරීම පිළිබඳ අනතුරු ඇඟවීමක් ලබා නොගෙන ඔබට divඇතුළත භාවිතා කළ නොහැක a.
අයිවාලෝ ස්ලාවොව්

2
සම්පූර්ණයෙන්ම අයිවායිලෝ! "a" යනු අවහිර නොවන මූලද්‍රව්‍යයකි, එබැවින් එය තුළ ඇති බ්ලොක් අංග භාවිතා කළ නොහැක.
ගංගා කුණාටුව

1
HTML5 හි බ්ලොක් මූලද්‍රව්‍ය සබැඳි තුළ තැබීම ඉතා සුදුසුය.
මැතිව් ජේම්ස් ටේලර්

2
... එය අර්ථාන්විතව වැරදියි නම්, ඔවුන් එය පෙර නොවූ HTML5 හි එයට ඉඩ නොදෙනු ඇත.
බෝල්ට් ක්ලොක්

14

දැනට මව් තේරීම් කාරක සභිකයෙකු නොමැති අතර එය W3C හි කිසිදු සාකච්ඡාවකදී පවා සාකච්ඡා නොකෙරේ. අපට එය අවශ්‍යද නැද්ද යන්න සැබවින්ම අවබෝධ කර ගැනීම සඳහා CSS බ්‍රව්සරය විසින් ඇගයීමට ලක් කරන්නේ කෙසේදැයි ඔබ තේරුම් ගත යුතුය.

මෙහි තාක්ෂණික පැහැදිලි කිරීම් රාශියක් ඇත.

CSS ඇගයීමට ලක් කරන ආකාරය ජොනතන් ස්නූක් පැහැදිලි කරයි .

දෙමාපිය තේරීම් කමිටුවේ සාකච්ඡා පිළිබඳව ක්‍රිස් කොයියර් .

හැරී රොබට්ස් නැවතත් කාර්යක්ෂම CSS තේරීම් ලිවීම පිළිබඳව .

නමුත් නිකොල් සුලිවන්ට ධනාත්මක ප්‍රවණතා පිළිබඳ රසවත් කරුණු කිහිපයක් තිබේ .

මෙම පුද්ගලයින් සියල්ලන්ම ඉදිරිපස සංවර්ධන ක්‍ෂේත්‍රයේ ඉහළ පෙළේ අය වෙති.


12
needවෙබ් සංවර්ධකයින්ගේ අවශ්‍යතා අනුව මෙය අර්ථ දැක්වේ, එය පිරිවිතරයේ තිබේද යන්න වෙනත් සාධක මගින් තීරණය වේ.
nicodemus13

14

තිරස් මෙනුව සඳහා අදහසක් පමණි ...

HTML හි කොටසක්

<div class='list'>
  <div class='item'>
    <a>Link</a>
  </div>
  <div class='parent-background'></div>
  <!-- submenu takes this place -->
</div>

CSS හි කොටසක්

/* Hide parent backgrounds... */
.parent-background {
  display: none; }

/* ... and show it when hover on children */
.item:hover + .parent-background {
  display: block;
  position: absolute;
  z-index: 10;
  top: 0;
  width: 100%; }

යාවත්කාලීන කළ නිරූපණය සහ ඉතිරි කේතය

පෙළ ආදාන සමඟ එය භාවිතා කරන්නේ කෙසේද යන්න තවත් උදාහරණයක් - මව් ක්ෂේත්‍ර කට්ටලය තෝරන්න


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

2
මම මෙය සැබෑ ලෝක තත්වයන්ට අදාළ කිරීමට උත්සාහ කළේ නැත, ඒ නිසා මම "නිෂ්පාදනය සඳහා නොවේ" යැයි කියමි. නමුත් මම හිතන්නේ එය 2-මට්ටමේ මෙනුවට යෙදිය හැක්කේ ස්ථාවර අයිතම පළල සමඟ පමණි. "මෙම CSS හි කුමන කොටස් කරන්නේ කුමක්ද" - .එහි හොඳම සහෝදරයා ඇත්ත වශයෙන්ම මව් අයිතමයේ පසුබිමයි (CSS හි අවසාන පේළිය).
ඉල්යා බී.

2
පැහැදිලි කිරීමක් එක් කරන ලදි (jsfiddle හි css කොටස, "MAIN PART" සිට ආරම්භ වේ) ... තවද මට වැරදුණි - උපසිරැසි ගණනක් තිබිය හැකිය.
ඉලියා බී.

13

මෙහි භාවිතා කර නම්න් වේ pointer-eventsසමග hover:

<!doctype html>
<html>
	<head>
		<title></title>
		<style>
/* accessory */
.parent {
	width: 200px;
	height: 200px;
	background: gray;
}
.parent, 
.selector {
	display: flex;
	justify-content: center;
	align-items: center;
}
.selector {
	cursor: pointer;
	background: silver;
	width: 50%;
	height: 50%;
}
		</style>
		<style>
/* pertinent */
.parent {
	background: gray;
	pointer-events: none;
}
.parent:hover {
	background: fuchsia;
}
.parent 
.selector {
	pointer-events: auto;
}
		</style>
	</head>
	<body>
		<div class="parent">
			<div class="selector"></div>
		</div>
	</body>
</html>


12

වෙබ් අඩවි සැලසුම් කිරීමේදී සැබවින්ම උදව් කළ හැකි සම්මත නොවන විශේෂාංග කිහිපයක් ඇතුළත් කිරීමට CSS පුළුල් කරන ප්ලගිනයක් තිබේ. එය EQCSS ලෙස හැඳින්වේ .

EQCSS එකතු කරන එක් දෙයක් වන්නේ මව් තේරීම් කාරකයෙකි. ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 8 සහ ඊට ඉහළ සියලුම බ්‍රව්සර් වල එය ක්‍රියා කරයි. මෙන්න ආකෘතිය:

@element 'a.active' {
  $parent {
    background: red;
  }
}

ඉතින් මෙන්න අපි සෑම මූලද්‍රව්‍යයකම මූලද්‍රව්‍ය විමසුමක් විවෘත කර a.activeඇති අතර, එම විමසුම තුළ ඇති මෝස්තර $parentසඳහා, යොමු ලක්ෂ්‍යයක් ඇති බැවින් අර්ථවත් කිරීම වැනි දේ අර්ථවත් කරයි. බ්‍රව්සරයට මවුපියන් සොයා ගත හැකිය, මන්ද එය parentNodeජාවාස්ක්‍රිප්ට් වලට බෙහෙවින් සමාන ය .

මෙන්න $parentඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 8 හි නිරූපණයක් සහ තවත් $parentනිරූපණයක් මෙන්ම ඔබට පරීක්ෂා කිරීමට ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 8 නොමැති නම් තිර රුවක් ද ඇත .

EQCSS හි මෙටා-තේරීම් ද ඇතුළත් ය : $prevතෝරාගත් මූලද්‍රව්‍යයකට පෙර ඇති මූලද්‍රව්‍යය $thisසඳහා සහ මූලද්‍රව්‍ය විමසුමකට ගැලපෙන මූලද්‍රව්‍ය සඳහා පමණක් සහ තවත් දේ.


11

එය දැන් 2019 වන අතර CSS කූඩු මොඩියුලයේ නවතම කෙටුම්පතට ඇත්ත වශයෙන්ම මේ වගේ දෙයක් තිබේ. @nestනීති රීති හඳුන්වා දීම .

3.2. කැදැල්ල පාලනය: estnest

සෘජු කැදැල්ල ලස්සන පෙනුමක් ඇති නමුත් එය තරමක් බිඳෙන සුළුය. .Foo & වැනි සමහර වලංගු කැදැලි තේරීම් කරුවන්ට අවසර දී නොමැති අතර, තේරීම් කාරකය යම් ආකාරයකින් සංස්කරණය කිරීමෙන් රීතිය අනපේක්ෂිත ලෙස අවලංගු කළ හැකිය. අවට ප්‍රකාශයන්ගෙන් දෘශ්‍යමය වශයෙන් වෙන්කර හඳුනා ගැනීම සමහර අයට කැදැල්ල අභියෝගයක් ලෙස පෙනේ.

මෙම සියලු ගැටළු සඳහා ආධාර කිරීම සඳහා, මෙම පිරිවිතරයන් estnest රීතිය නිර්වචනය කරයි, එමඟින් කූඩු විලාසිතාවේ නීති රීති වලංගු වන්නේ කෙසේද යන්නට අඩු සීමාවන් පනවා ඇත. එහි වාක්‍ය ඛණ්ඩය:

@nest = @nest <selector> { <declaration-list> }

@Nest රීතිය විලාසිතාවේ රීතියකට සමාන ලෙස ක්‍රියා කරයි: එය තේරීම් කාරකයකින් ආරම්භ වන අතර තේරීම්කරු ගැලපෙන මූලද්‍රව්‍යයන්ට අදාළ ප්‍රකාශන අඩංගු වේ. එකම වෙනස වන්නේ estnest රීතියක භාවිතා කරන තේරීම් කූඩුව අඩංගු විය යුතුය, එයින් අදහස් වන්නේ එහි කොතැනක හෝ කැදැලි තේරීම් කාරකයක් අඩංගු වන බවයි. එහි තනි සංකීර්ණ තේරීම් සියල්ලම කූඩු අඩංගු නම් තේරීම් ලැයිස්තුවක් කූඩුවකින් සමන්විත වේ.

(ඉහත URL වෙතින් පිටපත් කර අලවන්න).

මෙම පිරිවිතර යටතේ වලංගු තේරීම්කරුවන්ගේ උදාහරණය:

.foo {
  color: red;
  @nest & > .bar {
    color: blue;
  }
}
/* Equivalent to:
   .foo { color: red; }
   .foo > .bar { color: blue; }
 */

.foo {
  color: red;
  @nest .parent & {
    color: blue;
  }
}
/* Equivalent to:
   .foo { color: red; }
   .parent .foo { color: blue; }
 */

.foo {
  color: red;
  @nest :not(&) {
    color: blue;
  }
}
/* Equivalent to:
   .foo { color: red; }
   :not(.foo) { color: blue; }
 */

10

තාක්ෂණික වශයෙන් මෙය කිරීමට සෘජු ක්‍රමයක් නොමැත. කෙසේ වෙතත්, ඔබට එය jQuery හෝ JavaScript සමඟ වර්ග කළ හැකිය.

කෙසේ වෙතත්, ඔබටත් මේ වගේ දෙයක් කළ හැකිය.

a.active h1 {color: blue;}
a.active p {color: green;}

jQuery

$("a.active").parents('li').css("property", "value");

ඔබට jQuery භාවිතා කර මෙය සාක්ෂාත් කර ගැනීමට අවශ්‍ය නම් jQuery මව් තේරීම් කාරකය සඳහා යොමු කිරීම මෙහි දැක්වේ .


9

W3C එවැනි තේරීම් කාරකයක් බැහැර කළේ එය බ්‍රව්සරයකට ඇති විශාල කාර්යසාධන බලපෑම නිසාය.


27
බොරු. DOM යනු ගසක් බැවින්, ඔවුන් දරුවා වෙත යාමට පෙර දෙමව්පියන් වෙත යා යුතුය, එබැවින් සරලවම එක් නෝඩයක් වෙත ආපසු යන්න. oo
NullVoxPopuli

9
CSS තේරීම් යනු පෝලිමේ එසේ තේරීම් සඳහා ඒ වෙනුවට බලන්න XPath හෝ DOM ධුරාවලියේ වඩා ඇගයීමට ලක් කර ඇත.
පෝල් ස්වීට්

3
@rgb අවම වශයෙන් එය ඔවුන් අපට පැවසුවා.
යුන්සන්

9

කෙටි පිළිතුර නම් නැත ; අපට parent selectorCSS හි මෙම අවස්ථාවෙහි නොමැත, නමුත් ඔබට කෙසේ හෝ මූලද්‍රව්‍ය හෝ පන්ති මාරු කිරීමට අවශ්‍ය නොවන්නේ නම්, දෙවන විකල්පය වන්නේ ජාවාස්ක්‍රිප්ට් භාවිතා කිරීමයි. මේ වගේ දෙයක්:

var activeATag = Array.prototype.slice.call(document.querySelectorAll('a.active'));

activeATag.map(function(x) {
  if(x.parentNode.tagName === 'LI') {
    x.parentNode.style.color = 'red'; // Your property: value;
  }
});

හෝ ඔබේ යෙදුමේ jQuery භාවිතා කරන්නේ නම් කෙටි ක්‍රමයක් :

$('a.active').parents('li').css('color', 'red'); // Your property: value;

5

දැනට සම්මත CSS කිසිදු මව් තේරීම් නොමැති වුවද, මම නම් (පෞද්ගලික) ව්යාපෘතියේ වැඩ සිටිමි පොරොව (. එනම් වර්ධනය කිරීමද CSS වාරකය වාග් රීතිය / ACSSSS :) සිය නව තේරීම් කමිටුව 7 අතර, දෙකම ඇතුළත් වන,

  1. වහාම මව් තේරීම් <(ප්රතිවිරුද්ධ තෝරා හැකියාව ලැබෙන අතර >)
  2. ඕනෑම පිය තේරීම් ^ (ප්රතිවිරුද්ධ තෝරා හැකියාව ලැබෙන අතර [SPACE])

පොරොව වර්තමානයේ බීටා සංවර්ධනයේ මුල් අවධියේ පවතී.

මෙහි නිරූපණයක් බලන්න:

http://rounin.co.uk/projects/axe/axe2.html

(වම් පස ඇති ලැයිස්තු දෙක සම්මත තේරීම් කරුවන් හා දකුණු පස ඇති ලැයිස්තු දෙක අක්ෂ තේරීම් සමඟ සසඳන්න)


3
මෙම ව්‍යාපෘතිය මේ වන විට මුල් බීටා අවධියක පවතී. <script src="https://rouninmedia.github.io/axe/axe.js"></script>මීට පෙර, ඔබේ HTML ලේඛනයේ අවසානයේ ඇතුළත් කිරීමෙන් ඔබට (අවම වශයෙන් දැනට) ඔබේ CSS මෝස්තරවල අක්ෂ තේරීම් සක්‍රිය කළ හැකිය </body>.
රවුනින්

4

අවම වශයෙන් CSS 3 දක්වා සහ ඇතුළුව ඔබට එය තෝරා ගත නොහැක. නමුත් වර්තමානයේ එය ජාවාස්ක්‍රිප්ට් හි ඉතා පහසුවෙන් කළ හැකිය, ඔබට වැනිලා ජාවාස්ක්‍රිප්ට් ටිකක් එකතු කළ යුතුය, කේතය ඉතා කෙටි බව සලකන්න.

cells = document.querySelectorAll('div');
[].forEach.call(cells, function (el) {
    //console.log(el.nodeName)
    if (el.hasChildNodes() && el.firstChild.nodeName=="A") {
        console.log(el)
    };
});
<div>Peter</div>
<div><a href="#">Jackson link</a></div>
<div>Philip</div>
<div><a href="#">Pullman link</a></div>


4

අදහස් තිබේද?

එය සමහර කරයි නම්, CSS 4 විසිතුරු වනු ඇත කොකු බවට ඇවිදින ආපස්සට . ඒ තරමට එය (නමුත් හැකි ය නොවන භාවිතා කිරීමට ඉතා යෝග්ය) checkboxසහ / හෝ radio inputs කිරීමට බිඳ දේවල් සම්බන්ධ වී ඇති සාමාන්ය ආකාරයෙන්, සහ ඒ තුළින් ද CSS එහි සාමාන්ය විෂය පථය පිටත ක්රියාත්මක කිරීමට ඉඩ ...

/* Hide things that may be latter shown */
.menu__checkbox__selection,
.menu__checkbox__style,
.menu__hidden {
  display: none;
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0); /* Old Microsoft opacity */
}


/* Base style for content and style menu */
.main__content {
  background-color: lightgray;
  color: black;
}

.menu__hidden {
  background-color: black;
  color: lightgray;
  /* Make list look not so _listy_ */
  list-style: none;
  padding-left: 5px;
}

.menu__option {
  box-sizing: content-box;
  display: block;
  position: static;
  z-index: auto;
}

/* &#9660; - \u2630 - Three Bars */
/*
.menu__trigger__selection::before {
  content: '\2630';
  display: inline-block;
}
*/

/* &#9660; - Down Arrow */
.menu__trigger__selection::after {
  content: "\25BC";
  display: inline-block;
  transform: rotate(90deg);
}


/* Customize to look more `select` like if you like */
.menu__trigger__style:hover,
.menu__trigger__style:active {
  cursor: pointer;
  background-color: darkgray;
  color: white;
}


/**
 * Things to do when checkboxes/radios are checked
 */

.menu__checkbox__selection:checked + .menu__trigger__selection::after,
.menu__checkbox__selection[checked] + .menu__trigger__selection::after {
  transform: rotate(0deg);
}

/* This bit is something that you may see elsewhere */
.menu__checkbox__selection:checked ~ .menu__hidden,
.menu__checkbox__selection[checked] ~ .menu__hidden {
  display: block;
  visibility: visible;
  opacity: 1;
  filter: alpha(opacity=100); /* Microsoft!? */
}


/**
 * Hacky CSS only changes based off non-inline checkboxes
 * ... AKA the stuff you cannot unsee after this...
 */
.menu__checkbox__style[id="style-default"]:checked ~ .main__content {
  background-color: lightgray;
  color: black;
}

.menu__checkbox__style[id="style-default"]:checked ~ .main__content .menu__trigger__style[for="style-default"] {
  color: darkorange;
}

.menu__checkbox__style[id="style-one"]:checked ~ .main__content {
  background-color: black;
  color: lightgray;
}

.menu__checkbox__style[id="style-one"]:checked ~ .main__content .menu__trigger__style[for="style-one"] {
  color: darkorange;
}

.menu__checkbox__style[id="style-two"]:checked ~ .main__content {
  background-color: darkgreen;
  color: red;
}

.menu__checkbox__style[id="style-two"]:checked ~ .main__content .menu__trigger__style[for="style-two"] {
  color: darkorange;
}
<!--
  This bit works, but will one day cause troubles,
  but truth is you can stick checkbox/radio inputs
  just about anywhere and then call them by id with
  a `for` label. Keep scrolling to see what I mean
-->
<input type="radio"
       name="colorize"
       class="menu__checkbox__style"
       id="style-default">
<input type="radio"
       name="colorize"
       class="menu__checkbox__style"
       id="style-one">
<input type="radio"
       name="colorize"
       class="menu__checkbox__style"
       id="style-two">


<div class="main__content">

  <p class="paragraph__split">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  </p>

  <input type="checkbox"
         class="menu__checkbox__selection"
         id="trigger-style-menu">
  <label for="trigger-style-menu"
         class="menu__trigger__selection"> Theme</label>

  <ul class="menu__hidden">
    <li class="menu__option">
      <label for="style-default"
             class="menu__trigger__style">Default Style</label>
    </li>

    <li class="menu__option">
      <label for="style-one"
             class="menu__trigger__style">First Alternative Style</label>
    </li>

    <li class="menu__option">
      <label for="style-two"
             class="menu__trigger__style">Second Alternative Style</label>
    </li>
  </ul>

  <p class="paragraph__split">
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>

</div>

... ලස්සන දළ , නමුත් දැන් CSS සහ HTML සමග, එය කිසිවක් ස්පර්ශ කිරීමට සහ නැවත-ස්පර්ශ කළ හැකි වන නමුත් bodyසහ :rootහුදෙක් ගැන ඕනෑම තැනක සිට සම්බන්ධ කිරීමෙන් idහා forගුණ radio/ checkbox inputs සහ label ප්රේරක ; යම් වේලාවක ඒවා නැවත ස්පර්ශ කරන්නේ කෙසේදැයි යමෙක් පෙන්වනු ඇත.

එක් අමතර අවවාදයක් නම් , සමහර විට භාවිතා කළ හැකි විශේෂිත එකක් පමණක් inputවන අතර id, වෙනත් වචනවලින් ටොගල් කළ තත්වයක් පළමුවෙන් checkbox/ radio දිනා ගනී ... නමුත් බහු ලේබල් සියල්ලම එක හා සමාන විය හැකිය input, නමුත් එය HTML සහ CSS යන දෙකම වඩාත් දළ වශයෙන් පෙනෙනු ඇත.


... CSS මට්ටම 2 ට ආවේණික වූ යම් ආකාරයක ක්‍රියාමාර්ගයක් ඇතැයි මම බලාපොරොත්තු වෙමි ...

අනෙක් :තේරීම් කාරකයන් ගැන මට විශ්වාස නැත , නමුත් මම :checkedපූර්ව CSS 3 [checked]සඳහා ය.

.menu__checkbox__selection:checked ~ .menu__hidden,
.menu__checkbox__selection[checked] ~ .menu__hidden {
 /* rules: and-stuff; */
}

... නමුත් වැනි දේවල් සඳහා ::afterසහ :hover, මම සියලු ඇතැම් කරන CSS පළමු පෙනී අය අනුවාදය ඉන්නේ.

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


3

නැත, ඔබට CSS තුළ පමණක් දෙමාපියන් තෝරා ගත නොහැක.

නමුත් ඔබට දැනටමත් .activeපංතියක් ඇති බව පෙනෙන පරිදි , එම පන්තිය li(වෙනුවට a) වෙත ගෙන යාම පහසු වනු ඇත . එමඟින් ඔබට CSS හරහා පමණක් liසහ aපිවිසිය හැකිය.


1

ළමා මූලද්‍රව්‍යය මත පදනම්ව මව් මූලද්‍රව්‍යය වෙනස් කිරීම දැනට සිදුවිය හැක්කේ අප සතුව ඇති විට පමණි <input> මව් මූලද්‍රව්‍යය තුළ මූලද්‍රව්‍යයක් ඇති . ආදානය අවධානයට ලක් වූ විට, එයට අනුරූපී මව් මූලද්‍රව්‍යය CSS භාවිතයෙන් බලපෑමට ලක්විය හැකිය.

පහත දැක්වෙන උදාහරණය :focus-withinCSS හි භාවිතා කිරීම තේරුම් ගැනීමට ඔබට උපකාරී වේ.

.outer-div {
  width: 400px;
  height: 400px;
  padding: 50px;
  float: left
}

.outer-div:focus-within {
  background: red;
}

.inner-div {
  width: 200px;
  height: 200px;
  float: left;
  background: yellow;
  padding: 50px;
}
<div class="outer-div">
  <div class="inner-div">
    I want to change outer-div(Background color) class based on inner-div. Is it possible?
    <input type="text" placeholder="Name" />
  </div>
</div>


1

සාස් හි ඇම්පියර්සෑන්ඩ් සමඟ එය කළ හැකිය :

h3
  font-size: 20px
  margin-bottom: 10px
  .some-parent-selector &
    font-size: 24px
    margin-bottom: 20px

CSS ප්‍රතිදානය:

h3 {
  font-size: 20px;
  margin-bottom: 10px;
}
.some-parent-selector h3 {
  font-size: 24px;
  margin-bottom: 20px;
}

2
එය සත්‍යයකි, නමුත් ඔබ තේරීම් කාරකය කල්තියා දැන ගන්නේ නම් පමණි.
ෂහාර්

11
මෙම වන්නේ නැහැ තෝරා h3ගේ ඉලක්කය වූ මව්. මෙය h3පැවත එන්නන් තෝරා ගනී .some-parent-selector.
ජේකබ් ෆෝඩ්

1

ඒ සඳහා මම ජාවාස්ක්‍රිප්ට් කේත කිහිපයක් කුලියට ගන්නෙමි. නිදසුනක් ලෙස, ඔබ අරාව හරහා නැවත ක්‍රියා කරන විට ප්‍රතික්‍රියා කරන්න, මව් සංරචකයට තවත් පන්තියක් එක් කරන්න, එයින් ඔබේ දරුවන් සිටින බව අඟවයි:

<div className={`parent ${hasKiddos ? 'has-kiddos' : ''}`}>
    {kiddos.map(kid => <div key={kid.id} />)}
</div>

ඉන්පසු සරලව:

.parent {
    color: #000;
}

.parent.has-kiddos {
    color: red;
}

0

"CSS ක්‍රියාකාරී කණ්ඩායම මීට පෙර මව් තේරීම්කරුවන් සඳහා වූ යෝජනා ප්‍රතික්ෂේප කිරීමට ප්‍රධාන හේතු බ්‍රව්සර් කාර්ය සාධනය සහ වර්ධක විදැහුම්කරණ ගැටළු වලට අදාළ වේ."

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.