آموزش Frame و Frameset ها در HTML و بررسی ویژگی فریم ها
در HTML، برای تقسیم پنجره ی مرورگر به بخش های مختلف از چهارچوب ها(frame) استفاده می شود که هر بخش می تواند یک document یا سند HTML جداگانه را بارگذاری (load) کند. مجموعه ای از فریم ها در پنجره مرورگر به عنوان framset شناخته می شوند.
Frame ها مشابه جداول به سطرها (row) و ستون هایی (column) تقسیم می شوند.
معایب frame ها
در استفاده از frame ها چندین نقطه ضعف وجود دارد، بنابراین هرگز توصیه نمی شود که از frame ها در صفحات وب خود استفاده کنید -
- برخی از دستگاه های کوچک تر نمی توانند با frame ها کنار بیایند، زیرا صفحه نمایش آنها به اندازه کافی بزرگ نیست که بتوان آنها را تقسیم کرد.
- گاهی اوقات صفحه شما در کامپیوتر های مختلف ، به صورت های متفاوتی نمایش داده می شود. زیرا این کامپیوتر ها صفحات نمایشی با resolution های متفاوتی دارند.
- ممکن است دکمه بازگشت (back button) آنطور که کاربر انتظار دارد، کار نکند.
- هنوز مرورگرهایی وجود دارند که از تکنولوژی frame پشتیبانی نمی کنند.
نحوه ایجاد frame ها (Creating Frames)
ما برای استفاده از فریم ها در یک صفحه، به جای استفاده از تگ <frameset> از برچسب <body> استفاده می کنیم. تگ <frameset> چگونگیِ تقسیمِ پنجره (window) به frame را تعریف می کند. ویژگی ردیف (rows attribute) در تگ <frameset> فریم های افقی را تعریف می کند و ویژگی ستون (cols attribute) فریم های عمودی را تعریف می کند. هر frame توسط تگ <frame> نشان داده می شود و تعیین می کند، کدام سند HTML باید در frame باز شود.
توجه - تگ <frame> در HTML5 منسوخ شده است. از این عنصر استفاده نکنید.
مثال :
در مثال زیر نحوه ایجاد سه Frame افقی را مشاهده می کنید.
<!DOCTYPE html>
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset rows = "10%,80%,10%">
<frame name = "top" src = "/html/top_frame.htm" />
<frame name = "main" src = "/html/main_frame.htm" />
<frame name = "bottom" src = "/html/bottom_frame.htm" />
<noframes>
<body>Your browser does not support frames.</body>
</noframes>
</frameset>
</html>
مثال
اجازه دهید مثال فوق را به صورت زیر تغییر دهیم: در این مثال ویژگی ردیف (rows attribute) را با ویژگی ستون (cols attribute) جایگزین کردیم و عرض (width) آنها را نیز تغییر دادیم. این مثال سه frame را به صورت عمودی ایجاد می کند -
<!DOCTYPE html>
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset cols = "25%,50%,25%">
<frame name = "left" src = "/html/top_frame.htm" />
<frame name = "center" src = "/html/main_frame.htm" />
<frame name = "right" src = "/html/bottom_frame.htm" />
<noframes>
<body>Your browser does not support frames.</body>
</noframes>
</frameset>
</html>
ویژگی های تگ <frameset>
در زیر، ویژگی های مهم تگ <frameset> را بررسی می نماییم :
نام ویژگی |
توضیحات |
cols |
تعداد ستون ها در frameset و اندازه هر ستون را مشخص می کند. شما می توانید عرض (width) هر ستون را با یکی از چهار روش زیر مشخص کنید – مقادیر مطلق به پیکسل. برای مثال، برای ایجاد سه فریم عمودی، از cols = "100, 500, 100" استفاده کنید. درصدی از پنجره مرورگر. برای مثال، برای ایجاد سه فریم عمودی، از cols = "10%, 80%, 10%" استفاده کنید.
با استفاده از یک wildcard symbol . برای مثال، برای ایجاد سه فریم عمودی، از cols = "10%, *, 10%" استفاده کنید. در این مورد، wildcard باقی مانده پنجره را فرا می گیرد.
به عنوان عرض نسبی (relative widths) پنجره مرورگر. برای مثال، برای ایجاد سه فریم عمودی، از cols = "3*, 2*, 1*" استفاده کنید. این یک جایگزین برای درصد است. شما می توانید از عرض نسبی پنجره مرورگر استفاده کنید. در اینجا پنجره به شش قسمت، تقسیم می شود: ستون اول نیمه پنجره را می گیرد، ستون دوم، یک سوم از پنجره را می گیرد و ستون سوم، یک ششم از پنجره را می گیرد. |
rows |
این ویژگی درست مانند ویژگی cols کار می کند و مقادیر مشابهی را می گیرد، اما برای تعیین ردیف ها (row) در frameset استفاده می شود. برای مثال، برای ایجاد دو فریم افقی، از rows = "10%, 90%" استفاده کنید. شما می توانید ارتفاع (height) هر سطر (row) را همانطور که در بالا برای ستون (column) توضیح داده شد، مشخص کنید. |
border |
این ویژگی عرض حاشیه (border) هر frame را به صورت پیکسل مشخص می کند. به عنوان مثال، border = "5". مقدار صفر یعنی هیچ حاشیه ای وجود ندارد. |
frameborder |
این ویژگی مشخص می کند که آیا باید یک border سه بعدی بین frameها نمایش داده شود یا خیر. این ویژگی مقدار 1 به معنای بله و یا 0 به معنای خیر، را به خود می گیرد. به عنوان مثال frameborder = "0" به معنا این است که هیچ border ی وجود ندارد. |
framespacing |
این ویژگی مقدار فضای بین frame ها را در یک frameset مشخص می کند. این ویژگی، می تواند هر مقدار عدد صحیح (integer) را به خود بگیرد. به عنوان مثال framespacing = "10" به این معنی است که فاصله بین هر frame باید 10 پیکسل باشد. |
ویژگی های تگ <frame>
در زیر ویژگی های مهم تگ <frame> را بررسی می نماییم :
نام ویژگی |
توضیحات |
src |
این ویژگی برای دادن نام به فایلی که قرار است در frame بارگذاری شود، استفاده می شود. مقدار آن می تواند هر URLی باشد. به عنوان مثال، src = "/html/top_frame.htm"یک فایل HTML موجود در دایرکتوری html را بارگذاری می کند. |
name |
این ویژگی به شما اجازه می دهد تا یک نام به یک frame اختصاص دهید. این ویژگی نشان می دهد، یک سند (document) باید در داخل چه frame ی بارگذاری (load) شود. این خصوصیت مهم، به ویژه وقتی مورد استفاده قرار می گیرد که شما می خواهید لینک ها را در یک frame ایجاد کنید و صفحات را در یک فریم دیگر بارگذاری (load) کنید؛ در این صورت، frame دوم نیاز به یک نام برای شناسایی خود، به عنوان هدفِ لینک دارد. |
frameborder |
این ویژگی مشخص می کند که آیا border های یک frame نمایش داده شوند یا خیر؛ این ویژگی، مقدار داده شده در ویژگی frameborder در تگ <frameset> را بازنویسی یا override می کند، و این ویژگی می تواند مقادیر 1 به معنای بله و 0 به معنای نه را به خود اختصاص دهد. |
marginwidth |
این ویژگی به شما این امکان را می دهد تا عرضِ (width) فضایِ بینِ border های سمت چپ و راست یک Frame و محتویات frame را مشخص کنید. این مقدار برحسب واحد پیکسل داده می شود. برای مثال marginwidth = "10". |
marginheight |
این ویژگی به شما این امکان را می دهد تا ارتفاعِ (height) فضایِ بینِ borderهای سمت بالا و پایین یک Frame و محتویات آن را مشخص کنید. این مقدار برحسب واحد پیکسل داده می شود. برای مثال marginheight = "10". |
noresize |
به طور پیش فرض، شما می توانید هر frame ی را با کلیک کردن و کشیدن (drag) روی حاشیه های (border) یک frame، تغییر اندازه دهید(resize). ویژگی noresize از این قابلیت کاربر، که بتواند یک frame را تغییر اندازه دهد، جلوگیری می کند. به عنوان مثال noresize = "noresize". |
scrolling |
این ویژگی ظاهرِ نوارهای پیمایش (scrollbar) را که در یک frame ظاهر می شوند را کنترل می کند. این ویژگی مقادیر "yes"، "no" یا "auto" را می گیرد. به عنوان مثال، scrolling = "no" به این معنی است که frame نباید نوار پیمایشی داشته باشد. |
longdesc |
این ویژگی به شما امکان می دهد یک لینک به صفحه دیگر که حاوی توضیحات طولانی درباره ی محتویات frame است، ایجاد کنید. به عنوان مثال longdesc = "framedescription.htm". |
پشتیبانی مرورگرها از frame ها
اگر کاربر از یک مرورگر قدیمی یا هر مرورگری که، frame ها را پشتیبانی نمی کند، استفاده نماید، باید برای کاربر عنصر <noframes> نمایش داده شود.
بنابراین شما باید یک عنصر <body> در عنصر <noframes> قرار دهید، چون تصور می شود عنصر <frameset> جایگزین عنصر <body> می شود. اما اگر مرورگر، عنصر <frameset> را درک نکند، پس باید آنچه را که داخل عنصر <body> هست را درک کند که آن حاوی عنصر <noframes> می باشد.
شما می توانید یکسری پیام مناسب برای کاربرانی که از مرورگرهای قدیمی استفاده می کنند، ارائه دهید. برای مثال، «متاسفم مرورگر شما از frame ها پشتیبانی نمی کند!». همانطور که در مثال بالا نشان داده شده است.
نام frame و ویژگی های target
یکی از محبوب ترین موارد استفاده از فریم ها این است که navigation bar را در یک frame قرار دهید و سپس صفحات اصلی را در یک frame جداگانه بارگذاری (load) کنید.
بیایید مثال زیر را ببینیم که در آن فایل test.htm دارای کد زیر است -
<!DOCTYPE html>
<html>
<head>
<title>HTML Target Frames</title>
</head>
<frameset cols = "200, *">
<frame src = "/html/menu.htm" name = "menu_page" />
<frame src = "/html/main.htm" name = "main_page" />
<noframes>
<body>Your browser does not support frames.</body>
</noframes>
</frameset>
</html>
در اینجا، ما دو ستون ایجاد کردیم، تا با دو frame آنرا پر کنیم. اولین frame عرضی برابر با 200 پیکسل دارد و حاوی نوار منوهای ناوبری (navigation menu bar) است که توسط فایل menu.htm اجرا می شود. ستون دوم، فضای باقی مانده را پر می کند و شامل قسمت اصلی صفحه می باشد و توسط فایل main.htm اجرا می شود. برای هر سه لینک موجود در نوار منو، یک frame هدف، به عنوان main_page ذکر کرده ایم، بنابراین هر بار که روی هر یک از لینک ها در نوار منو کلیک کنید، لینک موجود، در صفحه اصلی باز خواهد شد.
در زیر محتوای فایل menu.htm را مشاهده می کنید -
<!DOCTYPE html>
<html>
<body bgcolor = "#4a7d49">
<a href = "http://www.google.com" target = "main_page">Google</a>
<br />
<br />
<a href = "http://www.microsoft.com" target = "main_page">Microsoft</a>
<br />
<br />
<a href = "http://news.bbc.co.uk" target = "main_page">BBC News</a>
</body>
</html>
در زیر محتوای فایل main.htm را مشاهده می کنید-
<!DOCTYPE html>
<html>
<body bgcolor = "#b5dcb3">
<h3>This is main page and content from any link will be displayed here.</h3>
<p>So now click any link and see the result.</p>
</body>
</html>
حالا شما می توانید روی پیوندهای موجود در پنل سمت چپ کلیک کنید و نتیجه را ببینید. ویژگی target می تواند یکی از مقادیر زیر را داشته باشد:
نام ویژگی |
توضیحات |
_self |
صفحه را در frame جاری بارگذاری (load) می کند. |
_blank |
یک صفحه را داخل یک پنجره جدید از مرورگر ، بارگذاری می کند. |
_parent |
صفحه را روی پنجره ی اصلی بارگذاری می کندکه در مورد یک frameset مجزا، پنجره اصلی مرورگر می باشد. |
_top |
صفحه را در پنجره مرورگر بارگذاری می کند و frame فعلی را جایگزین می کند. |
targetframe |
صفحه را داخل یک targetframe نامگذاری شده بارگذاری می کند. |
این فصل در یک نگاه:
…
توضیحات کلی مجموعه: در این مجموعه قصد داریم تا فروشگاه اینترنتی دیجی کالا رو با Asp.Net Core3 پیاده سازی کنیم. ابتدا طراحی قالب دیجی کالا رو به صورت کامل انجام خواهیم داد. در مرحله میریم …این فصل در یک نگاه:
…
توضیحات کلی مجموعه: در این مجموعه آموزشی، با استفاده از جدیدترین تکنولوژی ها و ابزار های مایکروسافت (دات نت)، به یک پروژه جذاب مدیریت آگهی مشابه دیوار می پردازیم. این آموزش در دو بخش کلی و…این فصل در یک نگاه:
در این مجموعه به آموزش کامل ckeditor از نصب آن تا شخصی سازی و افزودن امکانات اختصاصی به ان می پردازیم.…
با توجه به اینکه آموزش جامع و کاملی در مورد نحوه ایجاد و شخصی سازی یک ادیتور در وب سایت و صفحات وب، وجود نداشت برآن شدیم تا یک سری مجموعه آموزشی کامل و جامع در رابطه با این موضوع تهیه نماییم…این فصل در یک نگاه:
چرا 0 تا 100 طراحی سایت خبری؟ما همیشه در کلیک سایت در تلاش بودیم که محصولاتی را آماده کنیم که متفاوت و کارامد باشد و همی…
طراحی سایت خبری 0 تا 100 بدون کدنویسی توضیحات کلی مجموعه: آیا می دانید با این بسته میتوانید یک سایت خبری بسیار زیبا و کارآمد راه اندازی کنید؟ آیا میدانید با هزینه ای نا چیز میتوانید ش…این فصل در یک نگاه:
در این فصل صفحات قالب فروشگاهی را بطور کامل واکنشگرا می کنیم.…
HTML مخفف عبارت Hypertext Markup Language است. این زبان در واقع یک نوع زبان نشانهگذاری استاندارد برای ایجاد صفحات وب و وب اپلیکیشنها محسوب میشود. در واقع HTML را عنصر کلیدی صفحات وب می…این فصل در یک نگاه:
…
Blazor فریمورک معرفی شده از سوی مایکروسافت برای ساخت صفحات SPA با استفاده از زبان سی شارپ میباشد!!! بله درست شنیدید ساخت صفحات وب با استفاده از سی شارپ از این به بعد ممکن خواهد …این فصل در یک نگاه:
اموزش کدنویسی html و css- اموزش تبدیل psd به html و css…
توضیحات کلی مجموعه: این دوره یک دوره تکمیلی برای کاربران فتوشاپ کلیک سایت می باشد که قصد دارن تا به دنیای وب نویسی وارد شوند. دوستانی که اکنون تسلط لازم به فتوشاپ را دارند میتوانند با اشنای…این فصل در یک نگاه:
فصل سوم…
آموزش طراحی ریسپانسیو مدرن و جذابتر نسبت به بوتسرپ (همراه با ساخت صفحه اصلی و پنل یک آژانس مسافربری) آموزش پروژه محور فریمورک متریالایز برای اولین بار بین وب سایت های آموزشی آموزش تمامی …این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
…
در این دوره آموزشی، وبسایت ورزش3 را با استفاده از ASP.NET Core پیاده سازی می کنیم و همچنین اپ اندروید آن را هم با Xamarin متصل به سرور سایت طراحی و در نهایت نحوه انتشار آن در مارکت هایی مثل …این فصل در یک نگاه:
در اصل فصل در مورد performance صحبت خواهیم کرد :-React Performance-Lazy-Error Boundaries و سایت را بر روی هاست واقعی قرا…
با سلام خدمت کلیک سایتی های عزیز، به دوره ی صفر تا صد طراحی سایت با react js خوش آمدید. نکته:این دوره کاملا پروژه محور میباشد نکته:این دوره هیچ پیش نیازی ندارد ReactJS چیست؟ ReactJS اس…این فصل در یک نگاه:
در این فصل(فصل یازدهم مجموعه)،به طراحی CMS (سیستم مدیریت محتوا)اختصاصی فروشگاه می پردازیم.هدف از طراحی این بخش،آنست که م…
در این مجموعه آموزشی قصد داریم از صفر تا صد طراحی یک فروشگاه اینترنتی رو به صورت کامل آموزش بدهیم.این فروشگاه شامل تمامی بخش های مورد نیاز یک فروشگاه اینترنتی است. هدف از این مجموعه،آموزش…این فصل در یک نگاه:
کاملترین آموزش هاست و کار با سی پنل.در هنگام خرید سرویس هاست کلمه ای به نام “کنترل پنل” را زیاد خواهید دید آیا تا به حال…
سی پنل یک کنترل پنل هاست محبوب و معروف در جهان و ایران است. در فیلم آموزش سی پنل هم توصیه اکید شده تا افراد مبتدی و حتی افراد حرفه ای از این کنترل پنل هاست سی پنل استفاده کنند. آموزش cpanel …این فصل در یک نگاه:
طراحی پنل مدیریت(دسته بندی)- دسته بندی یا category - نمایش دسته های فرعی در view با ورود به یکی از دسته های اصلی و آشن…
توضیحات کلی مجموعه: این مجموعه توسط فریمورک محبوب و دوست داشتنی bootstrap و به صورت تضمینی و صفر تا صد جهت یادگیری کارآموزان عزیز ارائه گردیده و دوستانی که این دوره را به طور کامل و دقیق…این فصل در یک نگاه:
…
پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…این فصل در یک نگاه:
ایجاد پروژه آژانس مسافرتی.....…
فصل اول: آشنایی با مبانی برنامه نویسی اندروید آشنایی با معماری برنامه های اندرویدی ساخت شبیه ساز جهت تست پروژه اندروید آشنایی با دستور Toast و حلقه for در برنامه های اندروی…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …این فصل در یک نگاه:
رشد و درآمدزایی یک وب سایت یا کسب و کار اینترنتی کاملا به ذوق و مهارت وب مستر یا همان مدیر اصلی وب سایت گره خورده و متاس…
اصول مدیریت وب سایت برای وب مستر شدن برای موفقیت یک وب سایت لازم الاجراست. زیرا شما دوست دارید وب سایت خود را به کارخانه پولسازی تبدیل کنید. این واقعیت رویا نیست. هرکس این اصول را بداند به …