Iframe va Frame - ular nima va Html-da ramkalardan qanday foydalanish yaxshiroq. HTMLda freymlardan foydalanish Hujjatlarni freymdagi havola yordamida qanday ochish mumkin

"ramka" atamasi bizga kelib chiqqan inglizchada. Tarjima qilinganda, bu so'z "ramka" degan ma'noni anglatadi va derazaning alohida maydonini anglatadi. Uning tuzilishida bunday bo'lim to'liq tayyor HTML hujjatdir.

Individual freymlar brauzer oynalarini yonma-yon joylashtirilgan bo'limlarga ajratadi. Bunday holda, har bir ramka o'zining to'liq sahifasi bilan yuklanadi. Frame texnologiyasi hali ham ko'p bahs-munozaralarga sabab bo'lmoqda, ammo shuni aytish kerakki, uning mashhurligi cho'qqisi allaqachon o'tib ketgan. IN bu daqiqa bu texnologiya eskirgan va oddiy ramkalar endi HTML5 da qoʻllab-quvvatlanmaydi.

Texnologiya tarixi

Bugun biz ramka texnologiyasi bilan ishlashdan voz kechish to'g'risidagi qaror nihoyat qabul qilinganligini aytishimiz mumkin. https://www.w3.org/TR/html5-diff/#obsolete-elements sayti bunday tuzilmani yaratish uchun odatiy ramka, frameset va noframes teglari eskirganligini aniq ta'kidlaydi. Dalil sifatida, bunday tuzilmadan foydalanish saytlardan foydalanish qulayligiga va ularning Internetga kirishiga salbiy ta'sir ko'rsatadigan ma'lumotlar taqdim etiladi.

Ammo zamonaviy texnologiyalar IFRAME elementini qo'llab-quvvatlaydi. Uning ishlatilishi sahifalardagi matn bloklariga ramkalar kiritish imkonini beradi. Bundan tashqari, bunday elementlar matnning o'ziga nisbatan tekislanishi mumkin. Muhim nuqta: siz printsipial ravishda o'rnatilgan ramkalar hajmini o'zgartira olmaysiz. Ular o'lchamini o'zgartirish uchun mos atributga ega emas.

Kelajakda, texnologiyada sakrashlarsiz, ramkalardan keyingi foydalanish dargumon. Shuni esda tutish kerakki, Internet texnologiyalarini standartlashtirish bo'yicha etakchi tashkilot - W3C - bunday tuzilmalardan veb-sayt ishlab chiquvchilari tomonidan foydalanilmasligi kerakligini aniq ta'kidlagan.

Ya'ni, ramkalar, printsipial jihatdan, yangi resurslarni yaratishda sahifalarni tuzish uchun ishlatilmasligi kerak. Ammo mavjud saytlarni qo'llab-quvvatlash va takomillashtirish bilan texnologiyaning xususiyatlarini bilish va ulardan foydalanish juda foydali va samarali bo'ladi.

Ramkalarning afzalliklari

Ramka texnologiyasining afzalliklari orasida foydalanish qulayligi, yuqori tezlik va oynaning ma'lum joylarida ma'lumotni to'g'ri joylashtirish imkoniyati mavjud.

Ramkalardan foydalanish sayt bilan ishlashda uzatiladigan trafik hajmini tejash imkonini beradi. Axir, ma'lumotlarning boshqa bo'limiga kirishda odatda sahifaning butun kodi emas, balki faqat bitta bo'limi yangilanadi.

Ushbu tuzilma resurs tarkibi orqali qiziqarli navigatsiya imkoniyatlarini taqdim etadi. Axir, qo'shni freymlarda brauzer oynasida siz turli xil ma'lumotlar bloklarini ko'rishingiz mumkin. Foydalanuvchilar uchun ramka ichida qidirish alohida sahifada bunday operatsiyani bajarishga teng ekanligini bilish muhimdir.

Sayt bilan ishlashda siz boshqa texnologik echimlar yordamida amalga oshirish qiyin bo'lgan alohida bo'lim hajmini dinamik ravishda o'zgartirishingiz mumkin.

Mumkin bo'lgan kamchiliklar

Ramkalardan foydalangan holda veb-saytlar bilan bog'liq muammolar asta-sekin to'planib bordi, ammo bugungi kunda ular chegara darajasiga yetdi. Asosiy kamchiliklar orasida:

  1. Foydalanishning qoniqarsizligi. Bugungi kunda ekran o'lchamlari kichik bo'lgan mobil qurilmalar va planshetlardan foydalanuvchilarning ulushi o'sib bormoqda va allaqachon ish stoli kompyuterlari va noutbuklaridan saytlarga tashrif buyuruvchilar sonidan oshib bormoqda. Va bu erda ramkalardan foydalanish ko'rsatilganda sahifalarning moslashuvi bilan bog'liq jiddiy muammolarni keltirib chiqaradi turli qurilmalar. Bugungi kunda bu muammoning amaliy yechimi yo'q.
  2. Saytga kirish imkoniyatining yomonlashishi turli dasturlar. Qo'shimcha dasturlar sonining ko'payishi (masalan, ekranni o'qish dasturlari) o'qish uchun ma'lumotlarning ancha yomonligini ko'rsatadi.
  3. Sahifalar to'g'ri ko'rsatilmaydi. Ko'pincha bunday tuzilishga ega sahifalarning joylashuvi dizayn nuqtai nazaridan brauzerlarda noto'g'ri ko'rinadi. Va bu texnologiyaning xususiyatlariga bog'liq. SEO nuqtai nazaridan, sahifaning HTML tartibida ramkalardan foydalanish juda istalmagan.
  4. Butun tuzilma uchun bitta manzilning mavjudligi. Natijada, bunday saytning ichki sahifalarini xatcho'p qilib bo'lmaydi. Bu foydalanuvchilar uchun noqulayliklarga olib keladi.
  5. Qidiruv tizimlari tomonidan noto'g'ri indeksatsiya. Veb-saytda bitta sahifa shakllanadigan bir nechta to'liq huquqli hujjatlarning mavjudligi qidiruv tizimlarining ishini sezilarli darajada murakkablashtiradi. Bu indekslashda jiddiy xatolarga olib keladi. Natijada, mavzular va sahifa manzillarining noto'g'ri ta'rifi indekslashdan muhim tarkibni yo'qotishiga olib keladi.
  6. Hurmatsizlik. Bu tarmoqdagi resurslar uchun juda noodatiy kamchilik. Va shunga qaramay, shuni aytish kerakki, freymlardagi saytlarning joylashuvi eskirib borayotgani bunday manbalarning mualliflari va egalari retrograd deb hisoblanishiga olib keladi. Ammo ba'zi istisnolar mavjud. Hatto chat xonalari joylashgan zamonaviy saytlar ham odatda ramkalardan foydalanadi.

Ramkalarni qidiruv tizimlari tomonidan indekslash

Qidiruv tizimlaridan olingan ma'lumotlar bizga ramkalari bo'lgan saytlar sezilarli darajada sekinroq indekslanishini aniq aytadi. Bunday holda, strukturaning o'zi bilan bog'liq xatolar ko'pincha paydo bo'ladi. Axir, har bir ramka to'liq huquqli Internet sahifasini ko'rsatadi. Va saytning aynan shunday qismi indekslash ma'lumotlar bazasiga kiritilishi mumkin.

Bunday indekslashning salbiy tomoni shundaki, sahifaning ichki qismiga o'tishda foydalanuvchi odatda menyular va boshqa navigatsiya mexanizmlarini ko'rmaydi. Va bu ajablanarli emas. Bu holda ramkani yangilash muammoni hal qilish emasligini tushunishingiz kerak. Axir, barcha navigatsiya mexanizmlari boshqa konteynerga joylashtirilgan.

Yana bir muammo shundaki, konteyner strukturasining asosiy sahifasida faqat sarlavha, meta tavsif teglari va FRAMESET tegi mavjud. Va bu mantiqiy ko'rinadi - axir, mazmunli tarkib alohida hujjatlarda joylashgan. Aynan shularni saytga tashrif buyuruvchi sahifada ramkalarda ko'radi.

Ammo qidiruv roboti deyarli hech qachon bunday sahifani indekslamaydi. U tashrif buyuruvchilar uchun foydali bo'lgan tarkibni topa olmaydi. Qidiruv botlari shunday tuzilganki, ular tana yorlig'i ichiga joylashtirilgan ma'lumotlarni olishga va indekslashga harakat qiladilar. Bu erda foydalanuvchi uchun foydali tarkibni qidirish sodir bo'ladi. Ammo ramka sahifasida bunday teg yo'q, u FRAMESET bilan almashtirilgan.

Bu muammoni qisman NOFRAMES yordamida hal qilish mumkin. Ammo ko'pgina saytlarda unga kirishda faqat brauzer ramkalarni qo'llab-quvvatlamasligi haqida ma'lumot beriladi. Va sahifani ko'rish uchun siz boshqa dasturdan foydalanishingiz kerak.

Bunday holatlar saytga kirayotganda menyu va ko'rsatilishi kerak bo'lgan boshqa ma'lumotlarni ko'rmaydigan foydalanuvchilar uchun ko'plab muammolarni keltirib chiqaradi. Agar freymlar veb-saytga joylashtirilsa, uning SEO nuqtai nazaridan parametrlari kamayadi. Shu bilan birga, foydalanuvchilarning xatti-harakatlari statistikasi qidiruv tizimlari orasida resursning obro'si pasayib borayotganini ko'rsatadi. Bu, albatta, veb-sayt trafigiga salbiy ta'sir qiladi.

Ayniqsa, qidiruv tizimlari va indekslash botlari uchun ichki va bir nechta xodimlar tuzilmalarini qayta ishlash qiyin. Har bir konteyner alohida hujjatning barcha xususiyatlariga ega, ammo to'liq navigatsiya va boshqa ma'lumotlarni o'z ichiga olmaydi, vaziyatni yanada murakkablashtiradi.

Sahifalardagi to'g'ri havolalardan foydalanib, qidiruv tizimlarining ishini osonlashtirishingiz mumkin. Bunday holda, siz sahifaning har bir alohida qismida topilishi uchun barcha menyu havolalarini nusxalashingiz kerak. Ammo bu saytni optimallashtirish va undagi ma'lumotlarni yangilash ishlarini sezilarli darajada murakkablashtiradi va sekinlashtiradi.

Ko'pgina optimallashtiruvchilar va veb-ustalar tajribasi, shuningdek, ramkalardagi sahifalar qidiruv natijalarida yuqori reytinglarni olmasligini ko'rsatadi. Bu indekslash ma'lumotlar bazasiga kiritilgan bo'lsa ham sodir bo'ladi.

Ramkalarda veb-saytni reklama qilish xususiyatlari

Ba'zi qidiruv tizimlari ramkali fayllarni noto'g'ri yoki juda noto'g'ri indekslaydi. Natijada, indeks ma'lumotlar bazasi ota-resurslar manzillari bilan emas (bunday bo'lishi kerak), lekin bolalar saytlariga havolalar bilan to'ldiriladi.

Kadrlar asosida saytlarni indekslash muammolarini minimallashtirish uchun ularni tavsiflashda maxsus teglar va parametrlar qo'llaniladi. Konteyner strukturasining asosiy elementi ramkalar to'plamidir. Aynan u standart tanani almashtiradi; manba kodida. Strukturadagi har bir alohida konteyner ramka bilan tavsiflanadi. Uning sahifa kodidagi miqdori ko'rilganda brauzer oynasida ko'rsatiladigan alohida bo'limlar soniga mos keladi.

Ushbu teglar joylashtirilishi kerak bosh sahifa saytga o'ting va keyin ularning har biridagi tarkibni takrorlang.

Ramkalarni qo'llash sohalari

HTML hujjatlarini ishlab chiquvchilar sahifalarda ma'lumotlarni ko'rsatish uchun shakllarning juda keng tanloviga ega. Matn va grafik ma'lumotlar roʻyxatlar, jadvallar yordamida yoki oddiygina tekislash opsiyalaridan foydalangan holda, gorizontal chiziqlarni oʻrnatish va paragraflarga boʻlish orqali tartiblash va tartibga solish mumkin. Ba'zan bu xususiyatlar etarli emas va keyin brauzer oynasini alohida maydonlarga yoki ramkalarga bo'lishingiz kerak. HTML tilining rus tilidagi bir qator tavsiflarida freymlar atamasi o'rniga freymlar atamasi qo'llaniladi. Ikkala atamaning qo'llanish chastotasi taxminan bir xil.

WWW ma'lumotlarini ko'rsatish uchun ramka tuzilishini tanlash quyidagi hollarda oqlanadi:

  • agar kerak bo'lsa, boshqa pastki sohada ishlayotganda, hujjatlarni brauzerni ko'rish oynasining pastki sohalaridan biriga yuklashni boshqarish;
  • ekranning boshqa kichik sohalari tarkibidan qat'i nazar, doimo ekranda bo'lishi kerak bo'lgan ma'lumotlarni ko'rish oynasining ma'lum bir joyida joylashtirish;
  • oynaning bir nechta qo'shni kichik maydonlarida qulay tarzda joylashtirilgan ma'lumotlarni taqdim etish, ularning har biri mustaqil ravishda ko'rib chiqilishi mumkin.

Ushbu ro'yxat ramkalar qo'llanilishi mumkin bo'lgan barcha mumkin bo'lgan holatlarni tugatmaydi, lekin tavsiya xarakteriga ega.

Keling, avval real hayotdagi HTML hujjatlari misollari yordamida freymlardan odatiy foydalanishni ko'rib chiqamiz, so'ngra freymlarni o'z ichiga olgan hujjatlarni ishlab chiqish qoidalariga murojaat qilamiz.

Shaklda. 5.1-rasmda Rossiya moliya va fond bozorlaridan ma'lumotlarni taqdim etishga ixtisoslashgan Finmarket agentligining HTML sahifalaridan biri ko'rsatilgan.

Guruch. 5.1. Ramka tuzilishiga ega odatiy veb-hujjat

Ushbu sahifa brauzer oynasini uchta ramkaga ajratadi. Pastki qism oyna butun oyna balandligining 20% ​​ni egallaydi va doimiy ma'lumotlarni o'z ichiga oladi, bu holda grafik menyu bo'lib, istalgan vaqtda eng muhim bo'limlarga kirish imkonini beradi. Ushbu ramka foydalanuvchi buyruqlari asosida o'z hajmini o'zgartira olmaydi va aylantirish paneli yo'q. Yuqori qism deraza (balandlikning 80%) gorizontal ravishda ikkita ramkaga bo'linadi. Chap ramkada foydalanuvchi ko'rishi mumkin bo'lgan hujjatlar mazmuni mavjud. Ko'rish oynasining ko'p qismini egallagan o'ng ramka hujjatlarning o'zini ko'rsatish uchun mo'ljallangan. Dastlab yuklanganda, bu ikki ramka brauzer oynasini gorizontal ravishda 15% dan 85% gacha bo'lgan nisbatda ajratadi. Ushbu nisbat foydalanuvchi tomonidan ko'rish vaqtida o'zgartirilishi mumkin, bu yuklangan hujjatlarning mazmunini hisobga olgan holda optimal ramka o'lchamlarini tanlash imkonini beradi. Ushbu freymlarning har biri o'zining o'tkazish paneliga ega bo'lib, ramkaning o'zi, butun brauzer oynasi yoki ishlatiladigan shriftlardan qat'i nazar, ramkaning butun tarkibini ko'rish imkonini beradi. Chap freymdagi istalgan havolani tanlaganingizda, tegishli hujjat o'ng ramkaga yuklanadi. Ushbu tuzilma bir vaqtning o'zida ekranda hujjatlar tarkibini ham, tanlangan hujjatning mazmunini ham ko'rish imkonini beradi.

Mana, tushuntirishsiz, ushbu tuzilishga ega hujjat yaratish uchun ishlatiladigan HTML kodining bir qismi:

Ushbu misol ramka tuzilmalaridan eng tipik foydalanishni ko'rsatadi, bu erda bir ramka hujjatlar uchun mundarija bo'lib xizmat qiladi, ikkinchisi esa ularning mazmunini yuklash uchun ishlatiladi. Bunday muammoni ramkalardan foydalanmasdan hal qilish odatda quyidagicha amalga oshiriladi. Sahifalarning birida boshqa hujjatlarga havolalar yoki ularning alohida bo'laklaridan iborat tarkiblar jadvali mavjud. Bunday havolani bosganingizda, mundarija yo'qoladi va kerakli hujjat o'z o'rniga yuklanadi, uni o'qib bo'lgach, odatda mundarijaga qaytishingiz kerak bo'ladi. Ramkalardan foydalanganda, bu qaytarish keraksiz bo'lib qoladi, chunki Mundarija har doim ekranning bir qismida joylashgan.

Siz uni Internetda topishingiz mumkin Sankt-Peterburgdagi "All Peterburg" mashhur manzil va telefon ma'lumotnomasining elektron nashri veb-sayti.

Katalogning elektron versiyasi bilan quyidagi manzilda tanishishingiz mumkin http://www.allpetersburg.ru va foydalanuvchi so'rovlari asosida kerakli ma'lumotlarni topish imkonini beradi. Ushbu hujjat sahifasi ham ramka tuzilishiga ega va ikkita ramkadan iborat bo'lib, ularning birinchisi 100 piksel kengligida, ikkinchisi esa ko'rish oynasining qolgan butun kengligini egallaydi. Chap tomonda joylashgan ramka doimiy ravishda ekranda mavjud bo'lgan grafik menyu uchun ishlatiladi va Nevalink kompaniyasi logotipini ham o'z ichiga oladi. Ikkinchi ramka hujjatni o'z ichiga oladi, bu holda foydalanuvchi so'rovi shaklidir. Ushbu sahifaning tuzilishi quyidagi HTML kodi bilan belgilanadi:

Ramkalar jadvallarga juda o'xshaydi - ikkalasi ham brauzer oynasini ba'zi ma'lumotlar joylashgan to'rtburchaklar maydonlarga ajratadi. Biroq, ramkalar yordamida siz nafaqat hujjat sahifalarini formatlash masalasini hal qilishingiz, balki ular orasidagi o'zaro aloqani ham tashkil qilishingiz mumkin. Ramkalar va jadvallar o'rtasidagi asosiy farq shundaki, har bir freym o'zining alohida HTML hujjatiga ega bo'lishi kerak, lekin barcha jadval hujayralarining mazmuni doimo bir xil hujjatning bir qismidir. Bunga qo'shimcha ravishda, ramkada ko'rsatilgan sahifa boshqalardan mustaqil ravishda ko'rilganda aylantirilishi mumkin. Har bir kadr mohiyatan alohida “mini-brauzer” hisoblanadi. Butun tuzilishi har doim ekranda ko'rsatiladigan ramkalardan farqli o'laroq, jadvallar oynaga to'liq mos kelmasligi mumkin va ularni faqat qismlarga bo'lib ko'rish mumkin. Bundan kelib chiqadiki, agar HTML jadvallarida hujayralarning umumiy soni amalda cheklanmagan bo'lsa va bir necha yuzga yetishi mumkin bo'lsa, hujjatdagi ramkalar soni odatda bir necha birlikdan oshmaydi.

Maslahat

Agar siz faqat hujjatni formatlashingiz kerak bo'lsa, unda jadvallardan foydalanish bilan cheklanish kifoya. Agar siz murakkabroq muammolarni hal qilishingiz kerak bo'lsa, masalan, oynaning pastki qismlari o'rtasidagi o'zaro ta'sirni tashkil qilish yoki ekranda doimiy joylashgan pastki maydonlarni yaratish, u holda ramkalardan foydalanish qulay.

Oxir oqibat, hujjat strukturasini tanlash - jadval yoki ramka - ko'p omillarga bog'liq va uni aniq belgilash mumkin emas.

Shuningdek boravvalgilariga o'xshash tarzda qurilgan sahifalar. Masalan, siz olishingiz mumkin asosan Internet bilan ishlash uchun mo'ljallangan dasturiy mahsulotlarning dunyo bo'ylab juda mashhur to'plamining sahifasi. Server manzil http://www.tucows.com. E'tibor bering, server nomi to'plamning to'liq nomi - The Ultimate Collection of Winsock Software qisqartmasidan olingan qisqartma bilan aniqlangan. Tucows qisqartmasi ikkita sigir (ikki sigir) iborasiga mos kelganligi sababli, sigirlarning tasvirlari ko'pincha server sahifalarida topiladi va dasturiy mahsulotlarning reytingi mooinglar soni bo'yicha baholanadi ("Moo") va sigirlarning tegishli soni qatori sifatida grafik tasvirlangan. Server sahifalarining aksariyati xuddi shu tarzda qurilgan - oynaning chap tomonida mavjud bo'limlar ro'yxati, o'ng tomonida esa tanlangan bo'lim uchun dasturiy mahsulotlar ro'yxati joylashgan. Bir qarashda, hujjatning tuzilishi avvalgi misollardagi kabi ko'rinishi kerak. Biroq, bu hujjat ramkalardan foydalanmaydi! Ushbu sahifa ikkita katakchali bitta qatordan iborat jadval yordamida tuzilgan. Jadvalda ramka yo'q va faqat sahifani formatlash maqsadiga xizmat qiladi. Vertikal bo'lingan ekranning taassurotlari o'z ichiga olgan fon grafikasi yordamida yaratiladi vertikal chiziq, va umuman stol panjarasi emas. Buni rasmlarni yuklamasdan sahifani ko'rish orqali tekshirishingiz mumkin. Bu erda jadvaldan foydalanish hujjatlarning ko'proq foydalanish imkoniyatini hisobga olgan holda, chunki ramkalar barcha brauzerlarda ko'rsatishga imkon bermaydi.

Bunday holda, ushbu yondashuvning kamchiliklari har bir hujjatda bo'limlarning butun ro'yxatini (sahifaning chap tomoni) takrorlash zarurati bo'lib, bu fayl hajmini biroz oshiradi.

Yuqoridagi misollarni taqqoslash shuni ko'rsatadiki, jadvallar va ramkalardan foydalanish ba'zan bir-birini almashtirib, ishlab chiquvchilarning xohishlariga ko'ra aniqlanishi mumkin. E'tibor bering, ko'pincha hujjat ko'rsatilgan sahifani ko'rib chiqayotganda, uning qanday tuzilganligini aniqlab bo'lmaydi. Yakuniy foydalanuvchi hujjatning ichki tuzilishini bilishi shart emas, lekin o'z veb-sahifalarini ishlab chiqishda mavjud hujjatlarning manba kodi bilan tanishish juda foydali bo'ladi. Birinchi misolda (5.1-rasmga qarang) hujjatning ramka tuzilishi darhol ko'rinadi - ikkita vertikal aylantirish paneli mavjudligi allaqachon alohida ramkalar mavjudligini aniqlaydi. Quyidagi ikkita misol tashqi ko'rinishida juda o'xshash va ularning birinchisi ramkalar, ikkinchisi esa jadvallar yordamida qurilganligini aniqlash mumkin emas. Farqlar faqat ular bilan ishlashda paydo bo'ladi. Telefon ma'lumotnomasi misolida hujjatni aylanayotganda oynaning chap qismi joyida qoladi, bu faqat ramka tuzilishi mavjud bo'lganda mumkin. Quyidagi misolda (dasturiy mahsulotlar to'plami) aylantirish oynaning butun tarkibini siljitadi.

Netscape brauzeri bilan ishlashda hujjat strukturasini View menyusining Page Info bandi (Netscape brauzerining 3.x versiyalarida ushbu menyu bandi Hujjat haqida ma’lumot deb atalgan) yordamida ko‘rishingiz mumkin (5.2-rasm).

Guruch. 5. 2 . Netscape brauzerini ko'rish menyusi

Bundan tashqari, siz har doim "Ko'rish" menyusining Sahifa manbasi bandidan (yoki sichqonchaning o'ng tugmasi bilan bosilgan kontekst menyusidagi "Kadrlar manbasini ko'rish" bandidan foydalanib, hujjatning HTML kodini ko'rishingiz mumkin. tanlangan ramka).

Maslahat

Ramkalardan foydalanishni asossiz suiiste'mol qilmaslik kerak va ularning soni uch yoki to'rtdan oshmasligi kerak.

Ko'pincha Internetdagi haqiqiy sahifalarda siz ramkalardan foydalanishning quyidagi holatlarini ko'rishingiz mumkin:bir vaqtning o'zida ko'rish va bir-biri bilan solishtirish uchun qulay bo'lgan hujjatlarni yuklash uchun ikkita qo'shni ramka ishlatiladi. Kadrlarga yuklangan ikkita hujjatning har biri ma'lumotni taqdim etish uchun jadval shaklidan foydalanadi. Ma'lumotlarning bunday tashkil etilishi natijasida ikkita jadvalning har birini alohida ko'rish (yoki chop etish) yoki boshqasi bilan taqqoslab o'rganish mumkin.

Ushbu bo'limda keltirilgan barcha misollar mashhur WWW serverlari sahifalaridan olingan va, ehtimol, HTML hujjatlarida ramkalardan foydalanishga misol bo'la oladi.

Ushbu bobning keyingi bo'limlari ramkalarni o'z ichiga olgan hujjatlarni yozish qoidalarini o'z ichiga oladi.

Ramkalarni tasvirlash qoidalari

Keling, ramka tuzilmalari bo'lgan hujjatlar uchun ishlatiladigan teglarni yozish qoidalarini ko'rib chiqishga o'tamiz.

Keling, avvalo o'rtacha murakkablikdagi ramkalar bilan hujjat yaratadigan to'liq HTML kodini ko'rib chiqaylik:

</p> <p>

Ushbu misol shaklda ko'rsatilgan ramkali sahifani yaratadi. 5.3. Ko'rib turganingizdek, ushbu HTML kodi to'rtta ramkani belgilaydi. Yuqori ramka sahifaning butun kengligini qamrab oladi va sarlavhani o'z ichiga oladi. Keyingi ikkita markaziy ramka, ulardan biri chap tomonda joylashgan va ekran kengligining 25 foizini egallaydi, ikkinchisi esa qolgan joyni egallaydi. Oxirgi, to'rtinchi kadr ekranning pastki choragini egallaydi. Har bir freymga alohida HTML hujjati yuklanadi, uning nomi SRC parametri bilan belgilanadi.

Misoldan ko'rinib turibdiki, teglar ramkalar tuzilishini tavsiflash uchun ishlatiladi , Va . Keling, ushbu teglarning maqsadini ko'rib chiqaylik.</p> <span> <br><img src='https://i0.wp.com/webnav.ru/books/html4/frames/07.gif' width="100%" loading=lazy loading=lazy></span> <p><i><b>Guruch. 5. <span>3 . </b> Misolda ko'rsatilgan ramkalar bilan HTML hujjatni aks ettiruvchi Netscape brauzerining natijasi</span> </i></p> <p><b>teg <FRAMESET> </b></p> <p>Ramkalar FRAMESET deb nomlangan tuzilmada aniqlanadi, u BODY bo'limi o'rniga freymlarni o'z ichiga olgan sahifalar uchun ishlatiladi. <a href="https://whatsappss.ru/uz/tips/pole-html-dokumenta-1s-obychnye-formy-upravlyaemye-formy-pole-html.html">oddiy hujjat</a>. Ramkalardan tashkil topgan veb-sahifalar HTML kodida BODY bo'limini o'z ichiga olmaydi. O'z navbatida, BODY bo'limiga ega sahifalar ramkalardan foydalana olmaydi.</p> <p><i><b>Maslahat</b> </i></p> <p><i> <span>Ramkalangan sahifalarda BODY bo'limi yo'qligi sababli butun sahifa uchun fon tasviri va fon rangini o'rnatishning hech qanday usuli yo'q. Eslatib o'tamiz, bu sozlamalar BODY tegida yozilgan BACKGROUND va BGCOLOR parametrlari bilan aniqlanadi. Biroq, bu har bir freymga o'z fon sozlamalari bo'lgan hujjatlarni yuklashingizga to'sqinlik qilmaydi.</span> </i></p> <p>Teglar konteyneri <FRAMESET>Va</FRAMESET> har bir ramka belgilash blokini ramkalar. Idishning ichida <FRAMESET>faqat teglarni o'z ichiga olishi mumkin <FRAME>va ichki o'rnatilgan teglar <FRAMESET>. </p> <p>teg <FRAMESET>ikkita parametrga ega: ROWS (satrlar) va COLS (ustunlar) va quyidagicha yoziladi:</p> <p><FRAMESET ROWS="список_ значений" COLS="список_ значений">. </p> <p><i><b>Eslatma</b> </i></p> <p><i> <span>Ba'zi brauzerlar qo'shimcha teg parametrlariga ruxsat beradi <FRAMESET></span> </i></p> <p>Siz ROWS yoki COLS yoki ikkalasi uchun qiymatlarni belgilashingiz mumkin. Ushbu parametrlardan kamida bittasi uchun kamida ikkita qiymatni aniqlash kerak. Agar boshqa parametr o'tkazib yuborilsa, uning qiymati 100% deb qabul qilinadi.</p> <p><i><b>Maslahat</b> </i></p> <p><i> <span>Agar tegda bo'lsa <FRAMESET>Agar ROWS va COLS uchun faqat bitta qiymat aniqlangan bo'lsa, bu teg haqiqiy emas deb hisoblanadi va brauzer uni e'tiborsiz qoldiradi. Boshqacha qilib aytganda, aniqlab bo'lmaydi <FRAMESET>, faqat bitta ramkadan iborat.</span> </i></p> <p>Teg ROWS va COLS parametr qiymatlari roʻyxati <FRAMESET>piksellar, foizlar yoki nisbiy birliklarda ko'rsatilishi mumkin bo'lgan vergul bilan ajratilgan qiymatlar ro'yxati. Satrlar yoki ustunlar soni tegishli ro'yxatdagi qiymatlar soni bilan belgilanadi. Masalan, yozib oling</p> <p><FRAMESET ROWS="100,240,140"> </p> <p>uchta ramkalar to'plamini belgilaydi. Bu qiymatlar mutlaq piksel qiymatlaridir. Boshqacha qilib aytganda, birinchi ramka (birinchi qator) 100 piksel balandlikda, ikkinchisi 240 piksel, oxirgisi esa 140 piksel balandlikda.</p> <p>Kadr o'lchamini piksellarda o'rnatish juda qulay emas. Bu brauzerlarning turli xil operatsion tizimlarda va turli xil displey o'lchamlari bilan ishlashini hisobga olmaydi. Shu bilan birga, ba'zi holatlar uchun mutlaq o'lcham qiymatlarini aniqlash mumkin, masalan, ma'lum o'lchamlarga ega kichik rasmni ko'rsatish. Eng yaxshi variant qiymatlarni foizlarda yoki nisbiy birliklarda belgilash bo'ladi, masalan:</p> <p><FRAMESET ROWS="25%,50%,25%">. </p> <p>Ushbu misol ekranning to'liq kengligi bo'ylab qatorlar sifatida joylashtirilgan uchta ramka yaratadi. Yuqori qator mavjud ekran balandligining 25 foizini, o'rta qator - 50 foizni va pastki qator - 25 foizni egallaydi. Agar ko'rsatilgan foizlarning yig'indisi 100% ga teng bo'lmasa, natija aniq 100% bo'lishi uchun qiymatlar proportsional ravishda o'lchanadi.</p> <p>Nisbiy birliklardagi qiymatlar quyidagicha:</p> <p><FRAMESET COLS="*,2*,3*">. </p> <p>Yulduzcha (*) bo'shliqni proportsional ravishda bo'lish uchun ishlatiladi. Har bir yulduz butunning bir qismini ifodalaydi. Yulduzchalar yonidagi raqamlarning barcha qiymatlarini qo'shib (agar raqam qoldirilsa, bittasi qabul qilinadi), biz kasrning maxrajini olamiz. Bu misolda birinchi ustun oynaning umumiy kengligining 1/6 qismini, ikkinchi ustun 2/6 (yoki 1/3) qismini, oxirgisi esa 3/6 (yoki 1/1) qismini egallaydi. 2).</p> <p>Esda tutingki, hech qanday belgisiz raqamli qiymat satr yoki ustun uchun piksellarning mutlaq sonini bildiradi. Foiz belgisi (%) bo'lgan qiymat ko'rish oynasining umumiy kengligi (COLS uchun) yoki balandligi (QATLAR uchun) nisbatini, yulduzcha (*) bilan qiymat esa qolgan bo'shliqning mutanosib taqsimlanishini bildiradi.</p> <p>Mana, qiymatlarni o'rnatish uchun uchta variantdan foydalanadigan misol:</p> <p><FRAMESET COLS="100,25%,*,2*">. </p> <p>Ushbu misolda birinchi ustun 100 piksel kengligida bo'ladi. Ikkinchi ustun butun ko'rish maydoni kengligining 25 foizini, uchinchi ustun qolgan joyning 1/3 qismini va oxirgi ustun 2/3 qismini egallaydi. Avval chapdan o'ngga qarab mutlaq qiymatlarni belgilash tavsiya etiladi. Ular ta'qib qilinadi <a href="https://whatsappss.ru/uz/utilities/formula-v-eksel-umnozhenie-na-odnu-yacheiku-kak-v-eksele.html">foiz qiymatlari</a> makonning umumiy hajmidan. Nihoyat, qolgan bo'shliqning mutanosib bo'linishini aniqlaydigan qiymatlar qayd etiladi.</p> <p><i><b>Maslahat</b> </i></p> <p><i> <span>Agar siz mutlaq COLS yoki ROWS qiymatlaridan foydalansangiz, ularni har qanday brauzer oynasiga sig'ishi uchun kichik qilib qo'ying va kerak bo'lganda ularni to'ldiring. <a href="https://whatsappss.ru/uz/browser/adaptaciya-tablicy-dlya-vseh-razmerov-ekranov-povorachivat.html">kamida</a>, qolgan bo'sh joyni to'ldirish uchun foiz yoki nisbiy shaklda ko'rsatilgan yagona qiymat.</span> </i></p> <p>Agar teg ishlatilsa <FRAMESET>, unda COLS va ROWS qiymatlari ko'rsatilgan bo'lsa, ramkalar panjarasi yaratiladi. Masalan:</p> <p><FRAMESET ROWS="*,2*,*" COLS="2*,*"> </p> <p>HTML kodining ushbu qatori uchta qator va ikkita ustunli ramkalar panjarasini yaratadi. Birinchi va oxirgi qatorlar har biri balandlikning 1/4 qismini, o'rta chiziq esa yarmini egallaydi. Birinchi ustun kenglikning 2/3 qismini, ikkinchisi esa 1/3 qismini egallaydi.</p> <p>Idish <FRAMESET> </FRAMESET> dastlabki misolda ko'rsatilganidek, boshqa shunga o'xshash konteyner ichiga joylashtirilishi mumkin. Keling, tegdan foydalanishni batafsil ko'rib chiqaylik <FRAME>. </p> <p><i><b>Eslatma</b> </i></p> <p><i> <span>HTML tilidagi ba'zi manbalar tegning COLS va ROWS parametrlarini ko'rsatadi <FRAMESET>bir-birini istisno qiladilar. Biroq, Netscape ham, Microsoft Internet Explorer ham ularni birgalikda ishlatishga imkon beradi.</span> </i></p> <p><b>teg <FRAME> </b></p> <p>teg <FRAME>yagona ramkani belgilaydi. U bir juft teg ichida joylashgan bo'lishi kerak <FRAMESET>Va</FRAMESET>. Masalan:</p> <p><FRAMESET ROWS="*,2*"> </p> <p><FRAME> </p> <p><FRAME> </p> <p></FRAMESET> </p> <p>Iltimos, teg ekanligini unutmang <FRAME>konteyner emas va undan farqli o'laroq <FRAMESET>yakuniy tegga ega emas. Bitta ramkaning to'liq ta'rifi HTML kodining bir qatori bilan amalga oshiriladi.</p> <p>Yozib olish uchun juda ko'p teglar mavjud <FRAME>tegni belgilashda qancha individual freymlar aniqlanadi <FRAMESET>. Oldingi misolda teg <FRAMESET>ikkita satr berildi, shuning uchun ikkita teg yozish kerak edi <FRAME>. Biroq, bu misol aslida befoyda, chunki freymlarning hech birida tarkib yo'q!</p> <p>teg <FRAME>oltita parametrga ega: SRC, NAME, MARGINWIDTH, MARGINHEIGHT, SCROLLING va NORESIZE.</p> <p><i><b>Eslatma</b> </i></p> <p><i> <span>Ba'zi brauzerlar bir qator qo'shimcha teg parametrlaridan foydalanishga imkon beradi <FRAME>. Netscape va Microsoft Internet Explorer brauzerlarining imkoniyatlari haqida umumiy ma’lumot bob oxirida berilgan.</span> </i></p> <p>Mana teg yozuvi: <FRAME>barcha parametrlar bilan:</p> <p><FRAME SRC="url" NAME="window_name" SCROLLING=YES|NO|AUTO </p> <p>MARGINWIDTH="qiymat" MARGINHEIGHT="qiymat" NORESIZE></p> <p>Amalda tegda <FRAME>Kamdan-kam hollarda barcha parametrlar bir vaqtning o'zida ishlatiladi.</p> <p>Ko'pchilik <a href="https://whatsappss.ru/uz/office-programs/grafika-dlya-gta-5-s-avtomaticheskoi-ustanovkoi-grand-theft-auto-v.html">muhim parametr</a>- SRC (manbaning qisqartmasi). Ko'pincha tegda <FRAME>bitta SRC parametri belgilangan. Masalan:</p> <p><FRAME SRC="url">. </p> <p>SRC parametrining qiymati dastlab ushbu ramkaga yuklanadigan hujjatning URL manzilini aniqlaydi. Odatda, bu manzil asosiy hujjat bilan bir xil katalogda joylashgan HTML faylning nomidir. Keyin ramkani aniqlash chizig'i, masalan, quyidagicha ko'rinadi:</p> <p><FRAME SRC="sample.htm">. </p> <p>E'tibor bering, ramka ta'rifida ko'rsatilgan har qanday HTML fayli fragment emas, balki to'liq HTML hujjati bo'lishi kerak. Demak, hujjatda HTML, HEAD, BODY va hokazo teglar bo‘lishi kerak.</p> <p>Albatta, SRC qiymati har qanday haqiqiy URL bo'lishi mumkin. Agar, masalan, ushbu kitob nashriyotining serverida joylashgan GIF tasvirini ko'rsatish uchun ramka ishlatilsa, unda siz quyidagilarni yozishingiz kerak:</p> <p><FRAME SRC="http://www.bhv.ru/example.gif">. </p> <p><i><b>Maslahat</b> </i></p> <p><i> <span>Hujjatga ramka tuzilishini tavsiflovchi tarkibni kiritmang.</span> </i></p> <p>Oddiy matn, sarlavhalar, grafikalar va boshqa elementlardan to'g'ridan-to'g'ri ramka tuzilishini tavsiflovchi hujjatda foydalanish mumkin emas. Kadrlarning barcha tarkibi alohida HTML fayllarida aniqlanishi kerak, ularning nomlari tegning SRC parametri bilan belgilanadi. <FRAME>. </p> <p>NAME parametri ushbu ramkaga murojaat qilish uchun ishlatilishi mumkin bo'lgan freym nomini belgilaydi. Odatda havola xuddi shu sahifada joylashgan boshqa ramkadan o'rnatiladi. Masalan:</p> <p><FRAME SRC="sample.htm" NAME="Frame_1">. </p> <p>Ushbu yozuv havola qilinishi mumkin bo'lgan "Frame_1" nomli ramka yaratadi. Masalan:</p> <p>Yuklab olish uchun shu yerni bosing</p> <p>other.htm faylini Frame_1 nomli ramkaga kiriting.</p> <p>Kadr nomiga ishora qiluvchi TARGET parametriga e'tibor bering. Agar freymga nom berilmagan bo'lsa, nomsiz ramka hosil bo'ladi va unga boshqa freymdan murojaat qilish mumkin bo'lmaydi. Ramka nomlari harf-raqamli belgi bilan boshlanishi kerak.</p> <p>MARGINWIDTH va MARGINHEIGHT parametrlari ramka chetlarining kengligini belgilash imkonini beradi. Bu quyidagicha yoziladi:</p> <p>MARGINWIDTH = "qiymat",</p> <p>bu erda "qiymat" piksellardagi mutlaq qiymatdir. Masalan:</p> <p>Ushbu ramkaning yuqori va pastki qismida 5 piksel, chap va o'ngda esa 7 piksel bo'lgan chetlari mavjud. Esda tutingki, biz bu erda chegaralar haqida emas, balki chegaralar haqida gapiramiz. MARGINWIDTH va MARGINHEIGHT parametrlari ramka ichidagi bo'sh joyni belgilaydi, unda hech qanday ma'lumot joylashmaydi. Ushbu parametrlar uchun minimal qabul qilinadigan qiymat bitta.</p> <p>Agar ramka tarkibi ajratilgan maydonga to'liq mos kelmasa, freymlar avtomatik ravishda aylantirish panellarini yaratadi va ko'rsatadi. Ba'zan bu sahifa dizaynini buzadi, shuning uchun aylantirish paneli ko'rinishini boshqarish qulay bo'ladi. Ushbu maqsadlar uchun SCROLLING parametridan foydalaniladi. Yozib olish formati:</p> <p><FRAME SCROLLING="YES|NO|AUTO">. </p> <p>SCROLLING parametri uchta qiymatni qabul qilishi mumkin: YES, NO yoki AUTO. AUTO qiymati hech qanday SCROLLING parametri bo'lmagandek ta'sir qiladi. YES qiymati aylantirish satrlari kerak yoki yo'qligidan qat'iy nazar paydo bo'lishiga olib keladi va YO'Q ularning paydo bo'lishiga to'sqinlik qiladi. Masalan:</p> <p><FRAME SCROLLING=YES>. </p> <p>Odatda foydalanuvchi sahifani ko'rayotganda ramkalar hajmini o'zgartirishi mumkin. Agar siz sichqoncha kursorini ramka ramkasiga qo'ysangiz, kursor o'lchamini o'zgartirish imkoniyatini ko'rsatadigan shaklga ega bo'ladi va ramkani kerakli joyga ko'chirishga imkon beradi. Bu ba'zan chiroyli mo'ljallangan ramkalar tuzilishini buzadi. Foydalanuvchining ramkalar hajmini o'zgartirishiga yo'l qo'ymaslik uchun NORESIZE parametridan foydalaning:</p> <p><FRAME NORESIZE>. </p> <p>Ushbu parametr hech qanday qiymatlarni talab qilmaydi. Tabiiyki, kadrlardan biri uchun NORESIZE parametri o'rnatilgan bo'lsa, u holda qo'shni freymlarning o'lchamini ham o'zgartirib bo'lmaydi. Ba'zan kadrlarning joylashuviga qarab, ularning birortasining ekranda o'lchamlarini o'zgartirishning oldini olish uchun kadrlardan birida NORESIZE parametridan foydalanish etarli bo'ladi.</p> <p><b>teg <NOFRAMES> </b></p> <p>Ramkalar bilan ishlash qobiliyati HTML 3.0 yoki HTML 3.2 standartida nazarda tutilmagan. Bu erda, yaqin vaqtgacha, haqiqatda ishlatilgan xususiyatlar ko'plab WWW sahifalarida faol qo'llaniladigan, ammo standartning bir qismi bo'lmagan odatiy holat mavjud edi. Bu shuni anglatadiki, brauzerlar qonuniy ravishda ramkalarni e'tiborsiz qoldirishi mumkin edi. HTML 4.0 standartining paydo bo'lishi bilan vaziyat o'zgardi - endi ramka tuzilmalarini qo'llab-quvvatlash standartda mustahkamlangan. E'tibor bering, ko'pgina zamonaviy brauzerlar HTML 4.O paydo bo'lishidan oldin ham ramkalarni tanigan. Biroq, freymlarni qo'llab-quvvatlamaydigan brauzerlardan foydalangan holda foydalanuvchilarga ma'lumot berish kerak. Bunday brauzerlar uchun teglar juftligi o'rtasida yozilgan muqobil ma'lumotlarni taqdim etish mumkin <NOFRAMES>Va. Bu shunday ko'rinadi:

</p> <p>butun HTML hujjati</p> <p>

Hammasi teglar orasiga joylashtirilgan Va, ramkani qo'llab-quvvatlash qobiliyatiga ega bo'lmagan brauzerlar tomonidan ko'rsatiladi. Frame-dan xabardor brauzerlar ushbu teglar orasidagi barcha ma'lumotlarni e'tiborsiz qoldiradilar.

E'tibor bering, haqiqiy hayotda HTML sahifa ishlab chiquvchilari ko'pincha tegning imkoniyatlaridan foydalanmaydi ramka tuzilmalarisiz sahifalar yaratish, lekin ularning HTML hujjatlarining ikkita versiyasini yaratish. Ushbu variant uchun <a href="https://whatsappss.ru/uz/browser/kak-sdelat-stranicu-startovoi-v-mozile-ustanovka-nachalnoi-stranicy-v.html">bosh sahifa</a> Odatda sizga ramka tuzilishi bilan yoki bo'lmagan hujjatni yuklash tanlovi taklif etiladi. Keyin, foydalanuvchining tanloviga qarab, hujjatning faqat bitta versiyasi yuklanadi.</p> <p><b><span>Ramka tuzilmalarini tavsiflash xususiyatlari</span> </b></p> <p>Ramka tuzilmalarini tavsiflashda foydalaniladigan eng muhim teglardan biri tegdir <FRAME>. Teg bir qancha parametrlarga ega, ularning hech biri talab qilinmaydi yoki boshqalarga bog'liq emas, lekin ularni yozishda bir qancha narsalarni hisobga olish kerak.</p> <p>Ma'lum bo'lishicha, agar siz keyinchalik hujjat yuklanishi mumkin bo'lgan ramka yaratishingiz kerak bo'lsa, masalan, boshqa freymning buyrug'i bilan siz tegdan foydalanishingiz kerak. <FRAME>SRC parametrini yozing. Agar bu</p> <p>parametr o'tkazib yuborilgan bo'lsa, ramka yaratilmaydi, garchi u uchun bo'sh joy qoladi. Masalan, rekord kabi <FRAME NAME="B">Bu juda mantiqiy va dastlab hech qanday hujjat yuklanmagan "B" nomli ramkani belgilashi mumkin. Biroq, SRC parametri yo'qligi sababli, bunday nomdagi ramka mavjud bo'lmaydi, shuning uchun unga biron bir hujjatni yuklashga keyingi urinishlar muvaffaqiyatsiz bo'lib qoladi va bu ramka uchun ajratilgan oynada bo'sh joy bo'sh qoladi. Bundan tashqari, ba'zi brauzerlar (masalan, Windows Z.xx uchun Microsoft Internet Explorer-ning 3-versiyasi) hujjatni bunday ramkaga yuklashga urinayotganda xato xabarini ko'rsatadi va chiqadi.</p> <p>SRC parametrini o'rnatish talabini mantiqiy ravishda tushuntirib bo'lmaydi, shuning uchun bu haqiqatga e'tibor berish yaxshidir. Keyin, hatto boshidan bu ramkaga yuklanishi kerak bo'lgan hujjat bo'lmasa ham, SRC parametrida fayl nomini ko'rsatishingiz kerak. Masalan, bunday faylni empty.htm (bo'sh) deb atash mumkin, uning mazmuni mumkin bo'lgan minimal to'g'ri HTML hujjati bo'ladi, xususan:</p> <p><HTML> </p> <p><HEAD> </p> <p></HEAD> </p> <p><BODY> </p> <p></BODY> </p> <p></HTML> </p> <p>Ushbu hujjatni ikkita tegga qisqartirishingiz mumkin: <HTMLX/HTML>, bu ham haqiqiy HTML hujjati bo'ladi. "Bo'sh" hujjatning hajmini maksimal darajada kamaytirish yo'lidan o'tib, siz o'zingizni bo'sh joy belgisini (yoki boshqa ko'rsatilmaydigan belgilarni) saqlaydigan hajmi bir baytga teng bo'lgan fayl bilan cheklashingiz mumkin. Bu fayl haqiqiy HTML hujjati bo‘lmaydi, lekin ko‘pchilik brauzerlarda muammo tug‘dirmaydi. Keyinchalik bunday fayl hajmini nolga qisqartirish o'zini oqlamaydi, chunki u Netscape brauzeri tomonidan yuklanganda, hujjatda ma'lumotlar mavjud emasligi haqida ogohlantirish xabari (5.4-rasm) ko'rsatiladi.</p> <span> <img src='https://i0.wp.com/webnav.ru/books/html4/frames/08.gif' height="119" width="332" loading=lazy loading=lazy></span> <p><i><b>Guruch. 5. <span>4 . </b> Nol uzunlikdagi faylni yuklashda ogohlantirish xabari</span> </i></p> <p>Shu bilan birga, yoqilgan <a href="https://whatsappss.ru/uz/security/akkompanirovat-otpravit-kopiyu-na-moi-e-mail-avtomaticheskaya-otpravka-kopii.html">bu xabar</a> tugmani bosish orqali javob berishingiz kerak <Enter>yoki sichqoncha tugmasi. Hujjat qayta yuklanganda yoki brauzer oynasi o'lchamini o'zgartirganda, xabar yana paydo bo'ladi.</p> <p>Siz mavjud bo'lmagan fayl nomini ham ko'rsatishingiz mumkin, ammo bu holda Netscape brauzerida ogohlantirish xabari paydo bo'ladi (5.5-rasm), bu keyingi ishlashga to'sqinlik qilmaydi, lekin shunga o'xshash noqulayliklarga olib keladi.</p> <span> <img src='https://i0.wp.com/webnav.ru/books/html4/frames/09.gif' height="139" width="314" loading=lazy loading=lazy></span> <p><i><b>Guruch. 5. <span>5 . </b> Mavjud bo'lmagan faylni yuklab olishga urinayotganda ogohlantirish xabari</span> </i></p> <p><i><b>Maslahat</b> </i></p> <p><i> <span>O'lchami bir bayt bo'lgan va bo'sh joy belgisini o'z ichiga olgan empty.htm faylini yarating. Teg yozishda buni qoidaga aylantiring <FRAME>Agar ma'lum bir fayl nomini darhol ko'rsatishning iloji bo'lmasa, har doim SRC=empty.htm ni belgilang.</span> </i></p> <p>Ramkalarga misollar</p> <p>Ushbu bo'limda ramka ta'riflarining ba'zi tipik misollari keltirilgan.</p> <p>Keling, ushbu bo'limning boshida keltirilgan misolga qaytaylik (5.3-rasm). Ushbu misolda ichki o'rnatilgan tuzilma qo'llaniladi <FRAMESET>. Tashqi teg <FRAMESET>ko'rish maydonining umumiy balandligining mos ravishda 25, 50 va 25 foizini tashkil etadigan uchta balandlik qatorini yaratadi:</p> <p><FRAMESET ROWS="25%,50%,25%">. </p> <p>Ushbu ta'rif doirasida birinchi va oxirgi qatorlar oddiy ramkalardir:</p> <p><FRAME SRC="header.htm"> <FRAME SRC="footer.htm"> </p> <p>Ushbu chiziqlarning har biri ekranning butun kengligini to'ldiradi. Ekranning yuqori qismidagi birinchi qator balandlikning 25 foizini, pastki qismidagi uchinchi qator ham balandlikning 25 foizini egallaydi. Biroq, ularning o'rtasida ichki yorliq mavjud <FRAMESET>: </p> <p><FRAMESET COLS="25%,75%"> </p> <p><FRAME SRC="list.htm"> </p> <p><FRAME SRC="info.htm"> </p> <p></FRAMESET> </p> <p>Bu teg ekranning o'rta qatori bo'lingan ikkita ustunni belgilaydi. Ushbu ikkita ustunni o'z ichiga olgan qator tashqi tegda belgilanganidek, ekran balandligining 50 foizini egallaydi. <FRAMESET>. Chap ustun ekran kengligining 25 foizini ishlatadi, o'ng ustun esa qolgan 75 foizni egallaydi.</p> <p>Ushbu ustunlar uchun ramkalar o'rnatilgan teglar juftligida aniqlanadi <FRAMESET>Va</FRAMESET>, birinchi va oxirgi qator uchun ramkalar ta'rifi bu juftlikdan tashqarida, lekin tashqi tomonda yozilgan bo'lsa-da <FRAMESET>tegishli tartibda.</p> <p>Agar siz uni ichki blok deb hisoblasangiz, yozuv tuzilishini tushunish oson <FRAMESET>alohida element sifatida <FRAME>. Bizning misolimizda tashqi teg <FRAMESET>uchta qatorni belgilaydi. Ularning har biri to'ldirilishi kerak. Bunday holda, ular birinchi navbatda alohida element bilan to'ldiriladi <FRAME>, keyin - ichki blok sifatida <FRAMESET>ikkita ustun kengligi va keyin boshqa element <FRAME>. </p> <p>Endi SRC teg parametrining qiymati bo'lishi mumkinmi degan savol tug'ilishi mumkin <FRAME>fayl nomini o'rnating, bu esa o'z navbatida ramka tuzilishining tavsifini o'z ichiga oladi. Ha, bu qabul qilinadi. Bu holda teg <FRAME>ramka tuzilishi bo'lgan va alohida ramka sifatida ishlatiladigan HTML hujjatiga ishora qilish uchun ishlatiladi.</p> <p>Keling, misolga qaytaylik va ichki o'rinni almashtiramiz <FRAMESET>alohidaga <FRAME>. Tabiiyki, bir o'rniga ikkita HTML fayli kerak bo'ladi, chunki ichki o'rnatilgan <FRAMESET>endi alohida hujjatda joylashgan bo'ladi. Mana birinchi (tashqi) faylning mazmuni:</p> <p><HTML> </p> <p><HEAD> </p> <p></HEAD> </p> <p><FRAMESET ROWS="25%,50%,25%"> </p> <p><FRAME SRC="header.htm"> </p> <p><FRAME SRC="frameset.htm"> </p> <p><FRAME SRC="footer.htm"> </p> <p></FRAMESET> </p> <p><NOFRAMES> </p> <p>Brauzeringiz ramkalarni ko'rsata olmaydi</p> <p>

Frameset.htm deb nomlangan ikkinchi fayl quyidagi kodni o'z ichiga oladi:

Bunday holda, yuqori va pastki chiziqlar bir xil harakat qiladi. Ammo ikkinchi qator endi boshqalar kabi oddiy ramka. Biroq, SRC parametri bilan ko'rsatilgan frameset.htm fayli o'zining ramka tuzilishini belgilaydi. Natijada, ekran asl misoldagi kabi ko'rsatiladi.

Eslatma

Printsipial jihatdan o'rnatilgan tuzilmalarni yaratish mumkin , teglar yordamida , bu ramka tuzilishini tavsiflovchi bir xil faylga ishora qiladi, lekin buni qilmaslik kerak. Bu holat cheksiz rekursiyaga olib keladi va keyingi ishlashga imkon bermaydi. Ba'zi brauzerlar bu vaziyatni nazorat qiladi va muvaffaqiyatsizlik ehtimolini oldini oladi. Agar SRC ga yozilgan manzil kadrlar ierarxiyasidagi oldingi manzillardan biriga mos kelsa, u holda SRC parametri umuman mavjud bo'lmagandek e'tiborga olinmaydi.

Maslahat

O'rnatilgan tuzilmalardan foydalanish turli xil kombinatsiyalarda tasavvur qilinadigan deyarli har qanday ramka panjarasini yaratish mumkin. Shu bilan birga, foydalanuvchi uchun qulay interfeys yaratishni unutmang va shunchaki ramkalar bilan ishlash qobiliyatingizni namoyish eting.

Oddiy to'rtburchaklar ramkalar panjarasini yaratish misoli:

Ushbu misol ikki qator va uchta ustunli ramka panjarasini yaratadi (5.6-rasm). Oltita ramkalar to'plami aniqlanganligi sababli, oltita alohida ramkani ham aniqlash kerak . E'tibor bering, ramka ta'riflari satr satr bilan berilgan. Ya'ni, birinchi teg birinchi qatordagi birinchi ustunning mazmunini belgilaydi, ikkinchisi ikkinchi ustunning mazmunini belgilaydi, uchinchisi esa birinchi qatorning oxirgi ustuni uchun ma'lumotlarni aniqlaydi. Keyin oxirgi uchta ramka ikkinchi qatorning ustunlarini to'ldiradi.


Guruch. 5. 6 . 2 dan 3 gacha ramka panjarasi

Shuni ham yodda tutingki, COLS parametridagi foiz qiymatlarining yig'indisi 100 emas, faqat 90 foizni tashkil qiladi. Buning hech qanday yomon joyi yo'q, chunki brauzer ushbu qarama-qarshilikni bartaraf etish uchun ustunlar kengligini avtomatik ravishda mutanosib ravishda o'zgartiradi.

Kadrlardan foydalanishda navigatsiya xususiyatlari

Ramka tuzilishiga ega bo'lgan hujjatlar bilan ishlash siz bilishingiz kerak bo'lgan ba'zi xususiyatlarga ega. JB ning bu xususiyatlari asosan hujjatlarni yuklashda navigatsiyada namoyon bo'ladi. Navigatsiyadagi sezilarli farqlar nafaqat turli brauzerlar, balki xarakterlidir turli versiyalar bir xil brauzer.

Netscape brauzerining 3.x va 4.x versiyalari Orqaga tugmasini bosganingizda hujjatni oxirgi marta bajarilgan ramkaga qaytaradi. Har qanday freymda kontekst menyusini chaqirganda Orqaga bandi tanlansa, xuddi shu harakatlar bajariladi. Eslatib o'tamiz, kontekst menyusi sichqonchaning o'ng tugmachasini bosish orqali chaqiriladi. Shunday qilib, kontekst menyusi qaysi kadrda chaqirilganidan qat'i nazar, "Orqaga" tugmasini bosish oxirgi amalni, hatto u boshqa kadrda bajarilgan bo'lsa ham bekor qiladi.

Netscape 2.x brauzeri butunlay boshqacha ishladi. Kontekst menyusi oxirgi amalni bekor qilishdan ko'ra hujjatni joriy kadrga qaytaradigan "Kadrga orqaga" buyrug'ini o'z ichiga oladi.

Netscape-ning istalgan versiyasida siz tanlangan ramkadagi hujjatga xatcho'p qo'yishingiz mumkin. Buning uchun yuqorida aytib o'tilgan kontekst menyusidan Xatcho'p qo'shish rejimini tanlashingiz kerak. Agar siz shunchaki brauzerning asosiy menyusidan Xatcho‘p qo‘shish rejimini tanlasangiz, hujjatda ramka tuzilishi tavsifi bilan xatcho‘p qo‘yiladi. , bu ma'lum bir ramkaga aniq ishora qilmaydi. Alohida ramkaning hujjatida xatcho'p yaratish qobiliyati ushbu xatcho'pdan foydalanishni davom ettirganingizda bir xil ramka tuzilishi paydo bo'lishini anglatmaydi. Xatcho'p bilan ko'rsatilgan hujjat ramka tuzilishidan tashqarida to'liq oynaga yuklanadi.

Kadrlar orasidagi o'zaro ta'sir

WWW da ma'lumotlarni ko'rishning eng oddiy shakli o'qish sahifalari va quyidagi havolalardan iborat bo'lib, ularda brauzer oynasidagi joriy hujjat boshqa hujjat bilan almashtiriladi. Ramkalar bilan ishlashda siz hujjatlarni yuklash sxemasini qulayroq tashkil qilishingiz mumkin.

Kadrlar orasidagi o'zaro ta'sir boshqa freymdan buyruqlar yordamida tanlangan kadrga hujjatlarni yuklash qobiliyatidir. Buning uchun TARGET teg parametridan foydalaniladi<А>. Ushbu parametr ushbu havola orqali ko'rsatilgan hujjat yuklanadigan freym yoki brauzer oynasining nomini belgilaydi. Odatiy bo'lib, agar TARGET parametri bo'lmasa, hujjat joriy ramkaga (yoki oynaga) yuklanadi. Bu standart tegni belgilash orqali bekor qilinishi mumkin TARGET parametrining kerakli qiymati bilan. Ko'p sonli havolalar hujjatlarni ma'lum bir freymga yo'naltirish kerak bo'lganda yuklanadigan standart ramka nomini ko'rsatish juda foydali. Bitta freymdagi tarkiblar jadvali bilan bog'liq odatiy holat, tegishli hujjatlarni qo'shni ramkaga yuklaydigan havolalar ushbu bobning boshida ko'rsatilgan (5.1-rasm). Ushbu bo'limdagi misol uchun LIST.htm nomli fayl uchun quyidagi qatorni yozish tavsiya etiladi: . Aks holda, har bir havola uchun TARGET parametrini belgilashingiz kerak bo'ladi.

Ramka nomlari lotin harfi yoki raqami bilan boshlanishi kerak. Ism mavjud oyna yoki ramkaning nomi bo'lishi mumkin yoki yangi oyna ochiladigan yangi nom ko'rsatilishi mumkin. Belgilanganda maxsus harakatlarni bajaradigan to'rtta zahiralangan nom mavjud. Bu nomlar pastki chiziq (_) bilan boshlanadi: "_blank", "_self", "_parent" va "_top". Pastki chiziq bilan boshlangan har qanday boshqa nom haqiqiy emas.

TARGET="_bo'sh" - hujjatning yangi oynaga yuklanishini ta'minlaydi. Ushbu oynada nom bo'lmaydi va shuning uchun unga boshqa hujjat yuklash mumkin bo'lmaydi.

TARGET="_o'zim" - hujjat joriy ramkaga (yoki oynaga) yuklanadi. Ushbu yozuv teg tomonidan belgilangan standartni chetlab o'tish uchun ishlatilishi kerak .

TARGET="_top" - hujjatning to'liq oynaga yuklanishiga olib keladi. Agar hujjat allaqachon to'liq oynada bo'lsa, u holda bu qiymat bir xil ta'sirga ega"_o'zim".

TARGET="_ota-ona" - hujjatni joriy kadrning asosiy ramkasi egallagan maydonga yuklanishiga olib keladi. Agar ota-ona ramkasi bo'lmasa, bu parametr qiymati bir xil ta'sirga ega"_top" .

Eslatma

Ba'zi HTML manbalarida noto'g'ri aytilishicha, agar ramkada ota-ona bo'lmasa, "_parent" qiymati "_self" ga ekvivalentdir. Bu bayonot har doim ham to'g'ri emas.

Ogohlantirish

Zaxiralangan ramka nomlari "_blank", "_self", "_parent" va "_top" kichik lotin harflari bilan yozilishi kerak. E'tibor bering, bunday aniqlik faqat Netscape-ga xosdir. Microsoft Internet Explorer har qanday holatda yozilgan zahiradagi nomlarni to'g'ri taniydi.

Bu erda ramkalar va alohida brauzer oynalari o'rtasidagi o'zaro ta'sirga misollar keltirilgan. Quyidagi HTML kodini ko'rib chiqing:

Ramkalardan foydalanish

Ushbu HTML hujjati "A", "B" va "C" nomli uchta ramkadan iborat strukturani tavsiflaydi. Kadrlar orasidagi aloqalarni tashkil qilish uchun keyinroq ramka nomlari kerak bo'ladi. E'tibor bering, "A" deb nomlangan ramka bu misolda hech qanday havolalar bo'lmaydi, shuning uchun u umuman nomsiz qolishi mumkin edi. Yuqoridagi hujjatni brauzerga yuklaganingizda, ramkalar SRC parametri bilan aniqlangan fayllardagi ma'lumotlarni ko'rsatadi. "A" ramkasi frame_a.htm faylining mazmunini oladi, qolgan ikkita freym esa ko'rsatish uchun ma'lumotga ega bo'lmagan empty.htm faylidan ma'lumotlarni oladi. Yana bir bor eslatib o'tamizki, ramkalar tuzilishini tavsiflovchi HTML hujjatida bo'lim mavjud emas .

Mana frame_a.htm nomli fayl matni:

A ramka uchun hujjat

D

4. Hujjatni yangi oynaga yuklash

5. Hujjatni to'liq oynada yuklash

6. Hujjatni joriy kadrga yuklash

Ushbu hujjat bo'limlarga ega to'liq HTML hujjatidir Va va o'z navbatida, frame_a.htm fayli bilan bir xil katalogda joylashgan test.htm nomli faylga havolalar mavjud.

test.htm faylining matni juda oddiy:

Sinov hujjati

Sinov hujjat matni

Tarkibi "A" ramkasiga yuklangan frame_a.htm fayli TARGET parametri uchun turli qiymatlarga ega bir xil test.htm fayliga oltita havolaga ega.

Keling, ushbu havolalarni amalga oshirishda sodir bo'ladigan harakatlarni ko'rib chiqaylik. TARGET="B" qiymatiga ega birinchi havola test.htm faylini "in" nomli ramkaga yuklaydi. E'tibor bering, oltita havoladan birini amalga oshirgandan so'ng, Netscape brauzeri ularning oltitasini avtomatik ravishda boshqa rangga bo'yaydi, chunki ular bitta faylga ishora qiladi. Microsoft Internet Explorer faqat amalda amalga oshirilgan havolalarni belgilaydi.

Ikkinchi havola "C" ramkasi uchun xuddi shunday qiladi. Dastlab, "B" va "C" freymlarida hech narsa yo'q (aniqrog'i, empty.htm bo'sh faylining mazmuni yuklanadi). Birinchi va ikkinchi havolalarni amalga oshirish ushbu ramkalarni to'ldiradi.

TARGET=MD” qiymatiga ega uchinchi havola “D” nomli yangi brauzer oynasining shakllanishiga va unga test.htm faylini yuklanishiga olib keladi.E’tibor bering, bu havolani yozish shakli birinchisidan farq qilmaydi. ikki.Farqi shundaki, birinchi ikkita holatda nomlari freym tuzilishiga ega faylda aniqlangan mavjud kadrlarga havola qilingan va bu holda havola mavjud bo‘lmagan obyektga berilgan bo‘lsa. bu havola kamida bir marta amalga oshirilsa, keyin "D" nomli oyna yaratiladi va havolani qayta-qayta bosish faqat hozirda mavjud bo'lgan "D" oynasiga ma'lumotlarni qayta yuklaydi. Albatta, foydalanuvchi uni istalgan vaqtda yopishi mumkin. vaqtni belgilang va ushbu havolani tanlab, uni qayta yarating.5.7-rasmda dastlabki uchta havola amalga oshirilgandan keyingi holat ko'rsatilgan.Eslatib o'tamiz, ekrandagi oynalarning joylashuvi va o'lchamlari foydalanuvchi tomonidan belgilanadi.

Guruch. 5. 7 . Chap ramkada mavjud bo'lgan dastlabki uchta havolani ketma-ket amalga oshirishdan keyin olingan vaziyat

TARGET="_top" qiymatiga ega beshinchi havola hujjatni butun ramka tuzilishi o'rniga to'liq oynada yuklaydi. TARGET parametrining ushbu qiymati bilan yangi oyna yaratilmaydi. Orqaga tugmasini bosish orqali ramka tuzilishiga qaytish mumkin.

Eslatma

Ramkalar yoki brauzer oynalarining nomlarini yuklab olingan hujjatlar nomlari bilan aralashtirib yubormaslik kerak. Ramkalarning nomlari ko'rilganda hech qanday joyda ko'rinmaydi, ular faqat o'zaro aloqani tashkil qilish uchun talab qilinadi va shuning uchun foydalanuvchidan yashiriladi. Siz ularni faqat HTML-fayllarning manba matnini ko'rganingizda ko'rishingiz mumkin.

Maslahat

Eslatib o'tamiz, yuklab olingan hujjatlarning nomlari teg bilan belgilanadi . Agar hujjat to'liq oynada yuklangan bo'lsa, uning nomi brauzer oynasining eng yuqori qismida ko'rsatiladi. Agar hujjat ramkaga yuklangan bo'lsa, unda uning nomi hech qanday joyda ko'rsatilmaydi va hujjatning ramka tuzilishi tavsifini o'z ichiga olgan hujjatning sarlavhasi hali ham oynaning yuqori qismida joylashgan bo'ladi. Shuning uchun, ramkalarda ko'rish uchun mo'ljallangan hujjatlarning nomlari juda muhim emas. Misol uchun, rasmda. 5.7 Xuddi shu hujjat "B" va "C" ramkalariga, shuningdek, "D" nomli alohida oynaga yuklanadi, hujjatning nomi esa faqat "D" oynasida ko'rinadi. Biroq, freymlarga yuklangan hujjatlarning nomlarini qoldirmaslik tavsiya etilmaydi, chunki ular, masalan, ramkada yoki ko'rilgan hujjatlar ro'yxatida joylashgan hujjat uchun xatcho'p yaratishda Xatcho'plar ro'yxatida paydo bo'lishi mumkin.</span> </i></p> <p>Keling, ramkalar va brauzer oynalari o'rtasidagi o'zaro aloqani tashkil qilishning yana bir qiziqarli misolini ko'rib chiqaylik. Asosiy yuklangan HTML hujjatning matni bo'lsin:</p> <p><HTML> </p> <p><HEAD> </p> <p><TITLE>Oyna nomlaridan foydalanish

Yangi oynada ramka tuzilishiga ega hujjat

Ramkalardan foydalanish

E'tibor bering, agar asosiy hujjat standart HTML hujjat bo'lsa, u holda asosiy hujjatdagi havoladan yuklangan frame.htm fayli ramka tuzilishini o'z ichiga oladi va o'z navbatida empty.htm fayliga havola qiladi.

Asosiy hujjatni yuklagandan so'ng, brauzer oynasi rasmda ko'rsatilgandek ko'rinadi. 5.8 (chap oyna). Butun hujjat ikkita havoladan iborat. Keling, birinchi havolaga o'taylik. “D” nomli yangi oyna yaratiladi, unda test.htm faylining matni paydo bo'ladi (5.8-rasm, o'ng oyna). Ushbu havolani takrorlash faqat "D" oynasidagi ma'lumotlarni qayta yuklaydi.


Guruch. 5.8. O'zaro ta'sir qiluvchi ramka oynalariga misol

Keling, ikkinchi havolaga o'taylik. Nomsiz yangi oyna hosil bo'ladi, unga "C" va "D" nomli ikkita freymni belgilovchi frame.htm fayli yuklanadi (5.8-rasm, pastki oyna). Ikkala ramkada ham hech narsa yo'q (aniqrog'i, bo'sh hujjat empty.htm yuklangan). E'tibor bering, endi "D" deb nomlangan ochiq oyna va ramkali oyna mavjud bo'lib, ulardan biri ham "D" deb ataladi. Keling, yana birinchi havolaga o'taylik. Birinchi holatdan farqli o'laroq, ma'lumotlar "D" oynasiga emas, balki "D" nomli ramkaga yuklanadi. Ta'riflangan barcha harakatlarning natijasi rasmda ko'rsatilgan. 5.8.

Eslatma

Ochilgan oynalar va ularning mazmuni ko'rinishi ba'zan hatto foydalanuvchi harakatlarining tartibiga bog'liq bo'lishi mumkin. Xulq-atvorini oldindan aytish qiyin bo'lgan hujjatlar bilan ishlash, odatda, foydalanuvchi uchun asosli g'azabni keltirib chiqaradi va ishlab chiquvchilar tomonidan ma'lumotlar tuzilmasida o'ylanmaganligini ko'rsatadi.

Agar siz harakatlar tartibini o'zgartirsangiz, ya'ni birinchi navbatda ikkinchi havolani, keyin esa birinchisini bajarsangiz, "D" nomli oyna umuman paydo bo'lmaydi! Bu sodir bo'ladi, chunki ikkinchi havolani amalga oshirgandan so'ng, "D" nomli ramka yaratiladi va birinchi havola uchun yangi oyna ochishga hojat qolmaydi.

Bu misol umuman namuna emas, faqat o'zaro ta'sirni tashkil etishning mumkin bo'lgan murakkabligini ko'rsatadi. Aksincha, siz ma'lumotlarni tashkil qilishni ortiqcha murakkablashtirmaslikka harakat qilishingiz kerak, natijada foydalanuvchi harakatlarining tartibiga qarab o'zgarib turadigan vaziyatlarni yaratmaslik kerak.

Maslahat

Ramka va oyna nomlarida to'qnashuvlardan saqlaning. Xuddi shu nomdagi ramkalarga ega bo'lish rasmiy ravishda taqiqlanmagan bo'lsa-da, bu chalkashlikka olib kelishi mumkin.

Ogohlantirish

Ramka va oyna nomlari katta-kichik harflarni hisobga olgan holda taqqoslanadi. Shunday qilib, masalan, "frame_1" va "Frame_1" nomli ramkalar boshqacha bo'ladi.

Ramkalar orasidagi murakkabroq shovqinlarga misollar

Ramkalar orasidagi o'zaro ta'sirning juda oddiy tipik misollari yuqorida muhokama qilindi. Yangi oynalar yaratish, alohida ramkalar tarkibini almashtirish, shuningdek, hujjatni butun ramka tuzilishini yo'q qilish bilan to'liq oynada ko'rsatish vazifalari ko'rib chiqildi. Maxsus ramka nomlaridan, shuningdek, "_blank", "_self" va "_top" zahiralangan nomlaridan foydalanishga misollar keltirilgan. Oxirgi zahiradagi "_parent" nomidan foydalanish ancha murakkab va quyida tavsiflanadi.

Ushbu bo'limda ramkalar orasidagi o'zaro ta'sirning yanada murakkab variantlari ko'rib chiqiladi. Xususan, bir nechta qo'shni ramkalar tarkibini almashtirish amalga oshiriladi.

Ushbu bobda aytib o'tilgan freymlarning eng keng tarqalgan qo'llanilishidan biri ikkita freym bo'lib, ulardan birida havolalar ro'yxati, ikkinchisida esa hujjatlarning o'zi mavjud (5.1-rasm).

Keling, muammoni shakllantirishni kengaytirishga harakat qilaylik. Faraz qilaylik, siz bo'limlarga bo'lingan bo'limlardan iborat juda katta hujjatning mazmunini ekranda ko'rsatishni xohlaysiz. Oddiy misol - ma'lum bir mavzu bo'yicha texnik adabiyotlar. Keling, ekranda bunday hujjatning kerakli taqdimotini tasvirlab beramiz. Ekranni uchta ramkaga ajratamiz, ulardan birida kitob bo'limlari ro'yxati, ikkinchisida - tanlangan bobning bo'limlari ro'yxati, uchinchisida - tanlangan bo'lim matni bo'ladi. Ikkinchi freymdagi havolani tanlaganingizda, uchinchi kadrning mazmuni o'zgarishi kerak. Ushbu talabni amalga oshirish ahamiyatsiz. Birinchi freymdagi havolani tanlaganingizda, ikkinchi va uchinchi kadrlarning mazmuni bir vaqtning o'zida o'zgarishi kerak. Bir qarashda, ushbu vazifani HTMLda amalga oshirish mumkin emas (JavaScript yoki boshqalarda dasturlashdan foydalanmasdan), chunki havola bajarilganda ikkita yoki undan ko'p emas, faqat bitta hujjat yuklanadi. Shunga qaramay, bu muammoni hal qilish juda mumkin.

Keling, oddiy misol yordamida bunday muammoning mumkin bo'lgan echimini ko'rsatamiz. Aytaylik, siz ekranda uchta freymni ko'rsatishni va ularga ba'zi hujjatlarni yuklashni xohlaysiz. Keling, ushbu freymlarning har birida havolalar yaratish vazifasini qo'yaylik, ularni amalga oshirish, masalan, ikkita freymning mazmunini almashtirdi. Birinchi ramka deraza kengligining 50% va balandligining 100% ni egallab, derazaning chap tomoniga joylashtirsin. Oynaning o'ng yarmi ham gorizontal ravishda yarmiga bo'lingan va ikkita boshqa ramkani o'z ichiga oladi. Ushbu tuzilma quyidagi kod bilan tavsiflanadi:

Ushbu HTML kod yordamida kerakli struktura yaratiladi, ammo muammoni hal qilish mumkin emas. O'rnatilgan strukturani olib tashlash kerak alohida faylga aylantiring va ushbu HTML kodida yaratilgan faylga ishora qiluvchi ramkani tavsiflang. Keyin dastlabki hujjat matni quyidagicha ko'rinadi:

Kadrlar orasidagi o'zaro ta'sirga misol

Ichki tuzilishga ega yaratilgan fayl 1_2.htm nomiga ega va quyidagi kodni o'z ichiga oladi:

1-2

Bir qarashda, hech narsa o'zgarmadi. Ikkala holatda ham hujjatlar mos ravishda left.htm, 1.htm va 2.htm yuklanadigan uchta ramka mavjud. Biroq, ramkalar o'zaro ta'sir qilganda, farq paydo bo'ladi. Agar birinchi holatda freymlarning hech birida ota-ramka bo'lmasa, ikkinchi holatda ikkita ramka uchun ota-ona "Two_Frames" nomli ramka bo'ladi. Shuning uchun, agar ikkita freymdan birida siz TARGET parametr qiymati "_parent" ga teng bo'lgan havolani qo'llasangiz, birinchi va ikkinchi holatlar uchun natija boshqacha bo'ladi. Birinchi holda, bunday havolani amalga oshirish hujjatni to'liq oynaga yuklaydi, mavjud ramka tuzilishini almashtiradi. Bu erda "_parent" qiymat xususiyati o'ynaydi, u ota-ona ramkasi bo'lmaganda "_top" kabi ishlaydi. Ikkinchi holda, ekranning o'ng yarmini egallagan va asosan ikkita ramkadan iborat bo'lgan "Two_Frames" nomli ramka almashtiriladi.

Ikkinchi holat rasmiy ravishda birinchisidan, shuningdek, murojaat qilish mumkin bo'lgan "Two_Frames" nomli ramka mavjudligi bilan farq qiladi. Aynan shu xususiyat bizga muammoni hal qilish imkonini beradi.

Mana, dastlab ko'rib chiqilayotgan freymlarning birinchisiga yuklangan left.htm faylining mazmuni:

Chap ramka

hujjatlar oynaning o'ng tomonida joylashgan ikkita ramkada.

Hujjat joylashuvi variantini tanlang:

1 _2.htm" TARGET="Two_Frames">1-2-variant

Variant 2-1

2-1<TITLE> </p> <p></HEAD> </p> <p><FRAMESET ROWS="*,*"> </p> <p><FRAME SRC="2.htm"> </p> <p><FRAME SRC="1.htm"> </p> <p></FRAMESET> </p> <p></HTML> </p> <p>E'tibor bering, 1_2.htm va 2_1.htm fayllar matni faqat 1.htm va 2.htm fayllarga havolalar tartibida farqlanadi.</p> <p>Keling, chap ramkaga yuklangan hujjatning qurilishini ko'rib chiqaylik. U TARGET="Two_Frames" parametri bilan ikkita havolani o'z ichiga oladi. Ushbu havolalardan har qandayining amalga oshirilishi “Two_Frames” (bu ekranning o'ng yarmi) freymining joylashgan joyida ikkita ramka hosil qiladi, u yoki bu tartibda 1.htm va 2.htm hujjatlarni yuklaydi. Shunday qilib, 1-2-variantni tanlashda 1.htm hujjati yuqori o'ng ramkaga, 2.htm esa o'ng pastki ramkaga yuklanadi. 2-1-variantni tanlaganingizda, hujjatlar tartibi o'zgaradi. Natijada, variantlarning muqobil tanlovi ikkita ramkadagi hujjatlar o'rnini o'zgartirayotgandek taassurot qoldiradi. Biz erishmoqchi bo'lgan ta'sir aynan shu (5.9-rasm).</p> <p>Ta'riflangan misol uchun 1.htm va 2.htm hujjatlarining mazmuni muhim emas. Biroq, masalan, ahamiyatsiz hujjatlar o'rniga biz bir xil harakatlarni amalga oshiradigan havolalar bilan hujjatlarni yaratamiz.</p> <p>1.htm fayl matni:</p> <p><HTML> </p> <p><HEAD> </p> <p><TITLE>Hujjat 1

Hujjat 1

Variant 1-2

Variant 2-1

2.htm fayli 1.htm dan faqat sarlavhada farqlanadi.

Ota-ramkaga ishora qiluvchi TARGET="_parent" qiymatiga ega ikkita havola mavjud. Bu havolalar ota-ramkaning aniq nomi bilan ham yozilishi mumkin, ya'ni TARGET="Ikki_Fram", lekin yashirin nomdan foydalanish odatda qulayroqdir. Misol uchun, agar siz chap freymdan (hujjat left.htm) havolalarni chiqarib tashlasangiz, asosiy ramka tuzilishini tavsiflashda ko'rsatilgan "Two_Frames" freym nomini o'tkazib yuborishingiz mumkin. Bu nomsiz ramka hosil qiladi, lekin TARGET="_parent" bilan 1.htm va 2.htm hujjatlaridagi havolalar hali ham to'g'ri ishlaydi.

Maslahat

Iloji bo'lsa, yashirin ramka nomidan foydalaning. Masalan, aniq nomlarni ko'rsatish o'rniga "ota-ona", "yuqori", "o'zini".


Guruch. 5.9. Yuklangan hujjatlarni o'zgartirish effekti bilan o'zaro ta'sir qiluvchi ramka oynalari

Ramkalar va brauzer oynalari o'rtasidagi farq

Ramkalar bilan ishlashda brauzer oynasining ramka tuzilishini tashkil qilish va bir nechta oyna yaratish o'rtasidagi tub farq haqida savol tug'iladi. Bir qarashda, siz bir nechta oyna yaratish qobiliyatiga ega bo'lishingiz mumkin, chunki derazalar va ramkalar bilan ishlash juda o'xshash. Har bir freym alohida hujjatni yuklashni talab qiladi, tarkibni mustaqil ravishda aylantirish imkoniyatiga ega va boshqa freymlar buyruqlari bilan o'zgartirilishi mumkin. Ramkalarning bu xossalari brauzer oynalarinikiga o'xshaydi. Ma'lumotlarni jadval shaklida tashkil qilish bilan bunday harakat erkinligiga erishish mumkin emas.

Biroq, ramkalar va derazalar o'rtasida sezilarli farq bor. Kadrlarni tashkil qilishda ko'rish maydonini ramkalarga bo'lish o'lchamlari va ularning joylashishini ko'rsatgan holda HTML hujjatining o'zi tomonidan amalga oshiriladi. Ko'rish paytida foydalanuvchi ramkalar hajmini o'zgartirishi mumkin, agar bu ularning tuzilishi tavsifida taqiqlangan bo'lmasa. Derazalarning joylashishi Windows tizimi bilan ishlashning umumiy qoidalari bilan belgilanadi - foydalanuvchi har qanday oynani to'liq ekranga kengaytirishi, uni piktogrammaga kamaytirishi yoki o'zboshimchalik bilan uning hajmi va joylashishini belgilashi mumkin. Windows, ramkalardan farqli o'laroq, bir-birining ustiga chiqishi mumkin. Tanlovning bu boyligi o'zining salbiy tomoniga ega - optimal ko'rish opsiyasiga erishish uchun har safar oynalarni ekranga qo'lda joylashtirishingiz va ularning hajmini o'zgartirishingiz kerak. Ramkalar bo'lsa, optimal o'lcham nisbati odatda ishlab chiquvchi tomonidan ramka tuzilishi tavsifida ko'rsatiladi va ko'pincha o'zgartirish kerak emas.

Maslahat

Ramkalar alohida oynalar bilan ishlash uchun barcha imkoniyatlarni taqdim eta olmasa ham, ularning oqilona tashkil etilishi foydalanuvchi uchun maksimal qulaylik yaratadi.

Deraza bilan ishlashning boshqa kamchiliklari ham bor. Har bir oynani yaratish juda ko'p xotirani talab qiladi. Netscape'da har bir oyna mohiyatan brauzerning boshqa nusxasi bo'lib, tugmalar va menyularning to'liq to'plami bilan to'la. Xuddi shu holat Microsoft Internet Explorer uchun xosdir.

E'tibor bering, brauzerlarda alohida oynalarni tashkil qilish boshqacha tarzda amalga oshiriladi. Hujjat bilan yangi oyna yaratish Windows tizimida alohida vazifaning paydo bo'lishiga olib keladi, buni bajarilgan vazifalar ro'yxatini ko'rishda ko'rishingiz mumkin. Shuning uchun, derazalar o'rtasida almashish turli vazifalarni almashtirish bilan bir xil tarzda amalga oshirilishi mumkin, masalan, klaviatura yorlig'ini bosish +.

Ko'pgina mashhur Windows ilovalari hujjat oynasi tushunchasiga ega. Masalan, Microsoft Word matn protsessori yoki Paint Shop Pro grafik dasturi va boshqalar. Ushbu ilovalarning har biri bir vaqtning o'zida bir nechta oynalarni ma'lumotlar bilan ishlatishga imkon beradi va qoida tariqasida, oynalar ro'yxatini taqdim etadigan va ular o'rtasida almashish imkoniyatini beruvchi Oyna menyusi mavjud. Bunday ilovalarda yangi oynani yaratish odatda mavjud faylni ochish yoki yangisini yaratishda sodir bo'ladi. Biroq, bu dasturlarda, yangi oyna yaratilganda, yangi ishlaydigan vazifa yaratilmaydi.

Netscape-da, shuningdek, mavjud oynalar ro'yxatini ko'rsatadigan Oyna menyusi mavjud. (Netscape 4.x versiyalarida bu xususiyat Communicator menyusidagi Window bandi tomonidan taqdim etiladi.) Keling, rasmga qaytaylik. 5.8. Ushbu misolda bir vaqtning o'zida uchta oyna ochiq, ularning har biri asosan alohida brauzerdir. Biroq, foydalanuvchi uchun ularning barchasi bir xil brauzer oynalari bo'lib, ular bir-biri bilan o'zaro aloqada bo'lishi mumkin. Ushbu oynalarning har qandayida siz Oyna menyusini ochishingiz va uchta oyna ro'yxatini ko'rishingiz mumkin. Shaklda. 5.10-rasmda pastki oyna uchun bajarilgan vaziyat ko'rsatilgan.


Guruch. 5.10. Netscape brauzerida Windows ramkasini ochish

Har bir oynani alohida yopish mumkin (Fayl menyusidagi Yopish buyrug'i yordamida). Brauzer bilan ishlashni istalgan oynada tugatish uchun Fayl menyusini ochib, Chiqish-ni tanlashingiz mumkin (5.11-rasm).

Agar bir nechta oyna ochiq bo'lsa, ularning hammasi yopiladi, lekin bundan oldin ogohlantirish xabari paydo bo'ladi (5.12-rasm).

Har bir brauzer oynasi o'z sozlamalariga ega bo'lishi mumkin (barchasi bo'lmasa ham). Anjirga qarang. 5.11. Ikkita oyna ochiq, ulardan biri uchta ramkaga bo'lingan. Xuddi shu hujjat uchta ramkaning ikkitasida, shuningdek, alohida oynada yuklanadi. Har bir oynaning parametrlarini mustaqil ravishda sozlash qobiliyati bir xil hujjatni boshqacha ko'rsatishga imkon beradi. Yuqoridagi misolda bitta oynadagi hujjatning shrift o'lchami ikkinchisiga qaraganda kattaroqdir. Bu effekt har bir oyna uchun turli xil kodlashlarni o'rnatish orqali erishiladi (Options menyusining Hujjatni kodlash bandi yoki 4.x versiyasi uchun Ko'rish menyusining Belgilar to'plami), ikkala kodlash bir xil shriftdan foydalangan holda, lekin har xil o'lchamlarda. Umumiy sozlamalar menyusidagi istalgan elementni o'zgartirish barcha oynalarga ta'sir qiladi.


Guruch. 5.11. Netscape brauzeridan chiqish

Guruch. 5.12. Netscape brauzerida oynalarni yopish haqida ogohlantirish

Qo'shimcha brauzer xususiyatlari

Tegishli parametrlarga ega yuqoridagi barcha ramka tavsif teglari Netscape va Microsoft Internet Explorer brauzerlarida deyarli bir xil tarzda amalga oshiriladi, ammo bu brauzerlarning har biri qo'shimcha ravishda o'ziga xos teglar yoki parametrlardan foydalanishga imkon beradi.

Netscape brauzerining xususiyatlari

Netscape brauzeri, 3.0 versiyasidan boshlab, uchta qo'shimcha variantni beradi: BORDER, FRAMEBORDER va BORDERCOLOR. BORDER parametri faqat teg uchun amal qiladi . BORDER parametrining qiymati kadrlar orasidagi chegaralarning piksellardagi qalinligini aniqlaydi.

FRAMEBORDER parametri tegda ham ishlatilishi mumkin , va tegda va ramkalar orasidagi ramka mavjudligini aniqlaydi. Ushbu parametr Ha yoki YO'Q bo'lishi mumkin. Agar parametr tegda yozilgan bo'lsa , keyin uning ta'siri ushbu guruhdagi barcha ramkalar uchun amal qiladi. Alohida ramka uchun qiymatni bekor qilish mumkin. Standart qiymat Ha.

E'tibor bering, BORDER va FRAMEBORDER parametrlari bir-biridan mustaqil ishlaydi. Misol uchun, agar FRAMEBORDER NO ga o'rnatilgan bo'lsa va BORDER noldan boshqa qiymatga o'rnatilgan bo'lsa, u holda freymlar orasidagi chegara chizilmaydi, lekin BORDER parametr qiymati bilan belgilangan bo'sh joy baribir unga ajratiladi.

BORDERCOLOR parametridan tegdagi kabi foydalanish mumkin , va tegda va chegara rangini belgilaydi, uni rang nomi yoki uning o'n oltilik ko'rinishi bilan belgilash mumkin.

Mana bir misol:

Ushbu HTML kodning birinchi qatori uchta freymni bildiradi, ular orasida 10 pikselli qalin ramka uchun bo'sh joy mavjud (5.13-rasm).


Guruch. 5.13. Netscape brauzerida ramkalar orasidagi chegaralarni chizish

"A" va "B" ramka oynalari o'rtasida FRAMEBORDER parametrining NO qiymati tufayli hech qanday ramka chizilmaydi, ammo qizil rang ramka uchun aniqlanadi. Oxirgi "c" ramkasi uchun FRAMEBORDER qiymati Ha ga o'rnatiladi va birinchi qatorda o'rnatilgan qiymatni bekor qiladi. Shuning uchun, "B" va "C" deb nomlangan ramkalar o'rtasida qalinligi 10 piksel bo'lgan qizil ramka hali ham chiziladi.

Eslatma

Agar ramkalar orasidagi chegaralar chizilmagan bo'lsa, Netscape brauzeri NORESIZE parametri bo'lmasa ham, sichqoncha bilan sudrab o'lchamini o'zgartirishga ruxsat bermaydi. Microsoft Internet Explorer uchun vaziyat boshqacha.

E'tibor bering, chegarasiz ramkalar juda kam qo'llanilmaydi. Shuni esda tutish kerakki, freymlarning yo'qligi aylantiruvchi chiziqlar paydo bo'lishiga to'sqinlik qilmaydi (5.14-rasm).


Guruch. 5.14. Chegarasiz ramkadagi aylantirish paneli

Microsoft Internet Explorer brauzerining xususiyatlari

Microsoft Internet Explorer brauzeri FRAMEBORDER parametridan yuqorida tavsiflangan maqsadlarda foydalanish imkonini beradi, lekin ramkalarning rangi va qalinligini belgilashga imkon bermaydi. Biroq, ramka chizishni bekor qilish uchun FRAMEBORDER parametri uchun qiymat sifatida faqat "O" raqamli qiymati yoki ramka chizish uchun nolga teng bo'lmagan raqamli qiymatdan foydalanish mumkin.

Turli xil brauzerlar uchun FRAMEBORDER parametrining qiymatlarini o'rnatish qoidalaridagi farq juda yoqimsiz. Masalan, FRAMEBORDER=Ha o'rnatishga harakat qilib ko'ring. Ushbu yozuv Netscape uchun to'g'ri, ammo Microsoft Internet Explorer uchun bu ramkaning yo'qligiga olib keladi. Microsoft Internet Explorer-da ko'rilgan oldingi misol (5.13-rasm) ramkasiz taqdim etiladi.

Maslahat

FRAMEBORDER parametrining qiymatini har doim raqamli shaklda yozish tavsiya etiladi, masalan, FRAMEBORDER=0. Bu Microsoft Internet Explorer uchun parametr yozish qoidalariga amal qiladi, lekin Netscape qoidalarini buzadi (garchi u ikkinchisi tomonidan to'g'ri qabul qilingan bo'lsa ham).

Eslatma

Agar ramkalar orasidagi ramkalar chizilmagan bo'lsa, Microsoft Internet Explorer brauzeri (Netscape-dan farqli o'laroq), NORESIZE parametri bo'lmasa, sichqoncha bilan freymlarni sudrab, ramkalarning o'lchamlarini "tegish" imkonini beradi. Sichqoncha ko'rsatgichining shaklini o'zgartirib, ramka bo'lishi kerak bo'lgan joyni topishingiz mumkin.

Microsoft Internet Explorer brauzeri tegda yozilgan qo'shimcha FRAMESPACING parametridan foydalanishga imkon beradi , uning qiymati bo'sh qoldirilishi kerak bo'lgan freymlar orasidagi piksellar sonini aniqlaydi.

Keling, misol keltiraylik, uning natijasi rasmda ko'rsatilgan. 5.15.

Kadrlar orasidagi masofani o'zgartirish


Guruch. 5.15. Microsoft Internet Explorer-da ramkalar orasidagi bo'sh joy

Eslatma

Afsuski, HTML tilining koʻpgina tavsiflari tegda FRAMESPACING parametridan foydalanilishi lozimligini notoʻgʻri koʻrsatadi. . Microsoft Internet Explorer bu parametrdan faqat tegda foydalanishga ruxsat beradi .

Suzuvchi ramkalar

Microsoft Internet Explorer brauzeri noyob tegdan foydalanishga imkon beradi . TEGS da

Microsoft Internet Explorer "suzuvchi" deb ataladigan ramkalarni qo'llab-quvvatlaydigan birinchi brauzer (va hozircha yagona).

Bu ramkalar grafik va jadvallar kabi ekranning istalgan joyiga joylashtirilishi mumkin.

Ushbu matnning o'ng tomonidagi ramka maxsus teg yordamida sahifaga joylashtiriladi

O'rtasidagi asosiy farq