SlideShare a Scribd company logo
1 of 11
Таблицы и фреймы 
По материалам курса University of 
Washington http://www.cs.washington.edu/education/courses 
/cse190m/07sp/index.shtml
Таблицы 
Таблицы следует использовать в том случае, если размещаемый 
материал имеет табличную природу: расписание, глоссарий,... 
Таблицы не следует использовать для размещения материала на 
странице, для этого лучше использовать позиционирование блоков. 
Таблица – это блочный элемент <table>, содержащий внутри себя 
строки – блочные элементы <tr>, которые, в свою очередь, содержат 
внутри себя элементы данных – ячейки (строчные элементы <td>). 
Пример таблицы: расписание занятий. 
<table> 
<caption>Расписание занятий</caption> 
<tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> 
<tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> 
<tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> 
</table> 
Все, что находится вне ячеек таблицы, размещается перед таблицей. 
Например, элемент <caption> в примере, приведенном выше, задает 
заголовок таблицы.
Заголовки и стили 
Кроме собственно заголовка таблицы, можно некоторые ячейки помечать 
как заголовки. По умолчанию они выделяются жирным шрифтом 
и центрируются. 
<table> 
<caption>Расписание занятий</caption> 
<tr><th>День</th><th>Предмет</th><th>Время</th></tr> 
<tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> 
<tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> 
<tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> 
</table> 
С помощью стилей можно задать вид таблицы и отдельных ее элементов. 
Например: 
table { caption-side: bottom; border: 2px solid; } 
th { font-size: larger; background-color: yellow; } 
td { background-color: #e0e0e0; color: blue; } 
caption { font-size: 16pt; font-style: italic; } 
IE не понимает указание положения заголовка caption-side! 
table.html
Коллапс границ 
По умолчанию границы ячеек отстоят друг от друга и от границы самой 
таблицы на некоторое расстояние. Это легко увидеть, если задать границу 
ячеек и таблицы: 
table { border: 1px solid black; } 
td { border: 1px solid black; } 
С помощью задания стиля border-collapse можно убрать промежутки 
между границами: 
table { border-collapse: collapse; border: 1px solid black; } 
td { border: 1px solid black; } 
collapse.html 
Стиль, при котором границы таблицы и отдельных ячеек разделены, 
задается значением border-collapse: separate; (принят по 
умолчанию). При этом можно задавать ширину промежутка между 
ячейками таблицы с помощью стиля border-spacing, например 
table { border-collapse: separate; 
border: 1px solid black; 
border-spacing: 0.2cm 1em; }
Колонки 
Вообще говоря, таблица состоит из строк (<tr>). Но для задания стилей 
для отдельных колонок можно указать отдельные элементы для разных 
колонок и групп колонок в таблице (<col>, <colgroup>). 
columns.html 
<table> 
<caption>Расписание занятий</caption> 
<col class="firstcol"/> 
<colgroup class="maincolumns"><col/><col/></colgroup> 
<tr><th>День</th><th>Предмет</th><th>Время</th></tr> 
<tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> 
<tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> 
<tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> 
</table> 
Чаще всего это используется для задания ширины отдельных колонок, 
но может также использоваться для выделения колонок цветом, задания 
специфического шрифта и т.д.
Слияние ячеек 
Для некоторых отдельных ячеек можно указать, что данные занимают 
несколько рядов и/или колонок. Для этого в элементе <td> задают 
атрибуты rowspan и colspan, например: 
spans.html 
<table> 
<caption>Расписание занятий</caption> 
<col class="firstcol"/> 
<colgroup class="maincolumns"><col/><col/></colgroup> 
<tr><th>День</th><th>Предмет</th><th>Время</th></tr> 
<tr><td rowspan="2">Понедельник</td> 
<td>Алгебра</td><td>15:00</td></tr> 
<tr><td>Геометрия</td><td>15:00</td></tr> 
<tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> 
<tr><td>Пятница</td> 
<td colspan="2">Физкультура - целый день</td></tr> 
</table>
Фреймы 
Страница может быть разбита визуально на несколько областей, в каждую 
из которых помещается содержание отдельной страницы. Структура 
разбиения задается в отдельном HTML-файле, а уже в нем имеются ссылки 
на страницы, формирующие содержимое. 
frames.html 
<html> 
<head> 
<title>Расписание занятий</title> 
</head> 
<frameset cols="350,*"> 
<frame src="contents1.html"/> 
<frame src="contents2.html" name="frame2"/> 
</frameset> 
</html> 
Замечания: 
1. Элементом frameset’а может быть frameset, что позволяет получать 
различные структуры разбиений. 
2. Браузер может не поддерживать фреймы (это очень старые браузеры). 
3. Если в страницу включен DTD, то это специальный Frameset DTD. 
4. Элемент <body> включается только для элемента <noframes>.
Управление поведением и видом фреймов 
По умолчанию каждый фрейм имеет границу, размер его можно менять 
динамически и, если содержимое страницы не помещается во фрейм, то 
к нему автоматически добавляются полосы прокрутки (scrollbars). 
Все это можно задавать с помощью атрибутов элемента <frame> (не CSS!) 
frames-attr.html 
<frameset rows=“200,*"> 
<frame src="frame1.html" frameborder="0" noresize="noresize"/> 
<frameset cols="25%,75%"> 
<frame src="frame2.html" name="frame2" scrolling="no"/> 
<frame src="frame3.html" name="frame3" marginwidth="50"/> 
</frameset> 
</frameset> 
Атрибут Возможные значения 
frameborder 0, 1 
noresize noresize 
scrolling yes, no, auto 
marginwidth, marginheight размер в пикселях
Загрузка страниц во фреймы 
При переходах по гиперссылкам можно указывать, в какое окно загружать 
целевую страницу, с помощью атрибута target. 
<a href="..." target="_blank"> Загружает страницу в новое окно 
<a href="..." target="_self"> Загружает страницу в текущее окно 
<a href="..." target="_top"> Загружает страницу на место 
главной («вырваться» из фреймов) 
<a href="..." target="name"> Загружает страницу в окно (фрейм) 
targets.html 
с именем name 
Того же эффекта можно добиться, используя метод open в программах 
на Javascript. 
window.open(url, name); 
где аргумент url соответствует атрибуту href, а аргумент name – 
атрибуту target. 
buttons.html
Особенности программирования 
Программы, исполняющиеся в разных фреймах, независимы друг от друга, 
они используют разный глобальный контекст, объект window у них свой. 
Тем не менее, можно получить ссылку на контекст другого окна, используя 
связь «родитель – ребенок». 
Если хотим изнутри фрейма получить ссылку на «родительское» окно: 
window.parent; 
Если хотим из «родительского» окна получить доступ к документу фрейма: 
window.document.getElementById(frameId).contentDocument; 
IE не поддерживает этот W3C стандарт! 
Но в нем документ имеет массив фреймов, а у них есть атрибут document: 
window.document.frames[frameId].document;
Пример программирования 
Напишем функцию, которая работает в одном фрейме, и при этом 
определяет цвет фона для тела документа в другом фрейме. 
function findColor(frameName) { 
var frame = parent.document.getElementById(frameName); 
if (!frame) return 'white'; 
var color = frame.contentDocument.body.style.backgroundColor; 
if (!color) color = 'white'; 
return color; 
} 
Вот как подобная функция используется в примере (реальный пример 
сделан чуть-чуть сложнее, чем приведенная выше функция, чтобы 
обеспечить совместимость с IE): 
js-frames.html

More Related Content

Similar to Tables frames

Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2itc73
 
Css part2
Css part2Css part2
Css part2ISsoft
 
Как создать сайт
Как создать сайтКак создать сайт
Как создать сайтUnited Design
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрейVlado Sudin
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрейVlado Sudin
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSDenis Latushkin
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 
Crossbrowser Css layout
Crossbrowser Css layoutCrossbrowser Css layout
Crossbrowser Css layoutDarkestMaster
 
17. основы css (cascading style sheets)
17. основы css (cascading style sheets)17. основы css (cascading style sheets)
17. основы css (cascading style sheets)Sergei Dubrov
 
Лекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЛекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЯковенко Кирилл
 
Web осень 2012 лекция 8
Web осень 2012 лекция 8Web осень 2012 лекция 8
Web осень 2012 лекция 8Technopark
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-sideTechnosphere1
 
Внедрение CSS в HTML документ
Внедрение CSS в HTML документВнедрение CSS в HTML документ
Внедрение CSS в HTML документVasya Petrov
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1itc73
 

Similar to Tables frames (20)

Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2
 
Css part2
Css part2Css part2
Css part2
 
HTML - Гиперссылки
HTML - ГиперссылкиHTML - Гиперссылки
HTML - Гиперссылки
 
мова Html
мова Htmlмова Html
мова Html
 
Как создать сайт
Как создать сайтКак создать сайт
Как создать сайт
 
Vvedenie html 3
Vvedenie html 3Vvedenie html 3
Vvedenie html 3
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрей
 
сысоев андрей
сысоев андрейсысоев андрей
сысоев андрей
 
Основы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSSОсновы работы с таблицами стилей CSS
Основы работы с таблицами стилей CSS
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
Crossbrowser Css layout
Crossbrowser Css layoutCrossbrowser Css layout
Crossbrowser Css layout
 
17. основы css (cascading style sheets)
17. основы css (cascading style sheets)17. основы css (cascading style sheets)
17. основы css (cascading style sheets)
 
Лекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилейЛекция #4. Каскадные таблицы стилей
Лекция #4. Каскадные таблицы стилей
 
Web осень 2012 лекция 8
Web осень 2012 лекция 8Web осень 2012 лекция 8
Web осень 2012 лекция 8
 
Лекция 4 Client-side
Лекция 4 Client-sideЛекция 4 Client-side
Лекция 4 Client-side
 
HTML 2
HTML 2HTML 2
HTML 2
 
Внедрение CSS в HTML документ
Внедрение CSS в HTML документВнедрение CSS в HTML документ
Внедрение CSS в HTML документ
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1
 

More from Vasya Petrov

Настройка Apache и PHP
Настройка Apache и PHPНастройка Apache и PHP
Настройка Apache и PHPVasya Petrov
 
Создание сайта на PHP
Создание сайта на PHPСоздание сайта на PHP
Создание сайта на PHPVasya Petrov
 
Графика средствами PHP
Графика средствами PHPГрафика средствами PHP
Графика средствами PHPVasya Petrov
 
Графика средствами PHP
Графика средствами PHPГрафика средствами PHP
Графика средствами PHPVasya Petrov
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотекаVasya Petrov
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Оптимизация CSS
Оптимизация CSSОптимизация CSS
Оптимизация CSSVasya Petrov
 
Основные теги HTML
Основные теги HTMLОсновные теги HTML
Основные теги HTMLVasya Petrov
 
Работа с текстом в HTML
Работа с текстом в HTMLРабота с текстом в HTML
Работа с текстом в HTMLVasya Petrov
 
Rabota s massivami_v_php
Rabota s massivami_v_phpRabota s massivami_v_php
Rabota s massivami_v_phpVasya Petrov
 
Rabota so strokami_v_php
Rabota so strokami_v_phpRabota so strokami_v_php
Rabota so strokami_v_phpVasya Petrov
 
CSS Язык описания представлений
CSS Язык описания представленийCSS Язык описания представлений
CSS Язык описания представленийVasya Petrov
 
массивы Php
массивы Phpмассивы Php
массивы PhpVasya Petrov
 

More from Vasya Petrov (20)

О школе
О школеО школе
О школе
 
Настройка Apache и PHP
Настройка Apache и PHPНастройка Apache и PHP
Настройка Apache и PHP
 
Создание сайта на PHP
Создание сайта на PHPСоздание сайта на PHP
Создание сайта на PHP
 
Графика средствами PHP
Графика средствами PHPГрафика средствами PHP
Графика средствами PHP
 
Графика средствами PHP
Графика средствами PHPГрафика средствами PHP
Графика средствами PHP
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотека
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Оптимизация CSS
Оптимизация CSSОптимизация CSS
Оптимизация CSS
 
633942
633942633942
633942
 
Основные теги HTML
Основные теги HTMLОсновные теги HTML
Основные теги HTML
 
Работа с текстом в HTML
Работа с текстом в HTMLРабота с текстом в HTML
Работа с текстом в HTML
 
Rabota s massivami_v_php
Rabota s massivami_v_phpRabota s massivami_v_php
Rabota s massivami_v_php
 
Rabota so strokami_v_php
Rabota so strokami_v_phpRabota so strokami_v_php
Rabota so strokami_v_php
 
Javascript
JavascriptJavascript
Javascript
 
CSS Язык описания представлений
CSS Язык описания представленийCSS Язык описания представлений
CSS Язык описания представлений
 
массивы Php
массивы Phpмассивы Php
массивы Php
 
еще JavaScript
еще JavaScriptеще JavaScript
еще JavaScript
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Html списки
Html спискиHtml списки
Html списки
 

Tables frames

  • 1. Таблицы и фреймы По материалам курса University of Washington http://www.cs.washington.edu/education/courses /cse190m/07sp/index.shtml
  • 2. Таблицы Таблицы следует использовать в том случае, если размещаемый материал имеет табличную природу: расписание, глоссарий,... Таблицы не следует использовать для размещения материала на странице, для этого лучше использовать позиционирование блоков. Таблица – это блочный элемент <table>, содержащий внутри себя строки – блочные элементы <tr>, которые, в свою очередь, содержат внутри себя элементы данных – ячейки (строчные элементы <td>). Пример таблицы: расписание занятий. <table> <caption>Расписание занятий</caption> <tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> <tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> <tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> </table> Все, что находится вне ячеек таблицы, размещается перед таблицей. Например, элемент <caption> в примере, приведенном выше, задает заголовок таблицы.
  • 3. Заголовки и стили Кроме собственно заголовка таблицы, можно некоторые ячейки помечать как заголовки. По умолчанию они выделяются жирным шрифтом и центрируются. <table> <caption>Расписание занятий</caption> <tr><th>День</th><th>Предмет</th><th>Время</th></tr> <tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> <tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> <tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> </table> С помощью стилей можно задать вид таблицы и отдельных ее элементов. Например: table { caption-side: bottom; border: 2px solid; } th { font-size: larger; background-color: yellow; } td { background-color: #e0e0e0; color: blue; } caption { font-size: 16pt; font-style: italic; } IE не понимает указание положения заголовка caption-side! table.html
  • 4. Коллапс границ По умолчанию границы ячеек отстоят друг от друга и от границы самой таблицы на некоторое расстояние. Это легко увидеть, если задать границу ячеек и таблицы: table { border: 1px solid black; } td { border: 1px solid black; } С помощью задания стиля border-collapse можно убрать промежутки между границами: table { border-collapse: collapse; border: 1px solid black; } td { border: 1px solid black; } collapse.html Стиль, при котором границы таблицы и отдельных ячеек разделены, задается значением border-collapse: separate; (принят по умолчанию). При этом можно задавать ширину промежутка между ячейками таблицы с помощью стиля border-spacing, например table { border-collapse: separate; border: 1px solid black; border-spacing: 0.2cm 1em; }
  • 5. Колонки Вообще говоря, таблица состоит из строк (<tr>). Но для задания стилей для отдельных колонок можно указать отдельные элементы для разных колонок и групп колонок в таблице (<col>, <colgroup>). columns.html <table> <caption>Расписание занятий</caption> <col class="firstcol"/> <colgroup class="maincolumns"><col/><col/></colgroup> <tr><th>День</th><th>Предмет</th><th>Время</th></tr> <tr><td>Понедельник</td><td>Алгебра</td><td>15:00</td></tr> <tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> <tr><td>Пятница</td><td>Javascript</td><td>17:00</td></tr> </table> Чаще всего это используется для задания ширины отдельных колонок, но может также использоваться для выделения колонок цветом, задания специфического шрифта и т.д.
  • 6. Слияние ячеек Для некоторых отдельных ячеек можно указать, что данные занимают несколько рядов и/или колонок. Для этого в элементе <td> задают атрибуты rowspan и colspan, например: spans.html <table> <caption>Расписание занятий</caption> <col class="firstcol"/> <colgroup class="maincolumns"><col/><col/></colgroup> <tr><th>День</th><th>Предмет</th><th>Время</th></tr> <tr><td rowspan="2">Понедельник</td> <td>Алгебра</td><td>15:00</td></tr> <tr><td>Геометрия</td><td>15:00</td></tr> <tr><td>Среда</td><td>Матанализ</td><td>13:30</td></tr> <tr><td>Пятница</td> <td colspan="2">Физкультура - целый день</td></tr> </table>
  • 7. Фреймы Страница может быть разбита визуально на несколько областей, в каждую из которых помещается содержание отдельной страницы. Структура разбиения задается в отдельном HTML-файле, а уже в нем имеются ссылки на страницы, формирующие содержимое. frames.html <html> <head> <title>Расписание занятий</title> </head> <frameset cols="350,*"> <frame src="contents1.html"/> <frame src="contents2.html" name="frame2"/> </frameset> </html> Замечания: 1. Элементом frameset’а может быть frameset, что позволяет получать различные структуры разбиений. 2. Браузер может не поддерживать фреймы (это очень старые браузеры). 3. Если в страницу включен DTD, то это специальный Frameset DTD. 4. Элемент <body> включается только для элемента <noframes>.
  • 8. Управление поведением и видом фреймов По умолчанию каждый фрейм имеет границу, размер его можно менять динамически и, если содержимое страницы не помещается во фрейм, то к нему автоматически добавляются полосы прокрутки (scrollbars). Все это можно задавать с помощью атрибутов элемента <frame> (не CSS!) frames-attr.html <frameset rows=“200,*"> <frame src="frame1.html" frameborder="0" noresize="noresize"/> <frameset cols="25%,75%"> <frame src="frame2.html" name="frame2" scrolling="no"/> <frame src="frame3.html" name="frame3" marginwidth="50"/> </frameset> </frameset> Атрибут Возможные значения frameborder 0, 1 noresize noresize scrolling yes, no, auto marginwidth, marginheight размер в пикселях
  • 9. Загрузка страниц во фреймы При переходах по гиперссылкам можно указывать, в какое окно загружать целевую страницу, с помощью атрибута target. <a href="..." target="_blank"> Загружает страницу в новое окно <a href="..." target="_self"> Загружает страницу в текущее окно <a href="..." target="_top"> Загружает страницу на место главной («вырваться» из фреймов) <a href="..." target="name"> Загружает страницу в окно (фрейм) targets.html с именем name Того же эффекта можно добиться, используя метод open в программах на Javascript. window.open(url, name); где аргумент url соответствует атрибуту href, а аргумент name – атрибуту target. buttons.html
  • 10. Особенности программирования Программы, исполняющиеся в разных фреймах, независимы друг от друга, они используют разный глобальный контекст, объект window у них свой. Тем не менее, можно получить ссылку на контекст другого окна, используя связь «родитель – ребенок». Если хотим изнутри фрейма получить ссылку на «родительское» окно: window.parent; Если хотим из «родительского» окна получить доступ к документу фрейма: window.document.getElementById(frameId).contentDocument; IE не поддерживает этот W3C стандарт! Но в нем документ имеет массив фреймов, а у них есть атрибут document: window.document.frames[frameId].document;
  • 11. Пример программирования Напишем функцию, которая работает в одном фрейме, и при этом определяет цвет фона для тела документа в другом фрейме. function findColor(frameName) { var frame = parent.document.getElementById(frameName); if (!frame) return 'white'; var color = frame.contentDocument.body.style.backgroundColor; if (!color) color = 'white'; return color; } Вот как подобная функция используется в примере (реальный пример сделан чуть-чуть сложнее, чем приведенная выше функция, чтобы обеспечить совместимость с IE): js-frames.html