با کمک فريمها قادر به نمايش همزمان بيش از يک صفحه وب در پنجره مرورگر خواهيد شد. در اين درس با مفاهيم فريم ( Frame ) و تگ هاي مربوطه مخصوصا تگهاي Frame و Frameset آشنا خواهيد شد. فريمها (Frames) با کمک فريمها قادر به نمايش همزمان بيش از يک صفحه وب در پنجره مرورگر خواهيد شد. هر صفحه يا دريچه، فريم (frame) ناميده شده و فريمها کاملا مستقل از هم ميباشند. محتواي هر فريم هم ميتواند هر صفحه يا وب سايتي باشد. هر چند که فريمها طراحي سايتهاي کوچک و متوسط را بسيار آسان ميکنند ولي استفاده از آنها در کارهاي حرفه اي توصيه نميشود.(به جز در موارد خاص) معايب استفاده از فريمها: موتورهاي جستجو با صفحات طراحي شده با فريمها مشکل دارند. چاپ و print صفحاتي که از فريمها استفاده ميکنند مشکل است. صفحاتي که از فريمها استفاده ميکنند معمولا مبتدي بودن طراح سايت را نشان ميدهد!! تگ فريم ست (Frameset) تگ <frameset> به تعريف فريمها و تقسيم بندي پنجره مرورگر ميپردازد. هر تگ <frameset> مجموعه اي از رديفها يا ستونها را تعريف ميکند. داخل هر فريم ميتواند frameset ديگري قرار دهيد. با کمک شناسه هاي rows و cols ابعاد و نسبت هر فريم تعيين ميگردد. تگ <frameset> درون تگهاي <html> و <html/> قرار ميگيرد.(نيازي به قيد تگ body هنگام معرفي يک frameset نيست.) تگ فريم (Frame) کاربرد اصلي تگ <frame> تعيين source يا نام صفحه اي است که بايد در فريم ها نمايش داده شود. مثال زير مجموعه اي از فريمها را که شامل دو فريم عمودي ميباشند معرفي ميکند. از سمت چپ فريم اول 75 درصد و فريم دوم 25 درصد از عرض پنجره مرورگر را به خود نمايش خواهند داد. در ادامه تعريف محتويات هر فريم، درون فريم اول فايل "frame_left.html" و درون فريم دوم فايل "frame_right.html" نمايش داده خواهد شد. <html> <frameset cols="75%,25%"> <frame src="frame_left.html"> <frame src="frame_right.html"> </frameset> </html> براي نمايش مثال بالا به سه فايل نياز داريد، frame_left.html ،frame_right.html و فايل کد HTML بالا. شناسه هاي cols و rows در تگ frameset شناسه مقدار شناسه کارکرد cols عرض پنجره بر اساس پيکسل، درصد يا علامت * تعيين تعداد و اندازه ستونها در فريم ست rows عرض پنجره بر اساس پيکسل، درصد يا علامت * تعيين تعداد و اندازه رديفها در فريم ست مثالهاي زير را در نظر بگيريد: مثال 1 <html> <frameset cols="25%,50%,25%"> <frame src="frame_3.html"> <frame src="frame_2.html"> <frame src="frame_1.html"> </frameset> </html> مثال 2 <html> <frameset cols="*,200"> <frame src="frame_2.html"> <frame src="frame_1.html"> </frameset> </html> نمايش توسط مرورگر نمايش توسط مرورگر در مثال يک عرض فريم اول از سمت راست 200 پيکسل تعيين شده و بقيه عرض پنجره که با علامت * مشخص ميشود به فريم دوم اختصاص خواهد يافت. در مثال دوم عرض پنجره با مقادير درصدي به فريمها اختصاص يافته است. در مورد شناسه rows دقيقا قراردادهاي بالا برقرارند. نکات کاربردي: * اگر فريمهاي طراحي شده مرزهاي قابل مشاهده دارند توسط کاربر قابل تغيير اندازه (resize) خواهند بود و براي جلوگيري از تغيير اندازه فريمها توسط کاربر بايد از شناسه اي به نام noresize در داخل تگ <frame> استفاده شود. در اين مثال noresize نميتوانيد که فريمها را تغيير اندازه بدهيد. * اگر ميخواهيد که فريمها scroll نشوند (بالا و پايين بردن صفحه توسط ماوس) بايد در تگ frame مقدار شناسه scrolling را برابر "no" قرار دهيد. (مقادير ممکن "yes" ، "no" و "auto" ميباشند.) در اين مثال scrolling صفحات قابل scroll نيستند. * اگر ميخواهيد که مرز بين فريمها نمايش داده نشوند بايد در تگ frame مقدار شناسه frameborder را برابر "0" قرار دهيد. (مثال frameborder ) * درصد بسيار کمي از مرورگرها از تگهاي مربوط به frame و frameset پشتيباني نميکنند. براي اين موارد بايد از تگ <noframes> جهت نمايش صفحه جايگزين استفاده شود. مثالي کاربردي در مورد فريمها در اين مثال کاربردي با کمک سه فريم امکان نمايش صفحات مختلف به آساني فراهم ميشود. فريم افقي و بالائي سرتيتر و نام اصلي سايت را نمايش خواهد داد و فريم سمت راست لينکهاي مهم صفحه را در بر گرفته و امکان navigation را فراهم ميسازد و نهايتا فريم اصلي و سمت چپ صفحات مختلف سايت را به نمايش خواهد گذاشت. توجه داشته باشيد که براي اين مثال حداقل به يک فايل براي معرفي مجموعا فريمها(frameset) و سه صفحه HTML براي فريمهاي بالائي، سمت چپ و راست احتياج خواهد بود. تگ هاي فريم Start Tag Purpose کاربرد <frameset> Defines a set of frames تعريف مجموعه اي از فريم ها <frame> Defines a sub window (a frame) تعريف يک فريم <noframes> Defines a noframe section for browsers that do not handle frames تعريف جايگزين براي مرورگرهائي که از فريم ها پشتيباني نميکنند. <iframe> Defines an inline sub window (frame) تعريف فريم هاي درجا (inline)