создать <style>
как можно создать новый CSSStyleDeclaration без создания его через document.createElement('style') и без импорта его в существующую таблицу стилей?
есть способ, но он только для XML. как дела обстоят с HTML? |
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.open();
doc.write('<style>.b-block { text-decoration: underline; }</style>');
doc.close();
console.log(doc.styleSheets[0].cssRules[0].style);
или может ты лучше расскажешь, чего ты пытаешься добиться? И, кстати, как это сделать в xml? |
эх, не то :)
я думал,есть проще, типа document.createCSSSheet("type","media"), который я пропустил. в XML так var style = DocumentImplementation.createCSSStyleSheet(title, media); я хочу написать свою функцию для изменения стиля элемента. делаю через таблицы стилей,чтобы меньше отрисовок для браузера было заодно и будет анимация на css transition |
А чем создание элемента style не угодило?
|
Цитата:
оказалось, может ) это как писать +2.0 + "" |
Цитата:
Цитата:
потом, непонятно почему эти методы не подходят: "без создания его через document.createElement('style') и без импорта его в существующую таблицу стилей?" Ты же собирался как-то применить это правило, значит оно должно бытьв какой-то таблице стилей |
Цитата:
а так..
<style>div{border: 5px solid;background-color:red;border-top-style:dashed;border-bottom-width:10px;border-left-color:blue;}</style><div>ololo</div>
в консоли видно, что есть только три PAINT после Event Click. ( 1056х180 ) а теперь попробуем сделать это через JS <div id="one">ololo</div> <script> var s = document.getElementById( "one" ).style; s.border = "5px solid"; s.backgroundColor = "red"; s.borderTopStyle = "dashed"; s.borderBottomWidth = "10px"; s.borderLeftColor = "blue"; </script> видим : 2 Recalculate Style и 4 Paint телодвижений больше |
| Часовой пояс GMT +3, время: 20:45. |