Аналог :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> Ксать во фрейме не обслуживается скриптом - поэтому ток на странице |
Часовой пояс GMT +3, время: 23:04. |