opera دست چپ و راست خودش رو هم نمیشناسه !!!

NabiKAZ

Well-Known Member
سلام ،

این کد رو در opera تست کنید:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>سلام</title>
</head>

<body style="direction:rtl; text-align:right;">

<div style="border:1px solid black; width:200px; padding-right:20px;">

    <div style="border:1px solid gray;">
    سلام؟!
    </div>

    سلام؟!

</div>

</body>

</html>

میبینید در مورد div داخلی، بجای 20 پیکسل padding right ،ا 20 پیکسل padding left اعمال شده !
البته نوشته درون div خارجی مشکلی نداره، ولی div داخلی مشکل داره.
اگر نتیجه رو در firefox و opera مقایسه کنید متوجه منظورم میشید.

البته من متوجه شدم با direction:ltr مشکل برطرف میشه ولی خب نمیشه هر بار div خارجی رو ltr کنیم و بعد دوباره محتویاتش رو rtl کنیم ...
راه بهتری سراغ دارید؟

به نظرتون این یه باگ برای opera محسوب میشه؟

تشکر
نبی
 

NabiKAZ

Well-Known Member
اسکرین شات از کد بالا در مرورگرهای مختلف:

opera_bug.gif
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
با این کد درست نمایش داده میشه:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>سلام</title>
</head>

<body style="direction:rtl; text-align:right;">

<div style="border:1px solid black; width:200px; padding-right:20px; direction:ltr;">

    <div style="border:1px solid gray; direction:rtl;">
    سلام؟!
    </div>

    <div style="direction:rtl;">
    سلام؟!
    </div>
    
</div>

</body>

</html>

ولی ببینید چقدر تگ و استایل اضافی نوشتم تا درست نمایش داده بشه!
تازه آخرشم ، اینبار توی فایرفکس، باکس، سمت چپ مرورگر ظاهر میشه که اون رو دیگه هر کاری کردم نتونستم ببرم سمت راست. (نخواستم از float استفاده بشه)

البته این راه حل اصلاً اصولی نیست ولی راه دیگه ای پیدا نکردم.

داستان کمی عجیب نیست؟ و عجیبتر اینکه آقا 'علی آی ایکس' گفتند که اصلاً مشکلی ندارند !!!
 

echessdesign

مدیر انجمن طراحی وب
به اقا نبی گل، چه عجب شما رو دیدیم، ارادتمندم
نبی جان
زمانی که شما برای تگ body خصیصه direction در نظر می گیرید و مقدار آن را برابر rtl در نظر می گیرید، مرورگر Opera مبدا مختصات را مطابق داده شما از سمت راست در نظر می گیرد، در نتیجه div داخلی از مبدا که سمت راست است تفسیر می شود. مگر آنکه شما با خصیصه Float موقعیت آن را شخصا انتخاب کرده، و تفسیر آن را از دست مرورگر بگیرید.
به نظر من، این ضعف مرورگر OP نیست، بلکه به علت عدم هماهنگی مرورگر ها در تفسیر کدها، تلاش طراح وب برای یکسان سازی نمایش در مرورگر های مختلف را می شناسد.
از توجه شما سپاسگزارم.
 

NabiKAZ

Well-Known Member
سلام ،
خواهش میکنم، ما هستیم همینجا، زیر سایه شما ... ;)


حرف شما متین، اما چرا در مورد نوشته داخل div مشکلی نیست، اما در مورد div داخلی تنها مشکل وجود دارد.
البته وقتی div داخلی به صورت inline تعریف میشه، padding صحیح به خودش میگیره و بلعکس، یعنی وقتی نوشته داخلی به صورت block تعریف میشه، padding برعکس عمل میکنه !

استفاده از float هم مشکلاتی همراه داره مثلا چسبیدن نوشته بعد از خودش ... که البته با clear:both حل میشه. ولی استفاده ازش همیشه ساده نیست. من فعلاً با ltr و rtl کردن برخی المان ها مشکلم رو حل کردم ولی بازم دارم روش کار میکنم.

بازم از شما ممنونم.
نبی
 

naderlou

New Member
سلام آقا نبی عزیز ،
اول از همه میخواستم بپرسم شما چرا این تگ را گذاشتین ؟
[ltr]<body style="direction:rtl; text-align:right;">[/ltr]
البته من با opera 9.25 دارم چک میکنم . و با برداشتن تگ دایرکشن رایت تو لفت از تگ body این مشکل برطرف میشه .
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
سلام آقا نبی عزیز ،
اول از همه میخواستم بپرسم شما چرا این تگ را گذاشتین ؟

البته من با opera 9.25 دارم چک میکنم . و با برداشتن تگ دایرکشن رایت تو لفت از تگ body این مشکل برطرف میشه .
سلام ،
خب واضح rtl رو برای اینکه نوشته های فارسی راست به چپ بشن گذاشتم. اما اگر منظورتون اینه که چرا به تگ body نسبت دادم، خوب این فقط یه مثاله و برای خلاصه نویسی از body استفاده کردم، شما استایلهای body رو به یک تگ div نسبت بدید، فرقی نمیکنه.

مشکل هم درست همینجاست که با وجود rtl اشکال در نمایش رخ میده که هدف رفع همین مشکل است.

در هر حال از شما ممنونم
نبی
 

naderlou

New Member
خب اگه به خاطر این بوده پس مشکلی نیست چون اگر اون تگ رو که برداریم مشکل حل میشه .
حداقل تو ورژن 9.25 این مشکل وجود نداره . خودتون هم می تونید تست کنید .
 
به نظر میرسه باگ باشه. کلا اپرا با زبان های راست به چپ همیشه مشکل داشته. نسخه 7.5 رو اگر یادتون باشه برای خودش فاجعه ای بود. به قدری با زبان های راست به چپ مشکل داشت که عملا تو بعضی قسمت ها غیر قابل استفاده بود. در کل اکثر مرورگر ها با زبان راست به چپ مشکل دارند. یکی از مشکلاتی که مثلا هست اینه که شما وقتی سایتت چپ به راست باشه. میتونی به عناصر inline مثل لینک های داخل صفحه padding اختصاص بدی. حالا اگر صفحه راست به چپ بشه به جای اینکه padding به عنصر مورد نظر شما اختصاص داده بشه ، به اول خطی که اون عنصر توش هست اختصاص داده میشه. این جور موارد رو فقط میشه با جاوا اسکریپت حل کرد
 

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

بالا