میشه کاری کرد که یک شی تو صفحه استایل صفحه رو نگیره؟

ziXet

مدیر انجمن PHP/MYSQL
سلام

خیلی سریع میرم سر سوالم!

فرض کنید یه صفحه به نام index.html دارم که محتویاتش اینه:
HTML:
<html>
    <head>
        <style>
            input{
                color:red;
                background-color:blue;
            }
        </style>
    </head>
    <body>
    <input type="text" />
    </body>
</html>
خب؟
حالا من میخوام بدون تغییر دادن style که تو تگ head هست کاری کنم که اون input داخل تگ body اون استایلی که تو css براش تعریف شده رو نگیره!

البته تو FF اینو میخوام


اگه راه حلی به نظرتون میرسه لطفا بگید!


موفق باشید
 
آخرین ویرایش:

D.A.V.O.O.D

Member
سلام امیر جان
می خوای هیچ استایلی نداشته باشه ؟

فکر نمی کنم چنین چیزی امکان داشته باشه ، ولی می تونی با جاوا اسکریپت استایلش رو تغییر بدی به یه استایل دیگه مثلا یه استایل Input. تعریف کنی بد با :
HTML:
obj.className = "Input"
استایلش رو تغییر بدی ، این رسید به ذهن من !
 

foranyone

Well-Known Member
امیر :shock:؟!؟!؟!؟!؟!

آخه شما چرا ؟!؟!؟!:-?

جدیدا مثل اینکه انجمن php موتورهای جستجو ، HTML CSS با هم join شده !:cry:

احتمالا بشه با کد زیر پاکش کرد :

کد:
document.getElementById('amir').style='';
 

k2-4u

Well-Known Member
foranyone سخت نگیر دنیا 2 روزه :cool:

من کد زیر رو پیشنهاد میکنم
جرو DOM هستش فکر کنم رو همه مرورگرها جواب بده

HTML:
document.getElementById("id").setAttribute("style","");
 

D.A.V.O.O.D

Member
سلام
کوروش و حمید عزیز ، چون استایلی که تحت تاثیرش است یک استایل کلیه ( یعنی input ) نمیشه بدون استایل کرد ، فقط می توان به استایل دیگری تغییرش داد .
 

k2-4u

Well-Known Member
سلام
کوروش و حمید عزیز ، چون استایلی که تحت تاثیرش است یک استایل کلیه ( یعنی input ) نمیشه بدون استایل کرد ، فقط می توان به استایل دیگری تغییرش داد .
آره قبول . ولی
کد زیر رو میبینی
HTML:
<input type="text"  style="" />
برای این کد هر استالی از بالا تعریف کنی اعمال نمیشه . چون کد style="" که
گذاشتم علویت داره . کد زیر هم همین کارو میکنه
HTML:
document.getElementById("id").setAttribute("style","");
یعنی میاد یه خاصیت style="" به کد اضافه میکنه
البته تستش نکردم!!!
 

ziXet

مدیر انجمن PHP/MYSQL
ممنون از همه دوستانی که پاسخ دادن.
اگر فرض کنیم کد زیر در استایل تغریف شده باشه.
کد:
input{
    color:red;
    background-color:blue;
}
خب من با روش های زیر تو ff خواستم از اعمال این استایل بر یک input خاص جلوگیری کنم.
کد:
obj.style = "background-color: ;color ;"
obj.style = "";
اما نشد!
دقت کنید نمیخوام یه استایل جدید تعریف کنم چون در استایل جدید borderها رو نمیشه به صورت دیفالت ff در آورد یا اینکه نمیخوام خودم رنگ پس زمینه واسش تعریف کنم!(میخوام رنگ پس زمینه دیفالت باشه!)

اگر راه دیگری به ذهنتون میرسه بگید.

پ.ن : به خاطر زدن تاپیک هم در اینجا عذر میخوام!

موفق باشید
 
آخرین ویرایش:

ziXet

مدیر انجمن PHP/MYSQL
آره قبول . ولی
کد زیر رو میبینی
HTML:
<input type="text"  style="" />
برای این کد هر استالی از بالا تعریف کنی اعمال نمیشه . چون کد style="" که
گذاشتم علویت داره . کد زیر هم همین کارو میکنه
HTML:
document.getElementById("id").setAttribute("style","");
یعنی میاد یه خاصیت style="" به کد اضافه میکنه
البته تستش نکردم!!!
دقیقا مشکل همینجاست!
وقتی استایل جدید در نظر گرفته باشه که این استایل جدید چیزی برای overwrite شدن روی قبلی داشته باشه!
مثلا اگخ در استایل اصلی color:red باشه و بعد در استایل مجلی داته باشیم background-color:blue ، هم استایل اول اعمال میشه و هم دوم چون دومی تداخلی با اولی نداره!!
مشکل اینجاست!!
 

eAmin

Well-Known Member
سلام.

این صفحه رو ببینید:
http://www.howtocreate.co.uk/tutorials/javascript/domstylesheets
به این کد نگاه کنید:
کد:
var oStyle = document.styleSheets[0].cssRules[0].style;
oStyle.setProperty('color','lime','');
oStyle.setProperty('font-weight','bold','important');
for( var i = 0, j, s = ''; i < oStyle.length; i++ ) {
  j = oStyle.item(i);
  s += j + ' = '+oStyle.getPropertyValue(j)+' '+oStyle.getPropertyPriority(j)+'\n';
}
alert(s);[COLOR="Red"]
oStyle.removeProperty('color');
oStyle.removeProperty('font-weight');[/COLOR]
alert('New content: '+oStyle.cssText);
با استفاده از این کد شما می تونید style های داده شده رو حذف کنید. توی همون یک مثال هم قرار داره.
 

k2-4u

Well-Known Member
آقا امین . خیلی دمت گرم !!!
اصلا از این متدا خبر نداشتم
فقط . نفهمیدم که اینا روی کدوم ورژن جاوا اسکریپ هستن
یعنی حدفم اینه بدونم در همه مرورگرها پشتیبانی میشه؟
 

eAmin

Well-Known Member
آقا امین . خیلی دمت گرم !!!
اصلا از این متدا خبر نداشتم
فقط . نفهمیدم که اینا روی کدوم ورژن جاوا اسکریپ هستن
یعنی حدفم اینه بدونم در همه مرورگرها پشتیبانی میشه؟
متاسفانه نه cross browser نیست، توی همون لینکی که دادم مرورگرهایی که از اینخاصیت پشتیبانی می کنن رو نوشته.
ولی چون این دوستمون هم فقط مشکلش توی فایرفاکس بود، منم این رو به ایشون معرفی کردم.
 

ziXet

مدیر انجمن PHP/MYSQL
ممنون از همه دوستان!
اما من نمیخوام با js به css دسترسی داشته باشم و کد css مروبط به input رو تغییر بدم!(میخوام اون باشه ولی برای یه آبجکت خاص اعمال نشه)
ظاهرا راهی نیست و من روش رو عوض کردم و فعلا مشکلم حل شده.

همگی موفق باشید
 

foranyone

Well-Known Member
ممنون از همه دوستان!
اما من نمیخوام با js به css دسترسی داشته باشم و کد css مروبط به input رو تغییر بدم!(میخوام اون باشه ولی برای یه آبجکت خاص اعمال نشه)
ظاهرا راهی نیست و من روش رو عوض کردم و فعلا مشکلم حل شده.

همگی موفق باشید


اگه نمیخواین از روش امین جان استفاده کنید بهترین راه حل اینه که هیچ استایلی رو عمومی تعریف نکنید !

مثلا نگین body فونتش تاهوما باشه و ...

به عبارتی برای همه ی عناصر با کلاس بندی با ID فقط استایل مد نظرتون رو اعمال کنید .

در مورد تگ های تو در تو مثلا چند div شاید نشه زیاد کنترل کرد .

css یعنی به صورت آبشاری ارث بری توش وجود داره ! و شاید سوال شما هرچند که مشکل جدیه راه حل جامعی

نداشته باشه !!:-?:sad:
 

ziXet

مدیر انجمن PHP/MYSQL
آخه مشکل اینه که این کار دست من نیست!!
برودی با خبرهای جدید میام!!

ممنون از همه دوستان
 

D.A.V.O.O.D

Member
آخه مشکل اینه که این کار دست من نیست!!
برودی با خبرهای جدید میام!!

ممنون از همه دوستان

راست می گه ، دست خودش نیست :D

من می دونم می خوای چی کار کنی ! می خوای از یه صفحه خروجی بگیری و استایلش رو یکنی استایل طراحیت !

خبر جدید ؟ :shock: با اون LiveDIC که ترکوندی ، اینم تو همون سطحه ؟:-?
 

foranyone

Well-Known Member
آخه مشکل اینه که این کار دست من نیست!!
برودی با خبرهای جدید میام!!

ممنون از همه دوستان

من حدس میزنم میخوای روی موتور جستجو کار کنی و نتایج رو از گوگل بگیری نمایش بدی :D

اگه حدس من یا داوود درسته بهمون جایزه بده :lol:

در مورد کدهای CSS یه قضیه ای هم صادقه و اونم اینه که :

اگه مثلا استایل های کلاس amir رو دوبار بنویسن مثلا بالا بگین رنگش قرمز باشه پائین بگین آبی

همیشه ترکیبشون اعمال میشه یعنی آبی!

اونی که پائینتره و بالا هم تکرار شده اعمال میشه ، یعنی اگه کد رو از جایی میگیری و میخوای

استایل رو تغیر بدی می تونی همون کلاس رو دوباره تعریف کنی و دوباره ویژگی مورد نظر رو اعمال یا تغیر بدی.:rose:
 
آخرین ویرایش:

ziXet

مدیر انجمن PHP/MYSQL
راست می گه ، دست خودش نیست :d

من می دونم می خوای چی کار کنی ! می خوای از یه صفحه خروجی بگیری و استایلش رو یکنی استایل طراحیت !

خبر جدید ؟ :shock: با اون livedic که ترکوندی ، اینم تو همون سطحه ؟:-?
نه درست حدس نزدی!!
دارم برای فایرفاکس اکستنشن دیکشنری مینویسم که با یه کلیک معنی رو تو همون صفحه بیاره!

فکر میکردم اکستنشن نویسی خیلی راحت تر از این حرفا باشه.
حدود 10-15 روز فقط داشتم تحقیق میکردم تا یه روش خوب برای پیاده سازیش پیدا کنم که بالاخره دیشب موفق شدم!!

مرسی از راهنمایی
 

ziXet

مدیر انجمن PHP/MYSQL
من حدس میزنم میخوای روی موتور جستجو کار کنی و نتایج رو از گوگل بگیری نمایش بدی :D

اگه حدس من یا داوود درسته بهمون جایزه بده :lol:

در مورد کدهای CSS یه قضیه ای هم صادقه و اونم اینه که :

اگه مثلا استایل های کلاس amir رو دوبار بنویسن مثلا بالا بگین رنگش قرمز باشه پائین بگین آبی

همیشه ترکیبشون اعمال میشه یعنی آبی!

اونی که پائینتره و بالا هم تکرار شده اعمال میشه ، یعنی اگه کد رو از جایی میگیری و میخوای

استایل رو تغیر بدی می تونی همون کلاس رو دوباره تعریف کنی و دوباره ویژگی مورد نظر رو اعمال یا تغیر بدی.:rose:
حدس شما هم درست نبود

:rose:
 

جدیدترین ارسال ها

بالا