الان این درست اجرا نمیشه وقتی بجای =^ از =* استفاده میکنم درست میشه
Mohammad Khosravi۰۱ بهمن ۱۴۰۳، ۱۸:۱۴
درود، وقتتون بخیر.
انتخابگر [class^="col-"] به تمامی کلاسهایی که با "col-" شروع میشن اعمال میشه. اما شما در کد کلاسهایی مثل col-xs-1, col-md-1 و غیره دارید که این انتخابگر رو تحت تأثیر قرار نمیدن، چون col-xs یا col-md هم در نظر گرفته نشده.
اینطوری تمام کلاسهایی که شامل "col-" هستند (چه اول، چه وسط) انتخاب میشن.
ببینید:
[attribute^="value"]
این انتخابگر عناصری رو هدف قرار میده که مقدار ویژگی مشخص شده (در اینجا class) با رشته مشخصشده (value) شروع میشه.
مثلاً:
[class^="col-"] {
color: red;
}
این کد فقط کلاسهایی مثل col-1, col-xs-6, و col-md-4 رو انتخاب میکنه، چون مقدار class دقیقاً با col- شروع میشه.
اما اگر کلاسهای دیگهای مثل container col-6 یا row col-4 داشته باشید، این انتخابگر روی اونها تأثیری نداره، چون مقدار class با col- شروع نشده.
[attribute*="value"]
این انتخابگر عناصری رو هدف قرار میده که مقدار ویژگی مشخص شده شامل رشته مشخصشده (value) باشه، در هر جای متن.
مثلاً:
[class*="col-"] {
color: blue;
}
این کد تمامی کلاسهایی که حاوی col- هستن رو انتخاب میکنه، چه در ابتدا، چه در وسط یا انتهای مقدار class. بنابراین، هم col-md-6 و هم container col-md-6 و حتی row col-4 انتخاب میشن.
وقتی شما از [class^="col-"] استفاده میکنید، فقط عناصری که مقدار class دقیقاً با col- شروع میشه انتخاب میشن. اما اگر عنصر شما کلاسهای دیگهای قبل از col- داشته باشه (مثل row col-xs-6)، این انتخابگر دیگه عمل نمیکنه.
وقتی [class*="col-"] رو جایگزین میکنید انتخابگر همه عناصری که کلاسشون شامل col- هست (صرفنظر از موقعیتش) رو انتخاب میکنه.
بنابراین مشکلتون حل میشه.
اگر میدونید که کلاسهای دیگهای ممکنه همراه col- باشن، بهتره همیشه از [class*="col-"] استفاده کنید، چون مطمئنتره.
اما اگر مطمئنید که کلاسهای مربوطه همیشه دقیقاً با col- شروع میشن، [class^="col-"] هم جواب میده. فقط مطمئن بشید که ترتیب کلاسها در HTML درست باشه.