検索
ホームページウェブフロントエンドjsチュートリアルppk が JavaScript スタイル属性_JavaScript スキルについて語る

実際、7 つのサンプル スクリプトはすべて、何らかの形式の CSS 変更を使用しています。たとえば、「Form Validation」はエラーが発生したフォームフィールドのスタイルを変更し、「XMLHTTP Speed Tester」はアニメーションを使用して(実際には短期間に複数回スタイルを変更します)速度データにユーザーの注意を引きます。 (そして、正直に言うと、これはちょっと派手な効果です)。ドロップダウン メニューでは、スタイルを変更することでメニュー項目の表示と非表示を切り替えます。これらの変更はすべて同じ目的を持っています。つまり、これらの要素にユーザーの注意を引くことです。

JavaScript には、次の 4 つの方法で CSS を変更できます。

l 要素の style 属性を変更します (element.style.margin='10%');

l要素のクラスまたは ID (element.className='error') を変更すると、ブラウザーは新しいクラスまたは ID に定義されたスタイルを自動的に適用します。

l は新しい CSS 命令をドキュメントに書き込みます (document.write() '');

l ページ全体のスタイル シートを変更します。

ほとんどの CSS 変更スクリプトは、スタイル属性を変更するか、ドキュメントのクラスまたは ID を変更する方法を使用します。 .write メソッドは、ページのアクセシビリティを向上させる特定の状況にのみ適しています。これは、すべてのブラウザーがこれをサポートしているわけではなく、通常は
とにかく、サンプル スクリプトでは 4 つのメソッドをすべて使用しています。この章では、これらの各メソッドとその適用箇所について説明します。

CSS を変更する元の最もよく知られた方法は次のとおりです。すべての HTML 要素が所有する style 属性を介してインライン スタイルにアクセスするには、要素の CSS プロパティのマージンを設定する場合、style オブジェクトに対応するものが含まれます。 CSS プロパティの色を設定したい場合は、element.style.color JavaScript プロパティを使用します。

Inline Styles

覚えておいてください: HTML 要素の style 属性により、インライン スタイルにアクセスできます。

CSS の理論を見てみましょう。CSS には、要素のスタイル シートを定義する 4 つの方法があります。つまり、CSS を HTML タグの style 属性に直接記述することができます。 🎜>
さらに、使用する方法に関係なく、スタイル シートを埋め込んだり、リンクしたり、インポートしたりすることができます。インライン スタイルは、他の形式のスタイルよりも明示的であるため、インライン スタイルは、埋め込まれた、リンクされた、またはインポートされたスタイル シートをオーバーライドできます。ページのスタイルシートで定義されているスタイル。style 属性はこれらのインライン スタイルにアクセスできるため、

ただし、スタイルを取得しようとすると問題が発生する可能性があります。 >

テキスト


p#test {

マージン: 10%;

}

alert(document.getElementById) ('test').style.margin);


テスト段落にはインライン スタイルが含まれていません。マージン: 10% は埋め込まれた (またはリンクされた、またはインポートされた) スタイル シートで定義されています。 style 属性から読み取ることはできません。ポップアップ警告ボックスは空で表示されます。

次の例では、マージンがインライン スタイルとして定義されているため、ポップアップ アラート ボックスに返される結果「10%」が表示されます:


Text


alert(document.getElementById('test').style.margin);

したがって、style 属性はスタイルの設定には最適ですが、スタイルの取得にはあまり役立ちません。ページに埋め込まれている、リンクされている、または導入されているスタイル シートからスタイルを取得する方法については後で説明します。

ダッシュ

font-size など、多くの CSS プロパティ名にはダッシュが含まれています。ただし、JavaScript ではダッシュはマイナスを表すため、プロパティ名には使用できません。これにより、エラーが発生します:

element.style.font-size = '120%';

これは、ブラウザーに element.style.font ) 変数サイズを減算するよう要求しています。 ? = '120%' の場合、それは何を意味しますか?代わりに、ブラウザーはキャメルケースのプロパティ名を期待します:

element.style.fontSize = '120%';

一般的なルールは、CSS プロパティ名のダッシュとその後の文字からすべての要素を削除することです。ダッシュが大文字になります。このようにして、margin-left は marginLeft になり、text-decoration は textDecoration になり、border-left -style は borderLeftStyle になります。

単位

JavaScript の多くの数値には、CSS で宣言する場合と同様に単位が必要です。 fontSize=120 とはどういう意味ですか? 120 ピクセル、120 ポイント、それとも 120%?ブラウザはこれを認識しないため、何も行いません。意図を明確にするためには単位が必須です。

setWidth() 関数を例に挙げます。これは、「XMLHTTP Speedometer」のアニメーション効果を実装するコア プログラムの 1 つです。

[XMLHTTP Speedometer、行 70-73]

function setWidth(width) {

if (width
document.getElementById('meter').style.width = width 'px' ;

}

この関数は値を引き継ぎ、メーターの幅をこの新しい値に変更します。安全性チェックを行って値が 0 より大きいことを確認した後、要素の style.width をこの新しい幅の値に設定します。最後に「px」を追加すると、ブラウザが値の解釈方法を認識できず、何も実行しない可能性があるためです。

'px' を忘れないでください

幅または高さの後に 'px' 単位を追加するのを忘れるのは、CSS 変更でよくあるエラーです。

CSS quirks モードでは、ブラウザーは古いルールに従って単位のない値をピクセル値として扱うため、「px」を追加する必要はありません。これ自体は問題ではありませんが、多くの Web 開発者は幅や高さの値を変更した後、単位を追加するのを忘れる癖がついているため、CSS 厳密モードで作業するときに問題が発生します。

スタイルの取得

警告: 次のコンテンツにはブラウザーの互換性の問題があります。

これまで見てきたように、style 属性は、ページに埋め込まれ、リンクされ、またはインポートされたスタイル シートに設定されているスタイルを読み取ることができません。ただし、Web 開発者はこれらのスタイルを読み取る必要がある場合があるため、Microsoft と W3C の両方が非インライン スタイルにアクセスする方法を提供しています。 Microsoft のソリューションは Explorer でのみ機能しますが、W3C 標準は Mozilla と Opera で機能します。

Microsoft の解決策は currentStyle プロパティです。これは次の 2 つの点を除いて style プロパティとまったく同じように機能します。

l インライン スタイルだけでなくすべてのスタイルにアクセスできるため、スタイルを報告します。実際には要素に適用されます。

l これは読み取り専用であり、それを介してスタイルを設定することはできません。

例:

var x = document.getElementById('test');

alert(x.currentStyle.color);ダイアログがポップアップ表示されます。ボックスには、要素が定義されている場所に関係なく、要素の現在の色スタイルが表示されます。

W3C の解決策は window.getComputedStyle() メソッドで、これは類似していますがより複雑な構文で機能します。

var x = document.getElementById('test');

alert(window.getComputedStyle(x,null).color);

getComputedStyle() は、元のスタイルが 50em または 11% である可能性がありますが、常にピクセル値を返します。

以前と同様、非互換性が発生した場合、すべてのブラウザーを満たすためにいくつかのコード ブランチが必要になります。

function getRealStyle(id,styleName) {

var element = document.getElementById (id);

var realStyle = null;

if (element.currentStyle)

realStyle = element.currentStyle[styleName]; (window.getComputedStyle)

realStyle = window.getComputedStyle(element,null)[styleName];

return realStyle;

を使用できます。この関数は次のようになります:

var textDecStyle = getRealStyle('test','textDecoration');

getComputedStyle() は常にピクセル値を返し、currentStyle で最初に定義された単位を保持することを覚えてください。 CSS。

略語スタイル

警告 次のコンテンツにはブラウザの互換性の問題があります。

style 属性を通じてインライン スタイルを取得する場合でも、今説明した関数を通じて他のスタイルを取得する場合でも、省略されたスタイルを読み取ろうとすると問題が発生します。

この境界線の定義を見てください


テキスト


これはインライン スタイルであるため、次のコード行が機能することが期待されます。

alert(document.getElementById('test').style.border); > 残念ながらそれはできません。ポップアップ ダイアログ ボックスに表示される正確な値は、ブラウザーによって異なります。

l Explorer 6 では #cc0000 1px ソリッドが表示されます。

l Mozilla 1.7.12 は 1px ソリッド rgb(204,0,0) を提供します。

l Opera 9 では 1px ソリッド #cc0000 が与えられます。

l Safari 1.3 では境界値が提供されません。

問題は、border が速記宣言であることです。これには、上下左右の境界線の幅、スタイル、色など、12 個以上のスタイルが暗黙的に含まれています。同様に、フォント宣言は、font-size、font-family、font-weight、および line-height の短縮形であるため、同様の問題が発生します。

rgb()

Mozilla で使用される特別な色の構文 rgb(204,0,0) に注意してください。これは、従来の #cc0000 に代わる有効な代替手段です。 CSS と JavaScript の間で任意の構文を選択できます。

ブラウザはこれらの省略された宣言をどのように処理しますか?上記の例は直接的すぎるように思えますが、直感的には、ブラウザーが 1 ピクセルのソリッド #cc0000 を返し、それがインライン スタイルで定義されている内容と一致していると予想されるはずです。残念ながら、短縮プロパティはそれよりも複雑です。

次の状況を考えてみましょう:

p {

border: 1px Solid

}


Test

alert(document.getElementById('test').style.borderRightColor);

border-right- はインライン スタイルの色に含まれていませんが、すべてのブラウザで正しい色が報告されます。代わりに border-color を宣言します。どうやらブラウザは、境界線全体の色が設定されたときに右側の境界線の色が設定されたと認識しているようですが、これも論理的です。

ご覧のとおり、ブラウザはこれらの例外に対するルールを作成する必要があり、若干異なる方法で短縮宣言を処理することを選択しています。省略された属性を処理するための明確な仕様がない場合、どのブラウザが正しいか間違っているかを判断するのは困難です。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

Python vs. JavaScript:パフォーマンスと効率の考慮事項Python vs. JavaScript:パフォーマンスと効率の考慮事項Apr 30, 2025 am 12:08 AM

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptの起源:その実装言語の調査JavaScriptの起源:その実装言語の調査Apr 29, 2025 am 12:51 AM

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

舞台裏:JavaScriptをパワーする言語は何ですか?舞台裏:JavaScriptをパワーする言語は何ですか?Apr 28, 2025 am 12:01 AM

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの未来:傾向と予測PythonとJavaScriptの未来:傾向と予測Apr 27, 2025 am 12:21 AM

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

Python vs. JavaScript:開発環境とツールPython vs. JavaScript:開発環境とツールApr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン