Search
  1. clear〔要素の回り込み解除〕
  2. display〔要素の表示形式〕
  3. float〔要素のフロート方法〕
  4. visibility〔要素の可視の有無〕
  5. box-decoration-break CSS3~〔ボックスの改行方法〕
  6. box-shadow CSS3~〔ボックスの影〕
  7. display:none と visibility:hidden の違い

clear
要素の回り込み解除

unknown

clear: none | left | right | both

clearプロパティは、floatプロパティによる要素の回り込みを解除します。

  • デフォルト値:none
  • 適用:ブロックレベル要素
  • 継承:しない

clearプロパティの値
説明
none回り込みを解除しない。
left左寄せ(float:left)された要素に対する回り込みを解除。
right右寄せ(float:right)された要素に対する回り込みを解除。
both左寄せ(float:left)、右寄せ(float:right)された要素に対する回り込みを解除。

【参照】 clearfix(CSSハックを使用した回り込み解除方法)

<div style="float:left; width:40%; background-color:#e0f1f6; color:#96b5d8; padding:10px;">
	要素にfloat:leftを指定しているため、この要素は左に浮動します。
</div>
<div style="float:right; width:40%; background-color:#a6c6e8; color:#fff; padding:10px;">
	要素にfloat:rightを指定しているため、この要素は右に浮動します。
</div>
<div style="clear:both; background-color:#fbf1b5; color:#96b5d8; padding:10px;">
	要素にclear:bothを指定して、回り込みを解除しているので、この要素は回り込みません。
</div>
要素にfloat:leftを指定しているため、この要素は左に浮動します。
要素にfloat:rightを指定しているため、この要素は右に浮動します。
要素にclear:bothを指定して、回り込みを解除しているので、この要素は回り込みません。

display
要素の表示形式

unknown

display: inline | block | inline-block | list-item | run-in | compact | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | ruby | ruby-base | ruby-text | ruby-base-group | ruby-text-group | <template>| none

displayプロパティは、任意の要素に対し、どの要素として扱うかを指定します。

  • デフォルト値:inline
  • 適用:全要素
  • 継承:しない
displayプロパティの値
説明
inline要素をインラインレベルの要素として扱う。
block要素をブロックレベルの要素として扱う。
list-item要素をリスト要素として扱う。
run-inブロックボックスがランインボックスに続く場合、そのランインボックスは、ブロックボックスの最初の行内のボックスとなる。そうでない場合は、ランインボックスはブロックボックスとなる。
compactブロックボックスがコンパクトボックスに続く場合、そのコンパクトボックスは、ブロックボックスの最初のインラインボックスの外に配置され、一行のインラインボックスと同様に表示される。そうでない場合は、コンパクトボックスはブロックボックスになる。
markerボックス要素の前または後に生成される内容をマーカーとして扱う。
table要素をテーブル要素として扱う。
inline-table要素を行内レベル表として扱う。
table-row-group要素をセルの行(tr要素)として扱う。
table-header-group要素をヘッダ行グループ(thead要素)として扱う。
table-footer-group要素をフッタ行グループ(tfoot要素)として扱う。
table-row要素を行グループ(tbody要素)として扱う。
table-column-group要素を列グループ(colgroup要素)として扱う。
table-column要素をセルの列(col要素)として扱う。
table-cell要素を表セル(th要素・td要素)として扱う。
table-caption要素を表題(caption要素)として扱う。
none要素を非表示にする。
ruby
ruby-base
ruby-text
ruby-base-group
ruby-text-group
CSS3 Rubyモジュール参照。
<template>CSS3 Templateモジュール参照。

block

span要素、a要素などのインライン要素をブロック要素として扱う場合に使用します。 ブロックレベル要素扱いにするとmarginプロパティ(ブロック外余白)など、ブロックレベル要素に指定可能なスタイルも指定できるようになります。

下記の例では、a要素にdisplay:blockを指定しています。

td要素内のa要素をブロックレベル要素扱いにすると、a要素で括った文字列や画像だけでなく、td要素全体をリンクとすることができるようになります。

<style type="text/css">
	.ablock, .noblock {
		width:400px; margin:1em 0; border-collapse:collapse;
	}
	.ablock td, .noblock td {
		padding:2px; border:1px solid silver;
	}
	.ablock a {
		display:block; /* ブロック要素扱い */
	}
	.ablock a, .noblock a { /* 通常時 */
		margin:1px 0; padding:2px; background-color:#ffffcc; color:orange;
	}
	.ablock a:hover, .noblock a:hover { /* マウスが乗った時 */
		background-color:orange; color:#fff;
	}
</style>

<table class="ablock">
	<caption>aタグのdisplay属性にblockを指定(ブロック要素扱い)</caption>
	<tr><td><a href="#">display:block</a></td></tr>
	<tr><td><a href="#">display:block</a></td></tr>
</table>

<table class="noblock">
	<caption>aタグにdisplay属性を指定しない場合(インライン要素扱い)</caption>
	<tr><td><a href="#">display:inline</a></td></tr>
	<tr><td><a href="#">display:inline</a></td></tr>
</table>
aタグのdisplay属性にblockを指定(ブロック要素扱い)
display:block
display:block
aタグにdisplay属性を指定しない場合(インライン要素扱い)
display:inline
display:inline

以下は、div要素に上と同じクラス(ablock)を指定し、div要素内のa要素をブロックレベル要素扱いしています。

<div class="ablock">
	<a href="#">display:block</a>
	<a href="#">display:block</a>
</div>

inline

p要素、div要素、li要素などのブロックレベル要素をインラインレベル要素として扱う場合に使用します。

下記の例では、li要素にdisplay:inlineを指定しています。 li要素をインライン要素扱いすることで、通常は縦方向に表示されるリストを横方向に表示することができます。 これはナビゲーションメニューなどでよく使われる方法です。

<style type="text/css">
	ul#s2 li { display:inline; }
	ul#s2 li a { background-color:orange; color:#fff; border:1px solid orange; text-decoration:none; padding:5px; }
	ul#s2 li a:hover { background-color:#fff; color:orange; border:1px solid orange; }
</style>

<ul id="s2">
	<li><a href="#">display:inline</a>
	<li><a href="#">display:inline</a>
	<li><a href="#">display:inline</a>
</ul>

list-item

要素をリストとして扱う場合に使用します。 下記の例の様に、a要素にlist-itemを指定すると、a要素がリストとして扱われるため、 リストマークなどのリストプロパティも指定可能になります。

<style type="text/css">
	div#s3 a {
		display:list-item;
		margin-left:20px;
		width:200px;
		list-style-type:square;
		text-decoration:none;
	}
	div#s3 a:hover {
		background-color:#ffffcc;
	}
</style>

<div id="s3">
	<a href="#">display:list-item</a>
	<a href="#">display:list-item</a>
</div>

table関連

要素をテーブルとして扱う場合に使用します。

<style type="text/css">
	div#dispT {
		display:table;
		border:1px solid #ccc;
		border-collapse:collapse;
	}
	div#dispT div.tcap {
		display:caption;
	}
	div#dispT div.colgroup {
		display:table-column-group;
	}
	div#dispT div.colgroup div {
		display:table-column;
	}
	div#dispT div.thead {
		display:table-header-group;
	}
	div#dispT div.tfoot {
		display:table-footer-group;
	}
	div#dispT div.tbody {
		display:tabke-row;
	}
	div#dispT div.thead ul,
	div#dispT div.tbody ul,
	div#dispT div.tfoot ul {
		display:table-row-group;
	}
	div#dispT div.thead li,
	div#dispT div.tbody li,
	div#dispT div.tfoot li {
		display:table-cell;
		border:1px solid #ccc;
		width:100px;
	}
</style>

<div id="dispT">
	<div class="tcap">≪表題≫</div>
	<div class="colgroup">
        <div span="1"></div><!-- 見出し -->
        <div span="3"></div><!-- データ -->
    </div>
    <div class="thead">
		<ul>
			<li>ヘッダ</li>
			<li>A列</li>
			<li>B列</li>
			<li>C列</li>
		</ul>
	</div>
	<div class="tfoot">
		<ul>
			<li>フッタ</li>
			<li>A列</li>
			<li>B列</li>
			<li>C列</li>
		</ul>
	</div>
	<div class="tbody">
		<ul>
			<li>行1</li>
			<li>item A-1</li>
			<li>item B-1</li>
			<li>item C-1</li>
		</ul>
		<ul>
			<li>行2</li>
			<li>item A-2</li>
			<li>item B-2</li>
			<li>item C-2</li>
		</ul>
	</div>
</div>
≪表題≫
  • ヘッダ
  • A列
  • B列
  • C列
  • フッタ
  • A列
  • B列
  • C列
  • 行1
  • item A-1
  • item B-1
  • item C-1
  • 行2
  • item A-2
  • item B-2
  • item C-2

float
要素のフロート方法

unknown

float: left | right | none | <page-floats>

floatプロパティは、ボックス要素を左右どちらに浮動させ、後に続くテキストなどの内容をどのように回り込みさせるかを指定します。 positionプロパティで位置決めされている要素および生成内容を除く、すべての要素に指定可能です。 デフォルト値は、none(ボックス要素を浮動しない)です。 floatプロパティによる回り込みを解除する場合は、clearプロパティを使用します。

positionプロパティabsoluteまたはfixedを指定している要素に、floatプロパティを指定することはできません。

floatプロパティの値
説明
noneボックス要素を浮動しない(デフォルト値)。
leftブロック要素を左に浮動させ、後に続く内容は右側に回り込む。
rightブロック要素を右に浮動させ、後に続く内容は左側に回り込む。
<page-floats>CSS3 Paged Mediaモジュール参照

div要素にfloatプロパティを指定すると、テーブル要素を使わなくても、下記の例のように、複数のブロック要素を1列に並べて表示できます。

<style type="text/css">
	/* 2分割レイアウト */
	.floatL_2 {
		float:left;  /* 左寄せ */
		width:50%;
		margin:0; padding:0;
		background-color:#e0f1f6; color:#96b5d8;
	}
	.floatR_2 {
		float:right;  /* 右寄せ */
		width:50%;
		margin:0; padding:0;
		background-color:#a6c6e8; color:#fff;
	}
	.floatL_2 p,
	.floatR_2 p {
		margin:10px;
	}
</style>

<div style="width:98%;">
	<div class="floatL_2"><p>このボックスは左に浮動します。<p></div>
	<div class="floatR_2"><p>このボックスは右に浮動します。</p></div>
	<br style="clear:both;" /><!-- 回り込み解除 -->
</div>

<hr />

<style type="text/css">
	/* 3分割レイアウト */
	.floatL_3 {
		float:left;  /* 左寄せ */
		width:33%;
		margin:0; padding:0;
		background-color:#e0f1f6; color:#96b5d8;
	}
	.floatC_3 {
		float:left;  /* 左寄せ */
		width:34%;
		margin:0; padding:0;
		background-color:#fbf1b5; color:#96b5d8;
	}
	.floatR_3 {
		float:right;  /* 右寄せ */
		width:33%;
		margin:0; padding:0;
		background-color:#a6c6e8; color:#fff;
	}
	.floatL_3 p,
	.floatC_3 p,
	.floatR_3 p {
		margin:10px;
	}
</style>

<div style="width:98%;">
	<div class="floatL_3"><p>このボックスは左に浮動します。</p></div>
	<div class="floatC_3"><p>このボックスは左に浮動します。</p></div>
	<div class="floatR_3"><p>このボックスは右に浮動します。</p></div>
	<br style="clear:both;" /><!-- 回り込み解除 -->
</div>

このボックスは左に浮動します。

このボックスは右に浮動します。



このボックスは左に浮動します。

このボックスは左に浮動します。

このボックスは右に浮動します。


visibility
要素の可視の有無

unknown

visibility: visible | hidden | collapse

visibilityプロパティは、要素を表示するか、非表示にするかを指定します。

  • デフォルト値:visible
  • 適用:全要素
  • 継承:しない

visibilityプロパティの値
説明
visible要素を表示する。
collapse要素をテーブルの行(tr要素)・行グループ(thead要素、tbody要素、tfoot要素)、列(col要素)、列グループ(colgroup要素)・列グループの指定した範囲を詰めて表示する。それ以外の要素に指定した場合は、hiddenを指定したのと同じになります。
hidden要素を非表示にする(要素の描画領域は確保される)。

visible(表示)/hidden(非表示)

親要素のスタイル指定は子要素に反映されますが、子要素の指定は親要素に反映されません。 下記の例は、子要素にvisibility:visibleを指定し、親要素にvisibility:hiddenを指定しています。 子要素は表示されますが、親要素は非表示のままです。

<div style='visibility:hidden;'>親要素
	<div style='visibility:visible;'>子要素</div>
</div>
親要素
子要素

collapse(表の行・列および行グループ・列グループを詰めて表示)

<style type="text/css">
table.collapse td {
	border:1px solid #ccc;
}
table.collapse thead {
	visibility:collapse;
	background:orange;
}
</style>

<table class="collapse">
	<caption>表題</caption>
	<thead>
		<tr>
			<td>group 1</td>
			<td>group 2</td>
		</tr>
	</thead>
	<tr>
		<td>1-1</td>
		<td>2-1</td>
	</tr>
	<tr>
		<td>2-1</td>
		<td>2-2</td>
	</tr>
</table>


表題
group 1 group 2
1-1 2-1
2-1 2-2

inherit(継承)

下記の例では、親要素にvisibility:hiddenを指定し、子要素にvisibility:inheritを指定しています。 inheritは親要素に従うので、親要素のhidden指定が子要素にも適用され、下記の例は親要素も子要素も非表示となります。

<div style='visibility:hidden;'>親要素
	<div style='visibility:inherit;'>子要素</div>
</div>

JavaScriptで要素の表示・非表示切替

要素 下記の例は、JavaScriptで親要素にvisiblehiddenの指定を切替えています。 親要素にしかそれらの指定をしていませんが、子要素は親要素のスタイルを継承するため、親要素に従って表示が切替わります(継承)。

<script type="text/javascript">
	/* 動作確認:IE5~,Firefox,NN6~ */
	var pc=true;

	function func_pc(frm){
		var obj=document.getElementById("parent");
		if(pc){
			pc=false;
			frm.elements["btn_pc"].value="visibility:visible";
			obj.style.visibility="hidden";
		}else{
			pc=true;
			frm.elements["btn_pc"].value="visibility:hidden";
			obj.style.visibility="visible";
		}
	}
</script>

<form action="#">
	<p>
		親要素を表示・非表示にすると、子要素も親要素に従って表示・非表示になります。
	</p>
	<p>
		<input type="button" name="btn_pc" value="visibility:hidden" onclick="func_pc(this.form)" />
	</p>
	<div id="parent">親要素
		<div id="child">子要素</div>
	</div>
</form>

親要素を表示・非表示にすると、子要素も親要素に従って表示・非表示になります。

親要素
子要素

box-decoration-break CSS3~
ボックスの改行方法

unknown

box-decoration-break: slice | clone

box-decoration-breakプロパティは、ボックス内で改ページやカラム改行などが発生した時、どのようにボックスを分割するか、ボックスのページ間での分割方法を指定します。

  • デフォルト値:slice
  • 適用:全要素
  • 継承:しない

visibilityプロパティの値
説明
sliceページ毎にボックスを独立させて分割する。
cloneボックスは独立させずに分割する。

box-shadow CSS3~
ボックスの影

unknown

box-shadow: none | <shadow> [ , <shadow> ]*
<shadow> = inset? && [ <length>{2,4} && <color>? ]
-webkit-box-shadow: hoff voff blur color;

box-shadowプロパティは、ボックスに影を付けます

box-shadow: [水平方向の影オフセット] [垂直方向の影オフセット] [影のぼかし半径] [影の色]
あるいは
box-shadow: [水平方向の影オフセット] [垂直方向の影オフセット] [影の色]
のように指定します。

insetを使用すると、インナーシャドウで凹んでいるような感じで影を付けられます。

  • デフォルト値:none
  • 適用:全要素
  • 継承:しない

サポート

Chrome: ○/Safari: ○/Firefox: ○/Opera 11: ○/IE9: ○

設置サンプル

<style type="text/css">
#d_boxshadow1 {
	margin:0 10px 30px 10px; padding:10px;
	background-color:#eee;
	box-shadow:5px 5px 5px #ccc;
}
#d_boxshadow2 {
	margin:60px 10px 30px 10px; padding:10px;
	background-color:#eee;
	box-shadow:-10px -10px 0px #000;
}
#d_boxshadow3 {
	margin:30px 10px; padding:10px;
	background-color:#eee;
	box-shadow:2px 2px#ccc;
}
#d_boxshadow4 {
	width:100px; height:100px;
	margin:0 10px; padding:10px;
	background-color:#eee;
	border:3px solid #000;
	box-shadow:inset 8px 8px rgba(0,0,0,0.3);
}
</style>

<div id="d_boxshadow1">
	box-shadow:5px 5px 5px #000;
</div>
<div id="d_boxshadow2">
	box-shadow:-10px -10px 0px #000;
</div>
<div id="d_boxshadow3">
	box-shadow:2px 2px #ccc; 影のぼかしなし
</div>
<div id="d_boxshadow4">
	box-shadow:inset 8px 8px rgba(0,0,0,0.3);
</div>
表示例:Chrome表示例:Chrome

display:none と visibility:hidden の違い

unknown

display:nonevisibility:hiddenは、両方とも要素を非表示にする場合に使用します。 違いは、非表示にした要素の描画領域を確保するかしないかです。

visibility:hiddenは、非表示にした要素部分のスペースを確保しますが、display:noneは、非表示にした要素部分のスペースを確保しません。

<script type="text/javascript">
	var v=true;
	var d=true;

	/* visiblity 切替 */
	function func_v(frm){
		if(v){
			v=false;
			frm.elements["btn_v"].value="visibility:visible";
			frm.elements["elm_v"].style.visibility="hidden";
		}else{
			v=true;
			frm.elements["btn_v"].value="visibility:hidden";
			frm.elements["elm_v"].style.visibility="visible";
		}
	}
	/* display 切替 */
	function func_d(frm){
		if(d){
			d=false;
			frm.elements["btn_d"].value="display:inline";
			frm.elements["elm_d"].style.display="none";
		}else{
			d=true;
			frm.elements["btn_d"].value="display:none";
			frm.elements["elm_d"].style.display="inline";
		}
	}
</script>

<form action="#">
	<p>
		visibility:none / visible を切替表示<br>
		<input type="button" name="btn_v" value="visibility:hidden" onclick="func_v(this.form)" />
		<input type="text" name="elm_v" value="要素" size="8" />
		←要素の描画領域は確保される
	</p>
	<p>
		display:none / inline を切替表示<br>
		<input type="button" name="btn_d" value="display:none" onclick="func_d(this.form)" />
		<input type="text" name="elm_d" value="要素" size="8" />
		←要素の描画領域は確保されない
	</p>
</form>

visibility:none / visible を切替表示
←要素の描画領域は確保される

display:none / inline を切替表示
←要素の描画領域は確保されない

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women