Аналог :checked для ИE7-8 ?
Можно ли без скрипта (через <v:f ) или иным образом,
- Создать для ИE7-8 - аналог псевдокласса :checked ? |
Цитата:
<style>
*[checked] {
border: 1px solid red;
}
</style>
<input type='checkbox' checked />
<input type='checkbox' />
<input type='checkbox' checked />
|
ksa,
:-? Cенкс за идею, но оно не меняется от смены checked Поставил span рядом, посколь бордеры у FF и Хроме на checkbox не ставятся
<style>
input[checked="true"]+span,
input[checked="checked"]+span{
border: 1px solid red;
}
</style>
<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>
|
Цитата:
|
<style type="text/css">
/* Для ИЕ7 все как обычно */
input[type="checkbox"] {
checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1'));
}
/* Правило оформления чекнутого для ИЕ7 и ИЕ8 */
input[type="checkbox"].checked {
border: 1px solid red;
}
/* Для всех остальных браузеров */
input[type="checkbox"]:checked {
border: 1px solid red;
}
</style>
<script type="text/javascript">
/* Для ИЕ8 этот дуратский скрипт */
if (document.attachEvent && window.Element && window.Element.prototype.querySelectorAll) {
window.attachEvent('onload', function() {
function test(e) {
if(e.nodeName === "INPUT" && e.type === "checkbox") {
e.className=e.className.replace(/(?:(?:^|\s)checked(\s|$)|$)/i, e.checked?' checked$1':'$1');
}
}
document.attachEvent('onclick', function(){test(window.event.srcElement||{})});
for(var i = 0, e = document.querySelectorAll('input[type="checkbox"]'); i < e.length; i++) {
test(e[i]);
}
});
}
</script>
<input type="checkbox" checked />
<input type="checkbox" />
<input type="checkbox" checked />
|
devote,
:( чот у меня в ИЕ7 не работает(ставицо но не убирается) - (*в ИЕ8 - норма
<!doctype html>
<html>
<head>
<title>IE7 {CSS2: auto}</title>
<style type="text/css">
/* Для ИЕ7 все как обычно */
input[type="checkbox"]{
checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1'));
}
/* Правило оформления чекнутого для ИЕ7 и ИЕ8 */
input[type="checkbox"].checked + span{
border: 1px solid red;
}
/* Для всех остальных браузеров */
input[type="checkbox"]:checked + span{
border: 1px solid red;
}
</style>
<script type="text/javascript">
/* Для ИЕ8 этот дуратский скрипт */
if (document.attachEvent && window.Element && window.Element.prototype.querySelectorAll) {
window.attachEvent('onload', function() {
function test(e) {
if(e.nodeName === "INPUT" && e.type === "checkbox") {
e.className=e.className.replace(/(?:(?:^|\s)checked(\s|$)|$)/i, e.checked?' checked$1':'$1');
}
}
document.attachEvent('onclick', function(){test(window.event.srcElement||{})});
for(var i = 0, e = document.querySelectorAll('input[type="checkbox"]'); i < e.length; i++) {
test(e[i]);
}
});
}
</script>
</head>
<body>
<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>
<input type="checkbox" checked/>
<span>ddd</span>
</body>
</html>
|
Цитата:
checked: expression(this.className=this.className.replace(/(?:(?:^|\\s)checked(\\s|$)|$)/i, this.checked?' checked$1':'$1')); А если отключить это: <!-- Compliance patch for Microsoft browsers --> <!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->просто проверь |
Цитата:
|
А ну понятно, это просто ИЕ плохо работает с плюсами (+) в селекторах
|
devote,
:-? Все наоборот при отключении не работает и в 8 Оставил ток <!-- Compliance patch for Microsoft browsers --> <!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]--> Работает в обоих :lol: (забыл я про скрипт-аналог для псевдоклассов)
<!doctype html>
<html>
<head>
<title>IE7 {CSS2: auto}</title>
<!-- Compliance patch for Microsoft browsers -->
<!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->
<style type="text/css">
input[type="checkbox"]:checked + span{
border: 1px solid red;
}
</style>
</head>
<body>
<input type='checkbox' checked="true" />
<span>aaa</span>
<input type='checkbox' />
<span>bbb</span>
<input type='checkbox' checked="checked" />
<span>ccc</span>
<input type="checkbox" checked/>
<span>ddd</span>
</body>
</html>
Ксать во фрейме не обслуживается скриптом - поэтому ток на странице |
Цитата:
|
Вот: целью было http://habrahabr.ru/post/167151/
Сейчас вопрос этот отпал, Есть глюк этого спойлера(говорят) в ФФ 18.0.1, на Kubuntu 12.04, :( |
:thanks: У Кого ИЕ9 (вин7) - под гляньте => http://hostjs-mybb2011.narod.ru/SpoiLL.htm
Пишут Цитата:
|
Deff, а что мешает использовать ID и FOR ?? Ведь по большей части страницы то все равно генерятся серверным языком, дык прописать ИД не проблема вроде, и работает это по крайней мере везде одинаково, и CSS меньше и HTML проще:
<!DOCTYPE html>
<html>
<head>
<!--[if lt IE 9]><script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"></script><![endif]-->
<style type="text/css">
.spoiler_block > input[type="checkbox"] {
position: absolute;
width: 0;
height: 0;
opacity: 0;
z-index: -1;
padding: 0;
}
.spoiler_block > .spoiler_box {
display: none;
}
.spoiler_block > label i {
background: url('http://st0.bbcorp.ru/img/minus.png') 4px 60% no-repeat;
display: none;
font-style: normal;
cursor: pointer;
padding: 0 0 0 16px;
}
.spoiler_block > label i:first-child {
background: url('http://st0.bbcorp.ru/img/plus.png') 4px 60% no-repeat;
display: inline-block;
}
.spoiler_block > input[type="checkbox"]:checked + label i {
display: inline-block;
}
.spoiler_block > input[type="checkbox"]:checked + label i:first-child {
display: none;
}
.spoiler_block > input[type="checkbox"]:checked ~ .spoiler_box {
display: block;
}
</style>
</head>
<body>
<div class="spoiler_block">
<input id="spoiler1" type="checkbox" />
<label for="spoiler1"><i>Открыть</i><i>Закрыть</i></label>
<div class="spoiler_box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</div>
</div>
<div class="spoiler_block">
<input id="spoiler2" type="checkbox" />
<label for="spoiler2"><i>Открыть</i><i>Закрыть</i></label>
<div class="spoiler_box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</div>
</div>
<div class="spoiler_block">
<input id="spoiler3" type="checkbox" />
<label for="spoiler3"><i>Открыть</i><i>Закрыть</i></label>
<div class="spoiler_box">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</div>
</div>
</body>
</html>
|
devote,
Да этот код есть на форуме (тут) Основные претензии были от админов форумов( форумов более 500 000, на каждом свой админ) Они забывают менять ручками id - половина прописанных спойлов не работает (ставят в объявление и на рекламу Упор на сервер, был сделан для Хабра Вот код http://javascript.ru/forum/xhtml-htm...tml#post199774 |
Цитата:
|
Цитата:
|
Цитата:
|
devote,
Сервис бесплатных форумов - в админке максимум, что можно - воткнуть свой HTML и скрипты. ( mybb.ru) потому и изголяемся, (*в частности с кроссдоменным доступом //Иногда проходят веяния типо упросить админа всего сервиса поставить что-то новое. |
| Часовой пояс GMT +3, время: 20:35. |