Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии программирования / источники / ++ Введение в стандарты Web 1-38 / 34 +Проек, компон и представ форм с пом CSS.rtf
Скачиваний:
183
Добавлен:
10.05.2015
Размер:
34.01 Mб
Скачать

Когда слишком много вариантов выбора: select/option

<label for="natureOfInquiry">General

subject:</label>

<select name="subject" class="medium" id="natureOfInquiry">

<option value="support">Support</option>

<option value="billing">Accounts & billing</option>

<option value="press">Press</option>

<option value="other_q">Other questions</option>

</select>

Элементы select и option предлагают результаты, аналогичные тем, которые предоставляет последовательность радио-кнопок, занимая при этом значительно меньше места. Выбор элемента select вместо последовательности радио-кнопок часто является вопросом того, как используется пространство интерфейса пользователя; длинный список географических областей или отделов на сайте е-коммерции обычно лучше подходит для элементов select, в то время как более короткие последовательности выбора (например, да/нет, true/false, диапазон возраста, диапазон дохода) должны представляться в виде радио-кнопок.

Тщательное самотестирование покажет, что для манипулирования списком select требуется достаточно высокий уровень точного управления движением, но он увеличивается не так существенно, по сравнению с количеством содержащихся в нем вариантов. Практический результат состоит в том, что короткие списки взаимно исключающих вариантов лучше всего форматируются как последовательности радио-кнопок с подходящим образом написанными метками.

Объединение последовательности элементов управления: fieldset

Основное назначение элемента fieldset состоит в задании единого контекста последовательности тесно связанных элементов управления (элементы управления text для номера телефона, элементы select для даты, и т.д.).

Начинаем с самого начала, заканчиваем готовой формой

Теперь, когда новый материал этой статьи очерчен в общих чертах, пришло время рассмотреть этот материал в действии - двенадцать следующих демонстраций показывают различные концепции дизайна и проблемы оформления, которые встречаются при разработке формы Web.

Читателям настоятельно рекомендуется самостоятельно использовать демонстрационный материал для экспериментов с правилами таблиц стилей.

Эти демонстрации представлены в порядке исходного кода, а не в том порядке, в котором были написаны таблицы стилей. Причины и последствия этого отклонения обсуждаются в дальнейшем в статье.

Демонстрация 1

Начиная с правила, которое содержит html { margin: 0; padding: 0; }, первый шаг состоит в оформлении body, содержащего страницу.

Так выглядит страница без дополнительного оформления.

И код соответствующей страницы.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<title>CSS Technique Demonstration: Forms</title>

<link rel="stylesheet" type="text/css" href="bmh.form.styles.00.css" />

<!--[if IE]><link rel="stylesheet" type="text/css"

href="form_prog_styles_ie.css" /><![endif]-->

</head>

<body>

<h3>Contact Us</h3>

<form id="contactForm" method="post" action="/cgi-bin/generic_email_script.php">

<ul>

<li id="nameField" class="required"><label for="realname">Name:</label>

<input type="text" name="name" value="" class="medium" id="realname" />

<span class="note">required</span></li>

<li id="addressField" class="required"><label for="address">Email:</label>

<input type="text" name="email" value="" class="medium" id="address" />

<span class="note">required</span></li>

<li id="acctTypeField" class="required"><label for="acctNone">Account type:</label>

<fieldset>

<label for="acctGold">Gold</label><input type="radio" name="acct_type" id="acctGold" class="rInput" />

<label for="acctSilver">Silver</label><input type="radio"

name="acct_type" id="acctSilver" class="rInput" />

<label for="acctBronze">Bronze</label><input type="radio" name="acct_type" id="acctBronze" class="rInput" />

<label for="acctNone">None</label><input type="radio" name="acct_type" id="acctNone"

class="rInput" checked="checked" />

</fieldset>

<span class="note">required</span>

</li>

<li id="subjectField"><label for="natureOfInquiry">General subject:</label>

<select name="subject" class="medium" id="natureOfInquiry">

<option value="support">Support</option>

<option value="billing">Accounts & billing</option>

<option value="press">Press</option>

<option value="other_q">Other questions</option></select>

</li>

<li id="availabilityField"><label for="availability">My account is unavailable:</label>

<input type="checkbox" name="is_down" id="availability" class="rInput" /></li>

<li id="messageField"><label for="messageBody">Comments:</label>

<textarea name="comments" cols="32" rows="8" class="long" id="messageBody"></textarea></li>

<li class="submitField"><input type="submit" value="Send" class="submitButton" /></li>

</ul>

</form>

</body>

</html>

Пример 34.1. (html, txt)

Форма с применением оформления body.

Добавлены новые стили оформления:

body {

margin: 0;

padding: 1.714em;

background-image: url(images/bg_grid.gif);

font-size: 14px;

font-family: Helvetica,Arial,sans-serif;

line-height: 1.714em;

}