“~” (Tilde / squiggle / twiddle) CSS තේරීම්කරු අදහස් කරන්නේ කුමක්ද?


883

~චරිතය සෙවීම පහසු නැත. මම සමහර CSS ගැන සොයා බලමින් සිටියදී මෙය සොයා ගත්තා

.check:checked ~ .content {
}

එයින් අදහස් කරන්නේ කුමක් ද?


3
ඔබට තේරෙන නිරූපණය පරීක්ෂා කරන්න මෙන්න CSS තේරීම්කරුවන්ගේ ලැයිස්තුවක්
දීපක්

Y ටයිලර් එච්, එය ස්ටක් පිටාර ගැලීම් පෝස්ට් වල බහුලව භාවිතා වන දෙයක්, කරුණාකර එය පහසු කර ගන්න, එය වඩාත් නරක අතට හැරවීමට මම අදහස් නොකළෙමි.
අර්සන් කචතුරියන්

Rs අර්සෙන්චචතුරියන් සමහර විට ඔබ වරදවා වටහාගෙන ඇත; වාරණ උපුටා කාරක රීති ඉතා පෙන්නුම් සඳහා උපුටා පරිශීලක (අකුරු, රූප, ඉලක්කම්, ආදී) තම වැඩ කටයුතු හෝ වචන නොවේ, ඒත් වෙන කොහේ හරි සිට පිටපත් කරමින් යමක් පෙන්නුම් විට වන. සියලු හැඩතල ගැන්වීම් මෙන්, එයට අර්ථකථන අරමුණක් ඇත; එය විලී-නිලි එකතු කළ යුතු දෙයක් නොවේ. ඒ හා සමානව, කරුණාකර වචන වලට අහඹු ලෙස උද්දීපනය කිරීමක් එකතු නොකරන්න. එය අවධාරණයෙන්, අරපිරිමැස්මෙන් භාවිතා කළ යුතුය.
ටයිලර් එච්

Y ටයිලර් එච් එහි නම “උපුටා දැක්වීම” බවත් “උපුටා දැක්වීම” යන්නෙහි තේරුම කුමක්දැයි මට වැටහේ. කෙසේ වෙතත්, සාමාන්‍ය පෙළෙන් ප්‍රශ්න වෙන්කර හඳුනා ගැනීමට ඔබට අවශ්‍ය වූ විට, මා කළාක් මෙන් අවධාරණය කිරීමේ තාක්ෂණයන් උත්සාහ කළ හැකිය. නිර්භීත වීම සඳහා ඔබට වචන හෝ ප්‍රසිද්ධ වචන වැනි දේවල් අවධාරණය කිරීමට අවශ්‍ය විට භාවිතා කිරීම ද පැහැදිලිය. නොදන්නා හේතූන් මත මිනිසුන් නිර්භීතව භාවිතා කරන විට මම සාමාන්‍යයෙන් කැමති නැත, නමුත් සමහර විට එය මාතෘකාව හා සම්බන්ධ තොරතුරු පහසුවෙන් සොයා ගැනීමට මිනිසුන්ට භාවිතා කළ හැකිය.
අර්සන් කචතුරියන්

@ ආර්සන් ඛාචතුරන් කරුණාකර එය නොකරන්න. >යනු උපුටා දැක්වීම් සඳහා පමණි , එය කිසි විටෙකත් වෙනත් අරමුණු සඳහා භාවිතා නොකළ යුතුය. ඔබ අහඹු තාක්ෂණයන්හි නිර්භීත නම් නොකළ යුතුය. ටැග් හරහා අදාළ වන තාක්ෂණයන් අපට දැක ගත හැකිය.
user229044

Answers:


1399

මෙම ~තේරීම් ඇත්ත තමයි සාමාන්ය සහෝදර සහෝදරියන් combinator (දී පසු-සහෝදර සහෝදරියන් combinator නම වෙනස් කරන තේරීම් පෙළ 4 ):

සාමාන්‍ය සහෝදර සහෝදරියන්ගේ සංයෝජනය සෑදී ඇත්තේ "ටිල්ඩ්" (U + 007E, ~) අක්ෂරයෙන් වන අතර එය සරල තේරීම්කරුවන්ගේ අනුක්‍රම දෙකක් වෙන් කරයි. අනුක්‍රම දෙකෙන් නිරූපණය වන මූලද්‍රව්‍ය ලේඛන ගසෙහි එකම මාපිය බෙදා ගන්නා අතර පළමු අනුක්‍රමය මගින් නිරූපණය වන මූලද්‍රව්‍යය දෙවන එකෙන් නිරූපණය වන මූලද්‍රව්‍යයට පෙර (අනිවාර්යයෙන්ම නොවේ).

පහත උදාහරණය සලකා බලන්න:

.a ~ .b {
  background-color: powderblue;
}
<ul>
  <li class="b">1st</li>
  <li class="a">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="b">5th</li>
</ul>

.a ~ .b 4 වන සහ 5 වන ලැයිස්තු අයිතමයට ගැලපෙන්නේ ඒවා නිසා:

  • .bඅංග
  • සහෝදර සහෝදරියන් .a
  • .aHTML ප්‍රභව අනුපිළිවෙලින් පසුව පෙනී සිටින්න .

ඒ හා සමානව, සහෝදර සහෝදරියන් වන .check:checked ~ .contentසියලුම .contentඅංග සමඟ ගැලපෙන .check:checkedඅතර පසුව පෙනී යයි.


18
මෙම විස්තරයේ ප්‍රධාන කොටස "අනිවාර්යයෙන්ම වහාම නොවේ".
PanicBus

1
එකම දෙමව්පියන් සිටින සියලුම අංග සඳහා තේරීම් කාරකයක් තිබේද?
නික් එන්.

1
Ick නික්එන්. ඔබ අදහස් කළේ .parent > *?
සල්මාන් ඒ

Al සල්මාන් හරියටම නොවේ, මම සිතුවේ ඔබ දෙමව්පියන් නොදන්නේ නම් ඔබට භාවිතා කළ හැකි තේරීම් කාරයෙක් සිටින බවය.
නික් එන්.

8
@ නික්එන්. නැත. CSS සෑදී ඇත්තේ CSS විග්‍රහකය කිසි විටෙකත් DOM වෙත ආපසු හැරී බැලීමක් නොකරයි. මව් තේරීම්කරුවෙකු නොමැති වීමට එකම හේතුව එයයි.
yunzen

204

පවුලේ අනෙක් සංයෝජක පරීක්ෂා කිරීමටත් මෙම විශේෂිත දේ වෙත ආපසු යාමත් හොඳයි.

  • ul li
  • ul > li
  • ul + ul
  • ul ~ ul

උදාහරණ පිරික්සුම් ලැයිස්තුව:

  • ul li- සොයමින් තුල - තේරීම් සියලු වන liඇතුළත (ඕනෑම තැනක) තබා අංග ul; පැවත එන තේරීම් කාරකය
  • ul > li- ඇතුළත බැලීම - සෘජු li අංග පමණක් තෝරා ගනී ul; එනම් එය තෝරා ගන්නේ සෘජු දරුවන් liපමණි ul; ළමා තේරීම් හෝ ළමා සංයෝජක තේරීම්
  • ul + ul- පිටත බැලීම - ulපහත සඳහන් දේ වහාම තෝරා ගනී ul; එය ඇතුළත නොව, වහාම පහත සඳහන් මූලද්‍රව්‍යය සඳහා පිටත බැලීම; යාබද සහෝදර සහෝදරියන් තේරීම
  • ul ~ ul- පිටත බැලීම - ulඅනුගමනය කරන සියල්ල තෝරාගන්නේ ulඑය කොතැනද යන්න ගැටළුවක් නොවේ, නමුත් දෙදෙනාම ulඑකම දෙමාපියෙකු සිටිය යුතුය; සාමාන්‍ය සහෝදර සහෝදරියන් තේරීම

අප මෙහි බලන්නේ ජෙනරාල් සහෝදර සහෝදරියන්ය


3
අනුගමනය කරන අයට පමණක් නොව, සියලු සහෝදර සහෝදරියන් සඳහා සහෝදර සහෝදරියන් තෝරා ගැනීමක් තිබේද?
එලියා මොක්

1
Li එලිහූමන්, නැත. වැඩි විස්තර සඳහා කරුණාකර මෙම SO පෝස්ටය බලන්න - stackoverflow.com/a/11813469/6830901
Joseph

175

සාමාන්‍ය සහෝදර සහෝදරියන්

සාමාන්‍ය සහෝදර සහෝදරියන්ගේ තේරීම් කාරකය යාබද සහෝදර සහෝදරියන්ගේ තේරීම් කාරකයට බෙහෙවින් සමාන ය. වෙනස නම් තෝරාගත් මූලද්‍රව්‍යය පළමු මූලද්‍රව්‍යය වහාම සාර්ථක කර ගැනීමට අවශ්‍ය නොවන නමුත් එය පසුව ඕනෑම තැනක දිස්විය හැකිය.

වැඩි විස්තර


31

එය General sibling combinatorසලාමන්ගේ පිළිතුරෙන් ඉතා හොඳින් පැහැදිලි කර ඇත.

මා අතපසු Adjacent sibling combinatorකළ දෙය +හා එය සමීපව සම්බන්ධ වේ ~.

උදාහරණයක් වනු ඇත

.a + .b {
  background-color: #ff0000;
}

<ul>
  <li class="a">1st</li>
  <li class="b">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="a">5th</li>
</ul>
  • ඇති මූලද්‍රව්‍ය ගැලපේ .b
  • යාබදව පිහිටා ඇත .a
  • .aHTML වලින් පසුව

ඉහත උදාහරණයේ එය 2 වන liනමුත් 4 වන ලකුණු නොවේ.

   .a + .b {
     background-color: #ff0000;
   }
<ul>
  <li class="a">1st</li>
  <li class="b">2nd</li>
  <li>3rd</li>
  <li class="b">4th</li>
  <li class="a">5th</li>
</ul>

JSFiddle


8

ගුණාංග තේරීම් කාරකයක (උදා [attr~=value]:) ටිල්ඩ් බව සලකන්න

සුදු පැහැති අවකාශයෙන් වෙන් කරන ලද වචන ලැයිස්තුවක් වන attr හි ගුණාංග නාමයක් සහිත මූලද්‍රව්‍යයක් නිරූපණය කරයි , එයින් එකක් හරියටම අගය වේ.

https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

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.