Вообще, уверен, все знаем как скрыть элемент со страницы, display:none; и все готово. Однако, столкнулся с такой вот интересной задачкой. Допустим, что есть <select> элемент, примерно следующий....
Конечно, на первый взгляд кажется что JS`ом сокращаем размер селекту, display:block; к полю пароля и все, все счастливы. Ан нет.... Как оказалось IE, FF и Opera выставляют разные паддинги и отсуты для <select> элементов итп, а хочется то сделать чтобы все было ровно. Чтобы при выборе "По паролю" поле пароля не выскакивало в IE на 3-4 пикселя итп. Конечно, в JS скрипте можно проверить браузер и в зависимости от него выставлять размеры селекта, но не проще ли заранее прописать их в CSS? Т.е. все, я думаю, давно знаем о возможности применения отдельных стилей под IE, путем
<link rel="stylesheet" type="text/css" media="all" href="http://www.nnm.ru/css/default/screen.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" media="all" href="http://www.nnm.ru/css/default/ie.css" />
<![endif]-->Соответственно, все что нам нужно от JS, это лишь:<select onchange="if(this.value=='4'){this.parentNode.className='pass';}else{this.parentNode.className='';}">
.... .... ...
<option value="4">Виден только по паролю</option>
</select>Вот и все... теперь прописываем в стиль display:none; для поля пароля и display:block; для .pass поля пароля. Соответственный стиль для длинны .pass селекта. Для IE свой, для остальных свой. select.html
<div id="select">
<select onchange="if(this.value=='4'){this.parentNode.className='pass';}else{this.parentNode.className='';}">
... ... ...
<option value="4">Виден только по паролю</option>
</select>
<input type="text" value="пароль" />
</div>style.css#select select{
width:300px;
}
#select input{
width:50px;
display:none;
}
#select.pass select{
width:245px;
}
#select.pass input{
display:block;
}