frames

36 отговора 797 прегледа
#1

frames

Възможно ли е когато се кликне върху хипервръзка от един фрейм, url-то да се отвори в друг фрейм, а фрейма с връзката да си остане непромен?

Отговор
в отговор на Nuke #2

Re: frames

da..az v4era imah tozi problem...az otidoh na properties na dadenija frame i ot tam mu zadadoh kyde da se otvori...danoi pri teb stane.

Отговор
в отговор на Nuke #3

Re: frames

az iskam da pitam edin drug problem s framovete:imam tri frema koito bjaha obedineni v edna straniza,oba4e po nevnimanie iztrih file sys stranizata,i sega imam tri visjasti frama,kak moga da gi obedina otnovo v edna straniza?

Отговор
в отговор на lyngstad #4

Re: frames

А бе пич, я си признай бързо: FrontPage или Dreamweaver ползваш?

Да не мислите, че всички хора работят с една и съща програма? От къде да знаем как си го бил направил?

А отварянето на линк в друг фрейм няма нищо общо с това, което си написал. <A HREF="..." TARGET="името на фрейма в който да се отвори този линк">текст</A>

БАба...

P.S. Ти сега пак ще се обидиш и ще кажеш, че всички в клуча имали лошо отношение, че никой не се е родил научен, че и останалите са тръгнали от нулата, че това ти е хоби и не е нужно да знаеш всичко и т.н. Обаче наистина има някои основни неща, които трябва да се знаят! Не е нужно да си пишеш кода на ръка, обаче поне трябва да знаете кое за какво служи... targget посочва къде да се отвори хипервръзката. За още малко инфо виж elementarni vuprosi....

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #5

Re: frames

<A HREF="..." TARGET="името на фрейма в който да се отвори този линк">текст</A> tova e taka,oba4e po-lesno e da si go zadadesh ot properties,systo stava ako ne pomnish to4nija sintazis na komandata (stava duma za dreamweaver).

Отговор
в отговор на lyngstad #6

Ами то е същото все пак?!

Може и да не знаеш синтаксиса, ама ако знаеш как се нарича параметъра (то е параметър, а не команда!) ще го намериш в Dreamweaver лесно! Защото и в програмата се нарича по абсолютно същия начин...



БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #7

Re: Ами то е същото все пак?!

Бабо Илийце,
аз трите фаила след 30 минутен зор ги обединих,ама ти си много на4етена и реших да те питам за ="120,*",като задавам големината выв frameset. 120-то е ясно за какво е ама *-това останалата част от листа ли ми дава?
Тук чета сега как става това на поддыржаш страницата на пове4е от един език,ама нещо не е понятно за мен,дай някоя идея къде да ги четем тези работи ( в смисъл някой подходяща образователна страница в интернет за начинаещи)!

Отговор
в отговор на lyngstad #8

Подробно за frameset и frame

Ми начи ="120,*" означава, че имаш два фрейма, като първия от двата е широк 120 пиксела, а втория е широк колкото остава от екрана. Може да се задава и в проценти ="40%,60%" Когато е в проценти можеш да напишеш и двете числа, защото си сигурен, че при всички екрани сбора от всички дължини е 100%, но когато работиш с точни величини (пиксели) не можеш предварително да знаеш колко ще бъде широк екранът на посетителя, затова задължително минимум един от двата фрейма трябва да бъде зададен с астериск. Астериск е името на символа, който обикновено наричат звездичка- *... Можеш да имаш и повече от два фрейма в един и същ фреймсет. Тогва ще имаш нещо от сорта на ="120,*,50". Астериск може да има за всеки от фреймовете. Попринцип не е редно да имаш повече от един астериск, но ако имаш повечето интелигентни браузъри го интерпретират като 1/n от оставащата част, където n е броят на астериските в стойността на параметъра. Къде може да се прочете повече: [линк] и msdn library на microsoft. И двете места са невероятни източници на информация, но и двете са на английски език. И понеже предполагам, че това с езика е проблем, а също знам, че за всички, които се занимават отскоро с html frames са нещо абсолютно загадъчно и непонятно, ще разкажа малко повече. Всъщност не знам защо предизвикват такова объркване, след като са изключително логични (frames), но като се връщам във времето си спомням, че някога и на мен ми се виждаха тъмна индия!

та значи за дефинирането на фреймовете има най-общо два тага: <frameset> и <frame>. Екранът на браузъра може да бъде разделен на неограничен брой части по вертикала и/или по хоризонтала. Във всяка част от така разделен екран се зарежда отделна страница (html файл). Освен заредените страници трябва да има и един html файл, който съдържа дефиницията за разделянето на екрана- frameset. Всъщност, когато екранът на брау,зъра е разделен на части (на frames) то в адрес бара му трябва да е изписан адреса на страницата (html файла), която съдържа кода на дефиницията- frameset.

Една дефиниция се състои най-малко от един frameset и два frames. Като за начало да разгледаме двата варианта които могат да бъдат получени от такава комбинация. А именно- екран разделен на две по хоризонтала и екран разделен на две по вертикала.

Започваме дефиницията с таг frameset:
<frameset cols="50%,50%">
Той има задължителен атрибут cols или rows този атрибут посочва дали тази дефиниция ще разделя екрана по хоризонтала или по вертикала. Не е правилно (не трябва) за един и същ frameset да се задават и двата артибута cols и rows. Трябва да бъде само единия от двата. Очевидно защото може да се прави разделяне или по хоризонтала или по вертикала, но не може и по двете едновременно! Когато е зададен атрибут cols, това означава, че разделянето ще бъде правено по вертикала- на колони. От там идва и наименованието на атрибута- columns от англ. голони. Когато се използва rows, това означава, че разделянето на екрана ще става по хоризонтала- разделяне на редове. Името пак идва от английската дума за редове- rows. Както вече стана дума атрибутите cols и rows трябва да имат стойност в следния формат: "число[мерна единица],число[мерна единица]" като всяко от числата може да бъде заменено със символа астериск (звездичка), но само едно от всичките. Когато за мерна единица е посочено %, тогава числото е пропорция от екрана на браузъра, а когато не е посочена мерна единица, числото показва брой пиксели. числата се разделят със запетайки и не се пишат никакви интервали, нито преди, нито след запетайките, както и няма интервали преди или след символа за процент. Числата трябва да бъдат най-малко две (за да има разделяне!) като едното може да бъде астериск.

Следват толкова на брой frame тага, колкото са числата и астериските в дефиницията. В момента разглеждаме простия пример, следователно имаме само два frame. Не забравяйте, че frame е таг без съдържание и няма отваряща и затваряща част. Затова синтактично е правилно да го изписваме с интервал и слеш (наклонена черта) накрая.
<frame src="url" />
<frame src="url" />
Този таг има един задължителен атрибут, който посочва пътя (адреса) на страницата (html файла), която трябва да се зареди в тази част от екрана. Това е атрибутът src- идва от английската дума source- източник. Стойността на атрибута може да бъде както относителен път съставен от ../../../ така и абсолютен адрес като [линк]... или file:///C:\My Documents/...

След това като за накрая затваряме дефиницията със затварящ таг frameset
</frameset>
---------------------------------------------------

Следващото, което ще разгледам са някои от основните атрибути на тага frame:
src="url" - това е задължителен атрибут, който посочва пътя или адреса до html файла, който ще се зареди в този фрейм.
name="window_name" - това е името на фрейма (на прозореца на фрейма). Тъй като всеки фрейм съдържа отделна страница, чисто софтуерно той се разглежда като отделен прозорец на браузъра. Това име се използва като стойност на атрибута target на хипервръзките, за да им се укаже в кой прозорец (frame) да се зареди страницата (адресът).
scrolling="yes|no|auto" - посочва дали този прозорец (frame) ще има скролбар. Когато е посочено no- няма да има, когато е посочено yes- ще има независимо дали има нужда от него или не. Когато е посочено auto ще има скрол бар, само когато съдържанието на страницата надхвърля наличното място на екрана.
noresize="yes|no" - попринцип този атрибут няма стойност, но тъй като XHTML изисква всеки атрибут да има стойност, може най-общо да му се задават стойностите yes и no. Обозначава, дали ще има възможност да се променя размера на frame.
---------------------------------------------------

Сега да разгледаме някои по-сложни frameset, които съдържат някакви комбинации от хоризонтално и вертикално разделяне. Най-общо казано всеки frame таг може да бъде заменен от нова дефиниция за разделяне. Като новата дефиниция трябва да съдържа разделяне в противоположната посока (иначе няма смисъл!). Ще разгледам 8 примера за различни по сложност и комбинативност framesets:

1.
<frameset cols="120,*">

<frame src="#" />
<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
Какво правим по редове:
1. Разделяме екрана на две колони
2. В първата колона зареждаме страница
3. Втората колона я разделяме на два реда
4. В първия ред от втората колона зареждаме страница
5. Във втория ред от втората колона зареждаме страница
6 и 7. затваряме дефинициите.

2.
<frameset rows="120,*">

<frame src="#" />
<frameset cols="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
Какво правим по редове:
1. Разделяме екрана на два реда
2. В първия ред зареждаме страница
3. Вторият ред разделяме на две колони
4. В първата колона от втория ред зареждаме страница
5. Във втората колона от втория ред зареждаме страница
6 и 7. затваряме дефинициите.

3.
<frameset cols="120,*,120">

<frame src="#" />
<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
<frame src="#" />
</frameset>
Какво правим по редове:
1. Разделяме екрана на три колони
2. В първата колона зареждаме страница
3. Разделяме втората колона на два реда
4. В първия ред от втората колона зареждаме страница
5. Във втория ред от втората колона зареждаме страница
6. Затваряме разделянето на редове
7. Зареждаме страница в третата колона
8. Затваряме основния frameset

4.
<frameset rows="120,*">

<frame src="#" />
<frameset rows="120,*,120">
<frame src="#" />
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
Какво правим по редове:
1. Разделяме екрана на два реда
2. В първия ред зареждаме страница
3. Разделяме вторя ред на три колони
4. В първата колона от втория ред зареждаме страница
5. Във втората колона от втория ред зареждаме страница
6. В третата колона от втория ред зареждаме странца
7 и 8. Затваряме двете отворени дефиниции

5.
<frameset cols="120,*">

<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
Какво правим по редове:
1. Разделяме екрана на две колони
2. Разделяме първата колона на два реда
3. В първия ред от първата колона зареждаме страница
4. Във втория ред от първата колона зареждаме страница
5. Затваряме разделянето на първата колона
6. Разделяме втората колона на два реда
7. В първия ред от втората колона зареждаме страница
8. Във втория ред от втората колона зареждаме страница
9. Затваряме разделянето на втората колона
10. Затваряме основния frameset

Същото може да се постигне и по друг начин- като първо се раздели на два реда, а след това всеки от тях на по две колони. Разликата е, че ако има възможност за промяна на размера на frame, в първия случай няма да съвпадат редовете, а във втория няма да съвпадат колоните!

6.
<frameset rows="120,*">

<frame src="#" />
<frameset cols="120,*">
<frame src="#" />
<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
</frameset>
Какво правим по редове:
1. Разделяме екрана на два реда
2. Зареждаме страница на първия ред
3. Разделяме втория ред на две колони
4. В първата колона от втория ред зареждаме страница
5. Разделяме втората колона от втория ред на два рада
6. Зареждаме страница в първия ред от втората колона във втория ред
7. Зареждаме страница във втория ред от втората колона от втория ред
8. Затваряме разделянето на втората колона от втория ред
9. Затваряме разделянето на втория ред
10. Затваряме основния frameset

7.
<frameset rows="120,*,120">

<frame src="#" />
<frameset cols="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
<frame src="#" />
</frameset>
Какво правим по редове:
1. Разеляме екрана на три реда
2. Зареждаме страница на първия ред
3. Разделяме втория ред на две колони
4. Зареждаме страница в първата колона от втория ред
5. Зареждаме страница във втората колона от втория ред
6. Затваряме разделянето на втория ред
7. Зареждаме страница в третия ред
8. Затваряме основния frameset

8.
<frameset rows="*,120">

<frameset cols="120,*">
<frame src="#" />
<frameset cols="120,*">
<frame src="#" />
<frame src="#" />
</frameset>
</frameset>
<frame src="#" />
</frameset>
Какво правим по редове:
1. Разделяме екрана на два реда
2. Разделяме първия ред на две колони
3. Зареждаме страница в първата колона от първия ред
4. Разделяме втората колона от първия ред на два реда
5. Зареждаме страница в първия ред от втората колона от първия ред
6. Зареждаме страница във втория ред от втората колона от първия ред
7. Затваряме разделянето на втората колона от първия ред
8. Затваряме разделянето на първия ред
9. Зареждаме страница във втория ред
10. Затваряме основния frameset
---------------------------------------------------

И накрая, трябва да спомена две думи и за тага noframes. Той се изписва след затварянето на последния frameset и съдържа HTML код, който се показва когато браузърът по някаква причина не поддържа страници съставени от frames. От тук следва, че <body></body> се пише в noframes тага! Т.е. една правилна дефиниция трябва да изглежда приблицително така:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//BG">

<html>
<head>
<title>Title</title>
</head>
<frameset rows="120,*">
<frame src="#" />
<frame src="#" />
<frameset>

<noframes>
<body>
Вашият браузър не поддържа frames!
</body>
<noframes>
</html>
---------------------------------------------------

И съвсем последно: очевидно на колкото и части да е разделена една страница- 2 или 200 броят на <frame> таговете в цялата дефиниция трябва да бъде точно равен на броя фреймове, защото във всеки един от тях трябва да бъде заредена по една страница.

Това е от мен... надявам се да съм бил изчерпателен. Освен посочените тук атрибути таговете frameset и frame имат и други специфични атрибути, които трябва да бъдат издирени в интернет. Лично моето мнение, което никога не съм крил е, че frames не са нещо, което е добре да се използва и лично ги използвам само тогава, когато няма абсолютно никакъв друг начин за реализирането на някакъв замисъл в определен web сайт.

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на lyngstad #9

&lt;base&gt; тагът!

Между другото, една HTML дефиниция, за която до сега не е ставало дума. Това е <base target="main">.

Има два начина за използването на т.нар. БАЗА:

1. Поставя се в <head> на страницата и означава, че всички хипервръзки от тази страница ще се зареждат във frame с име main. Естествено може да се използват и служебните стойности _self, _blank и _parent. От тук следва и отговора на въпроса защо има стойност _self за атрибута target, след като ако не е зададен този атрибут, по подразбиране хипервръзката е валидна за същия прозорец- защото "по подразбиране" може да бъде променено. Когато <base> се поставя в <head> То няма съдържание и е добре от гл.т. на синтаксиса да се затвори накрая с интервал и слеш: <base target="main" />

2. Може да се използва и вътре- в кода на <body>, като важи за всички тагове, които са оградени от <base>. От тук следват няколко логични извода:
2.1. Може да имаш повече от една БАЗА
2.2. Тези <base> имат затварящи тагове, защото имат съдържание!
Такива дефиниции са удобни при правенето на менюта за страници съставени от frames. Просто във frame, където е менюто, хипервръзките от менюто се заграждат с <base>, който сочи, че тази група от хипервръзки се зареждат във frame със съответното име- така че да се зареждат в мястото за съдържание! Ето един пример:
<body>

<a href="[линк]">1</a>
<a href="[линк]" target="_blank">2</a>
<base target="_blank">
<a href="[линк]">3</a>
<a href="[линк]" target="_self">4</a>
</base>
</body>
При такава конструкция първи и четвърти линк ще отварят google в същия прозорец, а втори и трети в нов прозорец. Защо?
1. Първият линк се отваря в същия, защото няма дефиниран target атрибут и следователно по подразбиране се зарежда в текущия прозорец.
2. Вторият линк ще се зареди в нов прозорец, защото изрично му е зададено с атрибута target="_blanc".
3. Третият линк ще се зареди също в нов прозорец. Независимо, че не му е зададен атрибут target, той се намира в <base> контейнер, който променя подразбиращата се стойност на target атрибута.
4. Четвъртият линк, независимо, че се намира в <base> контейнер, който променя подразбиращата се стойност на target атрибута, има зададен собствен такъв. По правилото, че най-близко до целта дефинираното има най-висок приоритет, дефиницията target="_self" променя поведението на четвъртата хипервръзка така, че тя се зарежда в текущата страница.
__________________________________

Между другото <base> тагът може да има и атрибут href="" което ще посочва какво да се добавя пред релативните пътища! Това не е лоша идея. Например ако имаме следното:
<base href="[линк]">

<a href="logo.gif">Логото на google</a>
</base>

То тази хипервръзка ще отваря логото на google независимо къде се намира страницата и независимо, че хипервръзката е с релативн път!

И отново накрая, нали е ясно, че един и същ <base> може да съдържа и двата атрибута target и href. А могат да се правят и произволно вложени комбинации с различни стойности на атрибутите до неузванаема и умопомрачаваща сложност!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #10

Re: Подробно за frameset и frame

Баба как не те мързи да го напишеш това всичкото?
Дано сега поне да им се изясни на хората. (то после ще питат к'во пък е XHTML).

Редактирано от wiz. на

Отговор
в отговор на wiz. #11

еми...

Ми гледай сега... и мен понякога ме избива на простотия :)

Трябваше да пиша един умопомрачаваш RegExp на Visual и само като си помисля за него ми се завива свят. И понеже не ми се пишеше RegExp- реших да напиша това :)

А ако случайно вече е възникнал въпрос що е то XHTML- Extended HTML или разширен HTML. Има няколко основни правила, които го отличават от HTML4. Не ги помня наизуст, обаче ако не ме лъже паметта бяха нещо от сорта:
1. Всички атрибути задължително са изписват със стойности в двойни кавички
2. Всички тагове се затварят <b></b> или <img />
3. Всички тагове и атрибути се изписват с малки букви
4. Всички атрибути имат задължително стойност
5. Вложеността на таговете да не се нарушава- последният отворен таг да се затваря пръв!

Естествено това не го пиша за wiz., защото съм убеден, че той го знае... ако нещо съм пропуснал- той ще ме допълни!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #12

Re: Подробно за frameset и frame

Брех, дано се намери модератор да я забие темата отгоре, че язък за толкова писане дето си изписал, ще потъне в небитието. Пък за фреймове май често се задават въпроси, то цял Туториал се е получило!

Отговор
в отговор на veskop #13

Re: Подробно за frameset и frame

Ми аз мога да го сложа и на babailiica.is.online.bg обаче:
1. Хората се оплакват, че от чужбина и от някои наши доставчици няма достъп до този адрес (нормално!)
2. Хората като идват в клуба пак ще питат и ще трябва да им се дава адреса!

Обаче в другите клубове съм виждал следното: най-отгоре стои една заключена тема и само модератора добавя в нея подбрани материали, които са написани като хората и има смисъл от тях. Та ако stipe се появи и прочете това и не го мързи... да действа!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на Nuke #14

Re: frames

Imam edin vertikalen frames,kydeto mi e pod menuto,oba4e ima dosta nesta i ako njakoj otvori stranizat ane v pulen format,polovinata ne se vizdat.Problema e ,4e njama kak da se razgleda zjaloto menu,nuzen mi e scroll "buton",kak da go postavja?1

Отговор
в отговор на me:-) #15

А бе хора!

А бе хора, значи опитах се да бъда търпелив и доброжелателен, обаче много ли искам от вас, като искам да си задавате въпросите като хората?
В отговор на:

Imam edin vertikalen frames,kydeto mi e pod menuto,oba4e ima dosta nesta i ako njakoj otvori stranizat ane v pulen format,polovinata ne se vizdat.Problema e ,4e njama kak da se razgleda zjaloto menu,nuzen mi e scroll "buton",kak da go postavja?1




1. Защо на латиница- за да не се разбира какво пише ли?
2. Текстът сам по себе си е набран с двата леви крака!
3. Нито знаем как ти е разположено менюто, нито как е разположен въпросният вертикален frames, който би трябвало да е в единствено число
4. Какво означава ane?
5. какво означава страница в пълнен форма- формат А4 ли?
6. "Половината не се вижда" 90% от съдържанието в интернет не се вижда без скролиране, така че ако си само на половината- не се притеснявай!
7. Че след запетайките се пише интервал явно не си чувал, както и че преди тях не се пише... същото важи и за точките!
8. Накрая има някаква единица. Ясно ми е, че е трябвало да бъде удивителна, ама мама му стара не поглеждате ли какво сте написали преди да го пуснете?
9. Проблемът естествено не разбрах какъв е!?
10. След всичко останало правописните грешки изобщо не им обръщам внимание!

БАба...

P.S. и като не можете да обясните, поне се научете да давате линкове, на които има пример на проблема! Нали се сещаш, че няма да ти открадна безценния HTML код- мога и сам да си напиша каквото ми трябва...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #16

Re: еми...

ако нещо съм пропуснал- той ще ме допълни!

Всъщност основната разлика е, че HTML е SGML приложение а XHTML е XML, но да не навлизаме в теория.

Отговор
в отговор на БaбaИлиицa #17

Re: А бе хора!

поне се научете да давате линкове, на които има пример на проблема!
Това ако се научат да го правят с времето може би ще се научат да пишат и на кирилица...

Отговор
в отговор на wiz. #18

Re: А бе хора!

abe kakyv link..to ako stranizata beshe na server ,zna4i njama problem...

Отговор
в отговор на Nuke #19

Re: frames

Dobre de priznavam beshe ne4etlivo,ili ne doobjasneno,nadjavam se taka njakoj da razbere za kakvo stava duma.Problema e,4e tova nesto ne stana kakto az iskah.Eto prmerna programka,...problema beshe v tova 4e vubste vyv fila ne mozah to4no da go vkaram kato opzija.Ima li njakakyv na4in tova da stane s funkzijte v menuto na Dreamweaver, (w smisul da izbegna da go pisha tova v komandoto menu), i wyobste tova deto go pisha vjarno li e?

P.S.....a za kirilizata :-( shefkata ne dava.Gonete neja!

<frameset norize border="0",rows="45,*",cols="155,*"
frameborder="0" framespacing="0" scrolling="no">
<frame src="indextop1.html" name="indextop1" noresize scrolling="no">
<frame src="indextop2.html" name="indextop1" noresize scrolling="no">
<frame src="indexleft.html" name="indexleft" noresize scrolling="yes">
<frame src="indexright.html" name="indexright" noresize scrolling="no">
</frameset>

Отговор
в отговор на me:-) #20

Re: frames

nuzen mi e scroll "buton",kak da go postavja?

Отваряш фреймсета в DreamWeaver у натискаш SHIFT+F12 , после сам трябва да се ориентираш, ако не - захвани се с нещо друго.

problema beshe v tova 4e vubste vyv fila ne mozah to4no da go vkaram kato opzija

???????????????????????????? !%*&^@@ -> после як смях - сетих че ,че отдавна не бях чел по-объркващо обяснение.

По нататък въобще не разбрах нищо ( не че преди това бях разбрал нещо де).

Съвет - остави програмите ако си нямаш представа как работят и какво правят (както в твоя случай) ! Те помагат, а не учат !

Отговор