JavaScriptで列の幅を取得・設定する方法|columnWidthプロパティの使い方
JavaScriptで要素内のカラム(段組み)の幅を操作したい場合は、columnWidthプロパティを使用します。このプロパティは、CSSのcolumn-widthプロパティに対応しており、JavaScriptから動的に列の幅を設定したり、現在の値を取得したりすることができます。
columnWidthプロパティとは
columnWidthプロパティは、マルチカラムレイアウトにおける各列の理想的な幅を指定します。ブラウザはこの値をもとに、コンテナの幅に収まるように列数を自動的に調整します。値は「px」などの長さ単位で指定し、「auto」を設定すると列幅が自動計算されます。
基本的な構文
// 列の幅を設定する object.style.columnWidth = "70px"; // 列の幅を取得する const width = object.style.columnWidth;
サンプルコード
以下のコードでは、ボタンをクリックするとcolumnWidthプロパティを使って段落テキストの列幅が70pxに変更されます。実際に動作を確認してみましょう。
<!DOCTYPE html>
<html>
<body>
<p>列の幅を変更するデモ</p>
<button onclick="display()">幅を変更する</button>
<div id="myID" style="column-count: 3;">
これはデモ用のテキストです。これはデモ用のテキストです。
これはデモ用のテキストです。これはデモ用のテキストです。
これはデモ用のテキストです。これはデモ用のテキストです。
これはデモ用のテキストです。これはデモ用のテキストです。
これはデモ用のテキストです。これはデモ用のテキストです。
</div>
<script>
function display() {
document.getElementById("myID").style.columnWidth = "70px";
}
</script>
</body>
</html>コードの解説
- ボタンのクリックイベント:
onclick="display()"により、ボタンが押されたタイミングでdisplay()関数が実行されます。 - 要素の取得:
document.getElementById("myID")で対象となるdiv要素を取得します。 - 列幅の設定:
style.columnWidth = "70px"により、各列の幅が70ピクセルに設定されます。
注意点
columnWidthを単独で指定した場合、列数はコンテナの幅と指定した列幅から自動的に算出されます。列数を明示的に固定したい場合は、columnCountプロパティと併用するとよいでしょう。また、両方を同時に指定した場合、columnsショートハンドプロパティを使うことで簡潔に記述できます。
主要なブラウザ(Chrome、Firefox、Safari、Edge)では標準対応しているため、ベンダープレフィックスなしで利用可能です。
-
JavaScriptでテキストのフォントサイズを設定する方法【fontSizeプロパティの使い方】
JavaScriptでフォントサイズを設定するには、style.fontSizeプロパティを使用します。このプロパティに「px」「em」「%」などの値や「smaller」「larger」といったキーワードを指定することで、要素の文字サイズを動的に変更できます。 実装例 以下のコードでは、ボタンをクリックすると指定した段落(ID:myID)のフォントファミリーとフォントサイズが変更されます。 <!DOCTYPE html> <html> <body> <h1>見出し1</h1> <p id = myI
-
JavaScriptで要素を水平方向に配置する方法【cssFloatプロパティの使い方】
要素を水平方向に配置(フロート)させるには、JavaScriptのcssFloatプロパティを使用します。cssFloatプロパティは、CSSのfloatプロパティに対応するもので、「left」「right」「none」の値を設定することで、画像やテキストなどの要素を左右どちらかに回り込ませることができます。例えば「right」を指定すると、要素は右側に配置され、その周囲に他のコンテンツが回り込みます。サンプルコード以下のコードを実行すると、ボタンをクリックしたときに画像が右側に水平配置されます。ぜひ試してみてください。<!DOCTYPE html> <html> &n