<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>:only-of-type</title>
		
		<style type='text/css'>
		<!--

			body { background: #fff; color: 000; font-family: Arial, Helvetica, sans-serif; }
			pre { background: #fff; padding: 0.5em; }
			li { background: #aaa; padding: 1em; width: 80%; margin: 0 0 3em; }
			.test { display: block; padding: 0.75em; }
			.base, .defaultgreen { background-color: #090; }
			.defaultred { background-color: #900; }
			
			.defaultred :only-of-type {
				background-color: #090;
			}

			.defaultgreen :only-of-type {
				background-color: #900;
			}
			
			blockquote {
				margin: 0;
			}

		-->			
		</style>		
	</head>

	<body>
		<p>This page is part of the <a href="http://www.css3.info">CSS3.info</a> <a href="http://www.css3.info/selectors-test/">CSS selectors test</a>. See more info on <a href="http://www.css3.info/preview/attribute-selectors.html">CSS3 selectors</a>.</p>
		
		<div class='base'></div>
	
		<ol>
			<li>
				<div class='defaultred'>
					<div class='test required'></div>
				</div>
				
				<pre>div:only-of-type {
}

&lt;div&gt;Does this element match?&lt;/div&gt;</pre>

				<p>
					The CSS selector should match the marked div element, because it is the only element of this type
				</p>
			</li>
			
			<li>
				<div class='defaultred'>
					<div class='test required'></div>
					<blockquote></blockquote>
				</div>
				
				<pre>div:only-of-type {
}

&lt;div&gt;Does this element match?&lt;/div&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;</pre>

				<p>
					The CSS selector should match the marked div element, because it is the only element of this type
				</p>
			</li>			

			<li>
				<div class='defaultred'>
					<div class='test'></div>
					<blockquote>
						<div></div>
					</blockquote>
				</div>
				
				<pre>div:only-of-type {
}

&lt;div&gt;Does this element match?&lt;/div&gt;
&lt;blockquote&gt;
   &lt;div&gt;&lt;/div&gt;
&lt;/blockquote&gt;</pre>

				<p>
					The CSS selector should match the marked div element, because it is the only element of this type in this scope
				</p>
			</li>			

			<li>
				<div class='defaultgreen'>
					<div class='test default required'></div>
					<div></div>
				</div>
				
				<pre>div:only-of-type {
}

&lt;div&gt;Does this element match?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</pre>

				<p>
					The CSS selector should not match the marked div element, because it is not the only element of this type
				</p>
			</li>

			<li>
				<div class='defaultgreen'>
					<div id='appendChild' class='test default'></div>
				</div>

				<script type="text/javascript">
				<!--

					var ib = document.getElementById('appendChild');
					ib.parentNode.appendChild(document.createElement("div"));
				
				//-->
				</script>
				
				<pre>div:only-of-type {
}

&lt;div id='appendChild'&gt;&lt;/div&gt;

var ib = document.getElementById('appendChild');
ib.parentElement.appendChild(document.createElement("div"));</pre>

				<p>
					The CSS selector should not match the original div element, because it is
					not the only of its type anymore after another child with the same type is append 
					by the Javascript code. 
				</p>
			</li>
		</ol>
	</body>
</html>
