Клуб друзей



Часто задаваемые вопросы (2)

Вопрос 11. Как в HTML сделать прозрачный или полупрозрачный объект. Это нужно для ввода каких-то данных, при этом, под диалоговым окном должен быть виден текст?
Ответ: Без DHTML здесь конечно не обойтись. Сделаем самую простую структуру адаптации к различным версиям браузера. Вот только работает это в MSIE начиная от 4-й версии. Можно сделать например так.
Текст в первой колонке первой строке Пусть это будет ссылка
Вы видите, что объект полупрозрачен, прозрачность 70%
При этом все элементы работают
Например кнопки, ссылки и др. Но, под
объектом активные элементы реагировать
на события не будут.
Для Netscape объект останется приблизительно на том же месте, но полупрозрачным его не сделать.

Вот приблизительно такой текст:

В заголовочной части между тегами <head> </head> пишем
<script language="JavaScript1.2">
<!--
var opt='';
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var topcss = 40;  // поправка позиции по Y для MSIE
if (ns)
        topcss = 50; //поправка позиции по Y для NN;
                     else
                  opt=' filter:alpha(opacity=30)'; // процент видимости


function showLayer(name)
{
        if (ie) 
                document.all[name].style.visibility = "visible";
        else if (ns)
                document.layers[name].visibility = "show";
}

// здесь в стилях задается точное позиционирование объекта в данном случае 450х250

s1='<style type="text/css">#shan { position:absolute;  left:450;  top:250; '+opt+'}</style>';
 
document.writeln(s1);
//-->
</script>
В теге <BODY>:
<BODY onload="showLayer('shan')">
Ну и сам объект может находиться в любой части документа, так, как функция showLauer() вызывается после полной загрузки:
<div id='shan'>
Любые объекты, которые нужно сделать полупрозрачными
</div>  
Для того, чтобы скрыть объект по какому либо событию, нужна еще функция аналогичная "showLauer()", только нужно заменить слово "visible" словом "hidden", а слово "show" - "hide" соответственно для различных типов браузеров.
   Извиняемся, но в вашем браузере этот эффект работать не будет, поэтому мы его и не показываем. Прозрачностью объектов можно манипулировать только в MSIE версий от 4.0 и выше. Если хотите посмотреть ответ на этот вопрос, смените браузер.
Вопрос 12. На некоторых сайтах есть стандартные кнопки с измененным цветом с типичного серого на другой, как такое сделать?
Ответ: Просто. Используются CSS, но вот только работает это в MSIE. Выбирайте какой эффект вам нужен:

<form>
<input type="button" value=" Нажми сюда " style="background-color: #0080C0; " onmousedown="style.background='#FF80FF'; value=' Спасибо '" onmouseout="style.background='#0080C0'; value=' Нажми сюда '" onmouseover="style.background='#A6D1FD'; value='Жми же скорей'">
</form>


Вопрос 13. Как поставить курсор на первое поле формы?
Ответ: Это просто, но я бы не советовал это делать, а предоставил пользователю самому установить курсор куда он считает нужным. Если вы замечали в форумах, когда вы уже пишете сообщение, курсор перелетает на первое поле. Это происходит потому, что курсор устанавливается на первое поле после полной загрузки документа, а вы начинаете заполнять форму раньше. Как это сделать - пожалуйста:
<BODY onLoad='document.forms[0].ИМЯ_ПОЛЯ.focus()' >
Элемент массива forms[0] указывает на первую форму в документе. Если у вас несколько форм, и нужно установить фокус не на первой форме, используйте соответствующий индекс, учитывая, что первая форма с нулевым индексом, вторая - первым и т.д.

Вопрос 14. Netscape не понимает атрибуты CSS?
Ответ: Стандартная спецификация CSS расчитана на MSIE - во многих справочниках именно так и есть, включая спецификацию от
World Wide Web Consortium (W3C). Для Netscape проблема совместимости для многих атрибутов решается убиранием дефиса, например запись: <p style="font-size:12pt";> для совместимости с Netscape запишется как
<p style="font-size:12pt"; "fontsize:12pt";>

Вопрос 15. Как определить размеры открытого окна или фрейма пользователя?
Ответ: Измерить размеры окна можно, но если пользователь изменит эти размеры, потребуется перезагрузка документа:

<script language=javascript>
<!--
N=window.navigator.appName.substring(0,1);
if(N=="M") {w=document.body.clientWidth; h=document.body.clientHeight;}
if(N=="N") {w=window.innerWidth; h=window.innerHeight;}
//-->
</script>


Получили 2 переменные W и H, значения которых и составляют размеры.

В данном случае размеры полезной площади этого окна: пикселов. Легко убедиться, если изменить размеры окна и перезагрузить эту страницу. Так, как используются свойства объекта BODY, скрипт должен находиться внутри этого тега, а не в заголовочной части.

Вопрос 16. Можно ли загрузить HTML-документ в другой HTML, при этом не использовать фреймы, SSI ?
Ответ: Практически можно, но только в MSIE. Например, загрузим файл 1.htm. То, что вы видите справа - результат. Делается это очень просто:
К примеру 1.htm выглядит так:

<html>
<head><head>
<BODY BGcolor="#CEFFCE"  text="#000000"   topmargin="0" leftmargin="0">  
Первая строка текста из 1.htm<BR>
<a href="www.webprogltd.ru">Это ссылка</a><BR>
Вторая строка текста<BR>
</body>
</html>
Теперь его нужно вставить в другой текст HTML, пишем так:
<object type="text/x-scriptlet" width="200" height="40" data="1.htm" align="right"></object>
В данном случае выводится фрагмент 1.htm размером 200х40, правым выравниванием. Атрибуты аналогичны "IMG SRC", только размеры могут быть и процентные . Объект не реагирует на выделение и копирование в буфер. Единственно, хотя отмеренная область и не имеет полосы прокрутки, но нажав левую кнопку мыши на объекте проведите в верх и вниз, - объект скроллируется. Где такое может пригодиться зависит от вашей фантазии.

   К сожалению, описываемая здесь фича не поддерживается вашим браузером.




[
К оглавлению]  [К предыдущей странице]  [В начало]

WDstudio © 2000г.