View Full Version : تغییر Css با تغییر Url
hamid1988
یک شنبه 11 خرداد 1393, 18:15 عصر
سلام
منویی دارم که میخام با تغییر Url صفحه استایل منوی فعال (active.) هم تغییر کنه.
لطفاَ راهنمایی کنید.
vimax23
یک شنبه 11 خرداد 1393, 18:55 عصر
سلام
منویی دارم که میخام با تغییر Url صفحه استایل منوی فعال (active.) هم تغییر کنه.
لطفاَ راهنمایی کنید.
http://jsfiddle.net/3weae/1/
اینطوری؟
hamid1988
یک شنبه 11 خرداد 1393, 19:11 عصر
http://jsfiddle.net/3weae/1/
اینطوری؟
نه، وقنی ماربر به آدرس www.Site.com/help میره منوی help فعال بشه.
وقتی به www.Site.com/indexمیره منوی index فعال بشه.
یعنی میخام از Url بخونه که کدام منو رو فعال کنه.
Mori Bone
یک شنبه 11 خرداد 1393, 19:23 عصر
باید تو هر صفحه مربوط به اون دکمه با جی کوئری کلاس مربوطرو به اون دکمه بدی
hamid1988
یک شنبه 11 خرداد 1393, 19:27 عصر
باید تو هر صفحه مربوط به اون دکمه با جی کوئری کلاس مربوطرو به اون دکمه بدی
صفحاتم داینامیک هست. ایستاتیک نیست.
omidabedi
یک شنبه 11 خرداد 1393, 19:53 عصر
خب شما باید با php تشخیص بدید کدوم صفحه هست سپس به همون منو کلاس active اضاف کنی
و با css به کلاس active استایل بدی
چرا از a.active استفاده نمیکنی؟
hamid1988
یک شنبه 11 خرداد 1393, 20:53 عصر
خب شما باید با php تشخیص بدید کدوم صفحه هست سپس به همون منو کلاس active اضاف کنی
و با css به کلاس active استایل بدی
چرا از a.active استفاده نمیکنی؟
اینکار باید توسط کلاینت سایت انجام بشه مثلاَ توسط جی کوئری.
saeedvir
سه شنبه 13 خرداد 1393, 07:10 صبح
یک کلاس تعریف می کنید که می خواهید لینک فعال داشته باشه (مثلا رنگ متن قرمز )
حالا آدرس را با php یا jquery می خونید و با استفاده از if به هر لینک که مورد نظر هست ، اون کلاس css را اختصاص میدید.
dashjalal
پنج شنبه 19 تیر 1393, 04:07 صبح
عذر میخوام اینجا فروم برنامه نویس هستش درسته ؟
یعنی آموزش برنامه نویسی .
چرا همه تئوری صحبت کردن ؟
خوب اگر یاد دارید ، حالا که زحمتش رو کشیدید ، کدش رو هم بنویسید .
هم ثواب کردین هم دعاتون میکنیم .
خارج از بحث دین ، انسانیت هم نشون دادین .
من هم همین مشکل رو دارم ، اگر لطف کنین با توضیحی بگین ممنون میشم .
vimax23
پنج شنبه 19 تیر 1393, 23:41 عصر
عذر میخوام اینجا فروم برنامه نویس هستش درسته ؟
یعنی آموزش برنامه نویسی .
چرا همه تئوری صحبت کردن ؟
خوب اگر یاد دارید ، حالا که زحمتش رو کشیدید ، کدش رو هم بنویسید .
هم ثواب کردین هم دعاتون میکنیم .
خارج از بحث دین ، انسانیت هم نشون دادین .
من هم همین مشکل رو دارم ، اگر لطف کنین با توضیحی بگین ممنون میشم .
برادر اینجا نه کسی از شما طلبی داره نه شما
من یه نمونه کد گذاشتم اگر میخوایین ثابت بمونه راه داره مثلا میشه کوکی مرورگر رو بگیرین نمونه (http://jqueryui.com/upgrade-guide/1.9/#deprecated-cookie-option) ، بحث (http://stackoverflow.com/questions/4299435/remember-which-tab-was-active-after-refresh)
dashjalal
شنبه 21 تیر 1393, 01:17 صبح
برادر اینجا نه کسی از شما طلبی داره نه شما
من یه نمونه کد گذاشتم اگر میخوایین ثابت بمونه راه داره مثلا میشه کوکی مرورگر رو بگیرین نمونه (http://jqueryui.com/upgrade-guide/1.9/#deprecated-cookie-option) ، بحث (http://stackoverflow.com/questions/4299435/remember-which-tab-was-active-after-refresh)
هاهاها .
خیر من از کسی طلب ندارم .
من از خساست در آموزش و یک مورد دیگه طلب دارم . اینکه تا کمی یاد میگیریم لحن تغییر میکنه و نوع آموزش و همه چی خلاصه میشه و در حد نسبتا تخصصی .
یکی از تجاربم در بحث آموزش ( خارج از برنامه نویسی ) : در مقام آموزش همیشه باید از حد متوسط ساده تر بود و توضیحات زیاد داد .
خخخ . جناب انیشتین : در آموزش نه زیاد ساده توضیح بدید و نه زیاد سخت .
منظورم از خساست کلی بود و منظوری به شما نبود .
درضمن شما ژنراتوری معرفی کردید که توسط جی کوئری این عمل اتفاق میفتاد . خروچی گرفتن از اون ژنراتور مطمئن باشین برای کاربرای معمولی کار راحتی نیست و شاید منصرف بشن . شاید هم نیازی به استفاده از نسخه ی 2.0.2 جیکوئری نداشته باشن و یا اصلا از جیکوئری استفاده نکرده باشن و به خاطر این کد و این افکت ساده مجبور باشن هشتاد و خورده ای کیلو بایت بیخود از پهنای باند رو از دست بدن که توی بازدید بالاتر مهم هست و هم اینکه لود سایتشون بیاد پایین .
بگذریم . نیازی به اون دوتا لینک و استفاده از کوکی نبود ( اگر کوکی بسته بود !! بالاخره پیش خواهد آمد ) .
در پی اچ پی ( همینطور وردپرس ) از کد زیر میشه استفاده کرد برای تغییر :
<?php
{
$Path=$_SERVER['REQUEST_URI'];
?>
a[href$="<?php echo "$Path"; ?>"] {
background: #00ccff !important;
color: #555;
}
?>
دیروز گشتم و این پیدا شد . در فروم خارجی ها . با اونها کار کردم . نمیدونم چرا از ما بیشتر توضیح میدن و متواضعانه تر هستن .
به نظرم این نوشته از منه آماتور بیشتر کمک خواهد کرد ، نسبت به نوشته های تخصصیه اساتید محترم ، در این فرومه آموزشی - تخصصی . ( مملو از اساتید محترم )
vimax23
شنبه 21 تیر 1393, 01:21 صبح
هاهاها . خیر من از کسی طلب ندارم . من از خساست در آموزش و یک مورد دیگه طلب دارم . اینکه تا کمی یاد میگیریم لحن تغییر میکنه و نوع آموزش و همه چی خلاصه میشه و در حد نسبتا تخصصی . یکی از تجاربم در بحث آموزش ( خارج از برنامه نویسی ) : در مقام آموزش همیشه باید از حد متوسط ساده تر بود و توضیحات زیاد داد . خخخ . جناب انیشتین : در آموزش نه زیاد ساده توضیح بدید و نه زیاد سخت . منظورم از خساست کلی بود و منظوری به شما نبود . درضمن شما ژنراتوی معرفی کردید که توسط جی کوئری این عمل اتفاق میفتاد . خروچی گرفتن از اون ژنراتور مطمئن باشین برای کاربرای معمولی کار راحتی نیست و شاید منصرف بشن . شاید هم نیازی به استفاده از نسخه ی 2.0.2 جیکوئری نداشته باشن و یا اصلا از جیکوئری استفاده نکرده باشن و به خاطر این کد و این افکت ساده مجبور باشن هشتاد و خورده ای کیلو بایت بیخود از پهنای باند رو از دست بدن که توی بازدید بالاتر مهم هست و هم اینکه لود سایتشون بیاد پایین . بگذریم . نیازی به اون دوتا لینک و استفاده از کوکی نبود ( اگر کوکی بسته بود !! بالاخره پیش خواهد آمد ) . در پی اچ پی ( همینطور وردپرس ) از کد زیر میشه استفاده کرد برای تغییر : a[href$=""] { background: #00ccff !important; color: #555; } دیروز گشتم و این پیدا شد . در فروم خارجی ها . با اونها کار کردم . نمیدونم چرا از ما بیشتر توضیح میدن و متواضعانه تر هستن . به نظرم این نوشته از منه آماتور بیشتر کمک خواهد کرد ، نسبت به نوشته های تخصصیه اساتید محترم ، در این فرومه آموزشی - تخصصی . ( مملو از اساتید محترم )
اینجا کسی مدعی استادی نیست ، من خودم هم عادت ندارم لقمه آماده بزارم تو دهن کسی یه تکون دادن کاری نداره!
چه حوصله ای داشتی انشا نوشتی :لبخند:
موفق باشی
dashjalal
شنبه 21 تیر 1393, 01:45 صبح
اینجا کسی مدعی استادی نیست ، من خودم هم عادت ندارم لقمه آماده بزارم تو دهن کسی یه تکون دادن کاری نداره!
چه حوصله ای داشتی انشا نوشتی :لبخند:
موفق باشی
باید بگم شرمندم از مشکلی که پیش اومد توی نوشتن . یک ربع هست دارم ویرایشش میکنم اما تنها چیزی که توی پینگم قابل مشاهده هست تایم اوت هست . بحث لقمه ی آماده نیست والا . بحث یک رفع نیاز هست . با معرفی منابع بعد از آموزش میشه چوب ماهی گیری رو به دست دوستان داد . شرمنده از زیاده گویی . روزانه چه آنلاین و چه آفلاین در حال آموزش دادن هستم . این مورد زیاد توضیح دادن به عزیزان باعث این زیاده گویی شده . ویرایشگر خوب لود نشد برای همین توی دفعه ی اول با مشکل ارسال شد که ویرایش شد .
برای اینکه لقمه ی آماده نبوده باشه ، دوستان میتونن راه شما رو هم تست کنن تا آشنا بشن از اون طریق هم .
خوش باشین و شاد .
H:Shojaei
شنبه 21 تیر 1393, 03:12 صبح
سلام...
من این کارو میکنم:
<?php
$get=@$_GET['active'];
$ar=array('menu1'=>'','menu2'=>'','menu3'=>'');
$ar[$get]='background-color:#e7e7e7;
'; ?>
<a style="<?php echo $ar['menu1']; ?>">menu1</a>
<a style="<?php echo $ar['menu2']; ?>">menu2</a>
<a style="<?php echo $ar['menu3']; ?>">menu3</a>
تو مرورگر فقط هرجایی که پیج هست مقدار active رو ارسال کنید به روش get
tests.php?active=menu2
dashjalal
دوشنبه 23 تیر 1393, 11:10 صبح
بله کد شما هم درسته .
اما موضوعی که میتونه این وسط بحث بشه ، بحث بهینه سازی هست . چه کد و چه بحث سئو .
شما از متغیر و آرایه استفاده کردین که بحث کمی بیشتر شدن کد رو وسط میاده ( دو سه خط حالا مهم نیست :لبخند::لبخند: ) و هم اینکه از استایل به صورت اینلاین استفاده کردین . اینطوری نباشه به نظرم بهتره . البته من روی این موضوعا چون وسواس هستم خیلی رعایت میکنم و حساسم .
گرچه تو نتایج تاثیر هم داشته .
تنها چیزی که مهمه ، بدست آوردن قسمت آخر آدرس هست . که رسیدن به جواب رو ساده میکنه .
اون کدی که گذاشتم مربوط به هدر و تگ استایل هست ( شرمنده از این توضیح :لبخند: که همه میدونستن ) .
در مقام نقد نیستم . عذر میخوام اگر نقدی شد .
omidabedi
دوشنبه 23 تیر 1393, 12:48 عصر
سلام...
من این کارو میکنم:
<?php
$get=@$_GET['active'];
$ar=array('menu1'=>'','menu2'=>'','menu3'=>'');
$ar[$get]='background-color:#e7e7e7;
'; ?>
<a style="<?php echo $ar['menu1']; ?>">menu1</a>
<a style="<?php echo $ar['menu2']; ?>">menu2</a>
<a style="<?php echo $ar['menu3']; ?>">menu3</a>
تو مرورگر فقط هرجایی که پیج هست مقدار active رو ارسال کنید به روش get
tests.php?active=menu2
این ک باگ xss داره
H:Shojaei
دوشنبه 23 تیر 1393, 15:06 عصر
این ک باگ xss داره
چطور آیا؟؟ میشه یه توضیح کوچولو بدین...
omidabedi
دوشنبه 23 تیر 1393, 16:22 عصر
چطور آیا؟؟ میشه یه توضیح کوچولو بدین...
چون مقداری که از url دریافت میکنید بدون اینکه چک بشن و escape بشن در برنامه استفاده شده
تست کنید اینو
قسمت injectionاش اینجاست
]?><script>alert("hello");</script><?/*
<?php $get=@$_GET['active']; $ar=array('menu1'=>'','menu2'=>'','menu3'=>''); $ar[$get]?><script>alert("hello");</script><?/*]='background-color:#e7e7e7;'; ?><a style="<?php echo $ar['menu1']; ?>">menu1</a> <a style="<?php echo $ar['menu2']; ?>">menu2</a> <a style="<?php echo $ar['menu3']; ?>">menu3</a>
با کمی escape کردن و تست کردن میشه ازش استفاده کرد
H:Shojaei
دوشنبه 23 تیر 1393, 18:23 عصر
آهان اسکیپ...
من فکر کردم به لحاظ مفهومی اشکال داره اسکیپ که یه چیز پیش عادیه منم این کد رو همینجا زدم واسه همین اسکیپ و ایناش رو انجام ندادم :لبخند: بازم ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.