WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:style 文字列の取得

0:[投稿] なおき [2005/03/13 16:35 ][環境:XP2, IE6 いろいろ]

<style>
.style2 {margin:20px;}
</style>
  :
<P id="str1" style="margin:10px">aaa</P>
<P id="str2" class="...">bbb</P>

で定義される
文字列 str1 のスタイル "margin:10px"
文字列 str2 のスタイル "margin:20px"
を取得する方法はないでしょうか.

document.all.str1.style.margin として値は取れますが,
文字列で取得したいのです.もちろん,
'"margin:"+document.all.str1.style.margin+'"'
などとしても作れますが,どのようなスタイルが設定
されているかがわからないと,全スタイル属性を
設定する文字列を作らなければないので,実用的ではありません.

おわかりになる方がおられたら,お教えください.


1:[回答] 敬 [MAIL] [URL] [2005/03/13 19:12 ]

str1については document.getElementsById('str1').attributes.getNamedItem('style').nodeValue で値をとることができます(DOM1対応環境なら)。str2は document.styleSheets[].cssRules[].cssText から適当に値を切り出せばいいでしょう。


2:[回答] なおき [2005/03/15 01:37 ]

敬さん,ありがとうございます.

まずは str2 の方について
IE6 では,cssRules はないようです.
代わりに rules があるのですが,rules.cssText はありません.
rules.selectorText で スタイルクラス名は手に入るのですが,
内容の文字列を手に入れるプロパティが見つけられません...

ん〜,ないのかなぁ...


3:[回答] なおき [2005/03/15 02:00 ]

すみません.
 document.styleSheets[].rules[].style.cssText
で,定義部分の文字列を取り出すことができました.

ちなみに,
 document.styleSheets[].rules[].selectorText
で,上記定義のクラス名が,
そして,
 document.styleSheets[].cssText
で,そのドキュメントにおける全定義の文字列が得られました.


4:[完了] なおき [2005/03/19 07:54 ]

str1 の方は,
document.all.str1.style.cssText
で取り出すことができました.

ありがとうございました.

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World