PDA

View Full Version : مشکل با ظاهر دیتاگرید در فایرفاکس



iekrang
دوشنبه 24 بهمن 1384, 20:21 عصر
تا به حال کسی با دیتاگرید و ظاهر اون توی فایرفاکس مشکل داشته؟
می خواهم بدونم راهش چیه؟باید از کنترلی به جز اون استفاده کنم یا اینکه با کمی تغییر میتونم ظاهرش رو درست کنم.

Behrouz_Rad
دوشنبه 24 بهمن 1384, 20:38 عصر
راهش اینه که از CSS برای دادن استایل به تگ ها استفاده کنید! به همین راحتی!
به طور مستقیم از نوشتن کدهای استاندارد CSS در فایل aspx اجتناب کنید.

موفق باشید.

twelve
سه شنبه 27 فروردین 1387, 16:37 عصر
راهش اینه که از CSS برای دادن استایل به تگ ها استفاده کنید! به همین راحتی!

من به طور کلی با ظاهر صفحه در این FF مشکل دارم ، حتی با عرض و ارتفاع آبجکت هایی که با استفاده از کد و به صورت داینامیک می سازم (Unit.pixel) ، توابع جاوا اسکریپت کار نمیکنند ، (از جمله Validator ها ) بعضی از استاندارد های CSS شناخته نمیشن و ....
در بسیاری از نقاط طبق گفته بهروز خان از CSS استفاده کردم اما واقعا استفاده کامل از کلاسهای CSS امکان پذیر نیست (مثلا برای ایجاد یک Div با Style=Color:Red ، شاید من در کل پروژه صدها تگ Div داشته باشم با Style های متفاوت پس برای هر کدوم یک کلاس CSS تعریف کنم ! این اصلا منطقی نیست! ) زبان ادیتور ها (FCK) رو تشخیص نمیده ، برای نمونه کلاس های استاندارد CSS زیر رو به طور مشخصی قاطی آدم حساب نمی کنه!


background-image:
padding-top:
padding-right:
padding-left:
padding-bottom:



در تصویر نمونه زیر نحوه نمایش یک فرم ساده در دو مرورگر IE , FF رو می بینید . اندازه های فیلد ها (که داینامیک ساخته شده اند ) با Unit.Percentage داده شده است
میبینید نتیجه کار در FF چه افتضاحی شده ؟:عصبانی: ظاهرا واحد های % رو اصلا تشخیص نمیده.
راه حل قطعی ( یا موثر تر ) این مشکلات با فایر فاکس چیه؟؟

raravaice
سه شنبه 27 فروردین 1387, 17:15 عصر
راه حل قطعی ( یا موثر تر ) این مشکلات با فایر فاکس چیه؟؟


اینکه توی HTML,CSS مهارت کافی داشته باشی و به تفاوتهای اونا واقف باشی و همچنین تا میتونی از استانداردها استفاده کنی.

در کل HTML و CSS یه دنیای دیگست که اکثرا به یادگیری اون بها نمیدن.

موفق باشید

twelve
سه شنبه 27 فروردین 1387, 17:38 عصر
اینکه توی HTML,CSS مهارت کافی داشته باشی و به تفاوتهای اونا واقف باشی و همچنین تا میتونی از استانداردها استفاده کنی.

در کل HTML و CSS یه دنیای دیگست که اکثرا به یادگیری اون بها نمیدن.

اینکه HTML و CSS عالم جدایی دارن درست! اما کشف و یادگیری 100% هر کدوم از اینا اصلا ربطی به صفحات aspx ، و نحوه نمایش عناصر موجود در اونها در مرورگر فایرفاکس و ... نداره ! مسلما اگر صفحه من ASP یا PHP بود چنین مشکلی رو در فایرفاکس نداشت چون در این صفحات از عناصر استادارد HTML استفاده میشه و فایرفاکس ( و OPERA و مرورگرهای هم خانواده ) مشکل خاصی با HTML ندارند . مشکل این مرورگر ها با aspx هستش و به همین خاطر هم اقای راد گفتن :


به طور مستقیم از نوشتن کدهای استاندارد CSS در فایل aspx اجتناب کنید.

این راهیه برای دور زدن نواقص فایرفاکس (نه کشف تفاوت CSS و HTML) که من هم گفتم در موارد منفرد ممکنه راه خوبی باشه ولی در تعداد انبوه منطقی نیست برای هر عنصری یک کلاس CSS جداگانه تعریف کنیم ! آیا غیر از اینه؟
ضمن اینکه فایرفاکس مشکلات دیگه هم به جز نمایش ظاهری داره که نمونش رو در پست قبل عرض کردم و کماکان منتظر نظر شما و دیگر دوستان در مورد راه حل قطعی ( یا موثر تر ) این مشکلات با فایر فاکس هستم......

raravaice
سه شنبه 27 فروردین 1387, 18:45 عصر
جناب twelve (http://barnamenevis.org/forum/member.php?u=25822) عزیز.



اینکه HTML و CSS عالم جدایی دارن درست! اما کشف و یادگیری 100% هر کدوم از اینا اصلا ربطی به صفحات aspx ، و نحوه نمایش عناصر موجود در اونها در مرورگر فایرفاکس و ... نداره !


مسلما اگر صفحه من ASP یا PHP بود چنین مشکلی رو در فایرفاکس نداشت چون در این صفحات از عناصر استادارد HTML استفاده میشه
صفحات aspx هم مثل asp,php در نهایت HTML رو برای شما میفرستن و چیزی که مروگر شما میبینه HTML هست نه aspx براش فرقی نداره.
یعنی میخوای بگی aspx جادو میکنه و المانها رو نمایش میده پسر خوب.;)
نه همه کنترلهایی که شما توی asp.net استفاده میکنه در انتها HTML میشن که متاسفانه اکثرشون از تگهای Table استفاده میکنن که خیلی هم نا منظم هستن.



به طور مستقیم از نوشتن کدهای استاندارد CSS در فایل aspx اجتناب کنید.
البته این پست تقریبا ماله 2 سال پیش هست ولی برای من جالب هست بدونم علت اصلیه این کار چیه چون من تا به حال پروژه های متعددی رو تحویل دادم که از این روش استفاده کردم و مشکلی هم نداشته ولی اگر علت فنی در پس این گفته نهفته است تمایل دارم بدونم.



این راهیه برای دور زدن نواقص فایرفاکس (نه کشف تفاوت CSS و HTML)
برای دور زدن FF در CSS روشهای مختلفی وجود داره که ربطی هم به asp.net نداره یکی از اونا اینه که قبل از style که میخوای توی IE اجرا بشه و تو FF نه یه / بزاری.
البته این دور زدن FF نیست در اصل در اکثر جاها این IE 6 هست که شما رو وادار به این کارا میکنه.

حالا بر فرض مثال هم که گفته های من نادرست شما یا باید به قول خودت منتظر بشی IE و FF با هم متچ بشن یا اینکه با Css طرحتو برای هر دو استاندارد سازی کنی.

اگر سئوال HTML داری یا مشکلی هست تو تالار HTML بگو خودم کمکت میکنم تا متوجه اصل منظور من بشی.

موفق باشید

Alireza_Salehi
سه شنبه 27 فروردین 1387, 19:08 عصر
نکته مهم در طراحی Style ها اینه که هر چیزی که قراره دیده بشه باید طراحتا مقداردهی بشه و اگر به امید پیشفرض ها رها کنید نتیجه فاجعه خواهد بود.

یک راه برای یادگیری سریع تر این موارد که دوستان گفتند اینه که
http://www.getfirebug.com/ را روی فایرفاکس و
http://www.microsoft.com/downloads/details.aspx?FamilyID=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en را روی اکسپلورر نصب کنید.


حالا اول در IE مشخصات عنصر مورد نظر رو ببینید بعد اون مشخصات رو در Style ها به صورت صریح وارد کنید چون در غیر این صورت هر مرورگری از پیشفرض های خودش استفاده خواهد کرد و ...

کلا من شخصا منبعی برای این تفاوت ها تا به حال پیدا نکردم باید به مرور تجربه کرد!

Behrouz_Rad
سه شنبه 27 فروردین 1387, 19:39 عصر
رندر پیش فرض کنترل های ASP.NET بسیار بده. به همین دلیل هست که ASP.NET CSS Friendly برای کامپوننت های پیش فرض ASP.NET عرضه شد و اکثرا ازش استفاده می کنند از جمله من!
تا اونجا که میشه سعی کنید متکی بر تگ های خودتون باشید و به شکلی کدهای HTML رو در صفحات جای بدید که کنترل ها کمترین دخالتی رو در ایجاد اونها داشته باشن.

موفق باشید.

twelve
سه شنبه 27 فروردین 1387, 20:32 عصر
نکته مهم در طراحی Style ها اینه که هر چیزی که قراره دیده بشه باید طراحتا مقداردهی بشه و اگر به امید پیشفرض ها رها کنید نتیجه فاجعه خواهد بود.

من متاسفانه در این مورد همین کار رو کردم :(
دوست من raravaice
مسئله نمایش نهایی صفحات داینامیک تولید شده به هر زبانی به صورت HTML کاملا آشکار و طبیعیه و هیچ حرفی توش نیست . من هم خدای نکرده قصد کل کل ندارم ، شما استادی. در مورد مسائلی که عنوان کردم نمیتونم بپذیرم که aspx بی تاثیر باشه! چون دارم این رو به چشم خودم میبینم که فقط صفحات aspx هستن که این مشکل براشون پیش میاد. به نظر شما عمل نکردن Validator ها (که البته سمت کلاینت کار میکنند) در فایرفاکس ربطی به صفحات aspx نداره؟
من یک سوال از شما دارم : شما برای استایل بندی عناصر در صفحات aspx به طور 100% از کلاس های CSS استفاده میکنید؟ به فرض مثال اگر در کل پروژه چند فیلد متن (asp:textbox) داشته بشید و بخواهید هر کدام style متفاوتی داشته باشن ، به تعداد اونها کلاس CSS مینویسید ؟! از استایل سازی خود دات نت استفاده نمیکنید ؟ برای مثال :


TextBox1.Width = Unit.Percentage(40)
TextBox1.ForeColor = Color.Red
TextBox1.BorderColor = Color.Beige

آیا نوشتن استایل به صورت بالا خارج از استاندارده؟
من خودم برای مثال یک کلاس CSS برای انواع فیلد ها دارم به صورت زیر :


INPUT {
font-family:Tahoma;
background-color:#FFEEB9;
font-size:12px;
border: 1pxdashed#FF9900;
height:20px;


}

با این کلاس تمام فیلد های از جنس input فرمت بندی میشن ولی اگر بخوام فیلدی رو مثلا با ارتفاع 25 تولید کنم اینجوری می نویسم :


TextBox1.Height = Unit.Pixel(25)

که از قرار معلوم کار ناشیانه ای است!!
اما راه صحیح چیست ؟ نوشتن کلاس CSS دیگر ؟ استفاده از کلاس Style دات نت ؟ یا .... ؟!


حالا بر فرض مثال هم که گفته های من نادرست شما یا باید به قول خودت منتظر بشی IE و FF با هم متچ بشن یا اینکه با Css طرحتو برای هر دو استاندارد سازی کنی.

اگر سئوال HTML داری یا مشکلی هست تو تالار HTML بگو خودم کمکت میکنم تا متوجه اصل منظور من بشی.

اختیار داری. من کاملا مشتاقم که راهنماییای شما و همه اساتید مجرب استفاده کنم ، به قول یکی از بچه ها هیج کس به تنهایی نمیتونه برنامه نویس بشه ;)
همین الان یک تاپیک اختصاصی در تالار HTML راه اندازی میکنم .

twelve
سه شنبه 27 فروردین 1387, 20:41 عصر
متاسفانه چون صفحه از قبل باز بود من بعد از فرستادن پست خودم پست آقای راد رو دیدم.


تا اونجا که میشه سعی کنید متکی بر تگ های خودتون باشید و به شکلی کدهای HTML رو در صفحات جای بدید که کنترل ها کمترین دخالتی رو در ایجاد اونها داشته باشن.

آقا بهروز من منظورتون رو از این گفته متوجه نمیشم ، میشه توضیح بیشتری بدید ؟! یعنی به جای استفاده از کنترل از تگ html استفاده کنیم؟

raravaice
سه شنبه 27 فروردین 1387, 21:03 عصر
. به نظر شما عمل نکردن Validator ها (که البته سمت کلاینت کار میکنند) در فایرفاکس ربطی به صفحات aspx نداره؟
Validator هایی که شما استفاده میکنی ماله خود دات نت هستن پس فقط به aspx ربط دارن ولی علت اون از سمت سرور نیست چون این کنترل ها کد های جاوا اسکریپتی که تولید میکنن فقط برای IE ساز گاره و شما میتونی خودت با اندکی تغییرات و چند خط جاوا اسکریپت اونو راه بندازی. و یا بهتره فقط از قابلیت سمت سرور اون استفاده کنی.



شما برای استایل بندی عناصر در صفحات aspx به طور 100% از کلاس های CSS استفاده میکنید؟ به فرض مثال اگر در کل پروژه چند فیلد متن (asp:textbox) داشته بشید و بخواهید هر کدام style متفاوتی داشته باشن ، به تعداد اونها کلاس CSS مینویسید ؟!
بله از Css های قسمت هدر برای تغییرات کلی و از style Attributes برای جزئیات منحصر به فرد یک المان.



از استایل سازی خود دات نت استفاده نمیکنید ؟
راستش من به شخصه در هر حالت سعی میکنم بیشتر از کنترلها آماده دات نت استفاده نکنم و از تگ های runat server شده html استفاده کنم.چون هم کارمو تو طراحی سخت میکنه و هم اون زیبایی که میخوام در نهایت بهم نمیده کلا زیاد انعطاف پذیر نیستن و زیبا در آوردن اونا کار سختو وقت گیریه. مگر پروژه فوریت داشته باشه که بازم سعی میکنم تمام Style هارو در سمت کد Html پیاده کنم نه از سوی سرور.



با این کلاس تمام فیلد های از جنس input فرمت بندی میشن ولی اگر بخوام فیلدی رو مثلا با ارتفاع 25 تولید کنم اینجوری می نویسم
همونطور که خودتم گفتی کلا این کار برای text input بی معنی هست چون با تغییر سایز فونت خودش هم سایز میشه پس چه کارایی داره ولی کد شما در نهایت



<input type="text" style="height: 25px;" id="TextBox1" name="TextBox1"/>
رو تولید میکنه حالا شما میتونی همینجوری از سمت سرور فرمان بدی و یا :


<asp:TextBox ID="TextBox1" style="height:25px" runat="server"></asp:TextBox>
از همون ابتدا اینجوری تعریف کنی که هنگام طراحی همه چیز دستت باشه و در پاسخ مرور گر کمتر دچار ابهام بشی.



همین الان یک تاپیک اختصاصی در تالار HTML راه اندازی میکنم .
تاپیکت رو ندیدم سئوالی تو زمینه HTML ,CSS داشتی اونجا ادامه بده تا جایی که در توان علمی من باشه کمکت میکنم.

موفق باشید

twelve
سه شنبه 27 فروردین 1387, 22:04 عصر
<input type="text" style="height: 25px;" id="TextBox1" name="TextBox1"/>


فکر کنم منظور آقای راد هم این بود که به این صورت استفاده بشه.




<asp:TextBox ID="TextBox1" style="height:25px" runat="server"></asp:TextBox>


من اصلا از خود کامپوننت استفاده نمیکنم ، یعنی اونا رو از تولباکس روی فرم Drag نمی کنم ، بلکه اونا رو با استفاده از کلاسهاشون داینامیک میسازم در این صورت آیا روش درست اینه که :


textbox1.Style.Add("height","25")

استفاده بشه ؟


راستش من به شخصه در هر حالت سعی میکنم بیشتر از کنترلها آماده دات نت استفاده نکنم و از تگ های runat server شده html استفاده کنم.چون هم کارمو تو طراحی سخت میکنه و هم اون زیبایی که میخوام در نهایت بهم نمیده کلا زیاد انعطاف پذیر نیستن و زیبا در آوردن اونا کار سختو وقت گیریه. مگر پروژه فوریت داشته باشه که بازم سعی میکنم تمام Style هارو در سمت کد Html پیاده کنم نه از سوی سرور

با شما موافقم ، من هم جز در موارد خاص ( مثل دیتا گرید یا کنترل هایی که مشابه html ندارند ) همین کار رو میکنم .



Validator هایی که شما استفاده میکنی ماله خود دات نت هستن پس فقط به aspx ربط دارن ولی علت اون از سمت سرور نیست چون این کنترل ها کد های جاوا اسکریپتی که تولید میکنن فقط برای IE ساز گاره و شما میتونی خودت با اندکی تغییرات و چند خط جاوا اسکریپت اونو راه بندازی. و یا بهتره فقط از قابلیت سمت سرور اون استفاده کنی.

سمت سرورش که اصلا جالب نیست ، اما دوست دارم کد های کمکی جاوا اسکریپتیش رو یاد بگیرم ;)
از این که خیلی واضح جواب دادید ممنون.

twelve
پنج شنبه 29 فروردین 1387, 23:19 عصر
Validator هایی که شما استفاده میکنی ماله خود دات نت هستن پس فقط به aspx ربط دارن ولی علت اون از سمت سرور نیست چون این کنترل ها کد های جاوا اسکریپتی که تولید میکنن فقط برای IE ساز گاره و شما میتونی خودت با اندکی تغییرات و چند خط جاوا اسکریپت اونو راه بندازی. و یا بهتره فقط از قابلیت سمت سرور اون استفاده کنی.

ممکنه در این مورد راهنمایی کنید؟ چه جور تابعی باید بنویسم که Validator ها در همه مرورگرها کار کنن؟