JavaScriptスタイル

概要:このチュートリアルでは、styleプロパティを使用してHTML要素のインラインスタイルを操作する方法を学習します。

インラインスタイルの設定

要素のインラインスタイルを設定するには、その要素のstyleプロパティを使用します。

element.styleCode language: CSS (css)

styleプロパティは、CSSプロパティのリストを含む読み取り専用のCSSStyleDeclarationオブジェクトを返します。たとえば、要素の色をredに設定するには、次のコードを使用します。

element.style.color = 'red';Code language: JavaScript (javascript)

CSSプロパティにハイフン(-)が含まれる場合(例:-webkit-text-stroke)、配列のような表記([])を使用してプロパティにアクセスできます。

element.style.['-webkit-text-stock'] = 'unset';Code language: JavaScript (javascript)

次の表は、一般的なCSSプロパティを示しています。

CSSJavaScript
backgroundbackground
background-attachmentbackgroundAttachment
background-colorbackgroundColor
background-imagebackgroundImage
background-positionbackgroundPosition
background-repeatbackgroundRepeat
borderborder
border-bottomborderBottom
border-bottom-colorborderBottomColor
border-bottom-styleborderBottomStyle
border-bottom-widthborderBottomWidth
border-colorborderColor
border-leftborderLeft
border-left-colorborderLeftColor
border-left-styleborderLeftStyle
border-left-widthborderLeftWidth
border-rightborderRight
border-right-colorborderRightColor
border-right-styleborderRightStyle
border-right-widthborderRightWidth
border-styleborderStyle
border-topborderTop
border-top-colorborderTopColor
border-top-styleborderTopStyle
border-top-widthborderTopWidth
border-widthborderWidth
clearclear
clipclip
colorcolor
cursorcursor
displaydisplay
filterfilter
floatcssFloat
fontfont
font-familyfontFamily
font-sizefontSize
font-variantfontVariant
font-weightfontWeight
heightheight
leftleft
letter-spacingletterSpacing
line-heightlineHeight
list-stylelistStyle
list-style-imagelistStyleImage
list-style-positionlistStylePosition
list-style-typelistStyleType
marginmargin
margin-bottommarginBottom
margin-leftmarginLeft
margin-rightmarginRight
margin-topmarginTop
overflowoverflow
paddingpadding
padding-bottompaddingBottom
padding-leftpaddingLeft
padding-rightpaddingRight
padding-toppaddingTop
page-break-afterpageBreakAfter
page-break-beforepageBreakBefore
positionposition
stroke-dasharraystrokeDasharray
stroke-dashoffsetstrokeDashoffset
stroke-widthstrokeWidth
text-aligntextAlign
text-decorationtextDecoration
text-indenttextIndent
text-transformtextTransform
toptop
vertical-alignverticalAlign
visibilityvisibility
widthwidth
z-indexzIndex

既存のインラインスタイルを完全に上書きするには、styleオブジェクトのcssTextプロパティを設定します。例えば

element.style.cssText = 'color:red;background-color:yellow';
Code language: JavaScript (javascript)

または、setAttribute()メソッドを使用することもできます。

element.setAttribute('style','color:red;background-color:yellow');Code language: JavaScript (javascript)

インラインスタイルを設定したら、1つ以上のCSSプロパティを変更できます。

element.style.color = 'blue';Code language: JavaScript (javascript)

既存のCSSプロパティを完全に上書きしたくない場合は、次のように新しいCSSプロパティをcssTextに連結できます。

element.style.cssText += 'color:red;background-color:yellow';Code language: JavaScript (javascript)

この場合、+=演算子は新しいスタイル文字列を既存の文字列に追加します。

次のcss()ヘルパー関数は、キーと値のペアのオブジェクトから要素の複数のスタイルを設定するために使用されます。

function css(e, styles) {
    for (const property in styles)
        e.style[property] = styles[property];
}Code language: JavaScript (javascript)

このcss()関数は、idが#contentの要素に対して複数のスタイルを設定するために使用できます。

let content = document.querySelector('#content');
css(content, { background: 'yellow', border: 'solid 1px red'});Code language: JavaScript (javascript)

次の例では、styleオブジェクトを使用して、idがcontentの段落のCSSプロパティを設定しています。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JS Style Demo</title>
</head>
<body>
    <p id="content">JavaScript Setting Style Demo!</p>
    <script>
        let p = document.querySelector('#content');
        p.style.color = 'red';
        p.style.fontWeight = 'bold';
    </script>
</body>
</html>Code language: HTML, XML (xml)

仕組み

  • まず、querySelector()メソッドを使用して、idがcontentである段落要素を選択します。
  • 次に、styleオブジェクトのcolorプロパティとfontWeightプロパティを設定することで、段落の色とフォントウェイトプロパティを設定します。

インラインスタイルの取得

styleプロパティは、要素のインラインスタイルを返します。styleプロパティは、外部スタイルシートなどの他の場所からのルールを返さないため、実際にはあまり役に立ちません。

要素に適用されているすべてのスタイルを取得するには、window.getComputedStyle()メソッドを使用する必要があります。

まとめ

  • element.styleオブジェクトのプロパティを使用して、HTML要素のインラインCSSプロパティを設定します。

クイズ

このチュートリアルは役に立ちましたか?