はじめに
CSSを学びたいStep22です!!空コンテンツの制御をCSSで実施していこうと思います!
成果物
ソースコード
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>空コンテンツの制御</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h2>空コンテンツの制御の例</h2>
<div class="container">
<div class="empty-element"> </div> <!-- 空白文字が含まれているが、視覚的には空 -->
<div class="non-empty-element">コンテンツがあります。</div>
<div class="parent-element">
<p>子要素があります。</p>
</div>
<div class="parent-element"></div>
<div class="empty-element"></div> <!-- 完全に空の要素 -->
<div class="parent-element">
<span>別の子要素があります。</span>
</div>
</div>
</body>
</html>
styles.css
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h2 {
text-align: center;
color: #333;
}
.container {
display: flex;
flex-direction: column;
gap: 10px;
}
.container > div {
background-color: #ddd;
padding: 20px;
text-align: center;
}
/* 空の要素を非表示にする */
.container > div:empty {
display: none;
}
/* 子要素として <p> を持つ親要素を非表示にする */
.container > div:has(p) {
display: none;
}
おまけ
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>空コンテンツの例</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h2>空コンテンツの例</h2>
<div class="container">
<div class="empty-element"> </div> <!-- 空白文字が含まれているが、視覚的には空 -->
<div class="non-empty-element">コンテンツがあります。</div>
<div class="parent-element">
<p>子要素があります。</p>
</div>
<div class="parent-element"></div>
<div class="empty-element"></div> <!-- 完全に空の要素 -->
<div class="parent-element">
<span>別の子要素があります。</span>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
styles.css
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h2 {
text-align: center;
color: #333;
}
.container {
display: flex;
flex-direction: column;
gap: 10px;
}
.container > div {
background-color: #ddd;
padding: 20px;
text-align: center;
}
/* 空の要素を非表示にする */
.container > div:empty {
display: none;
}
/* 子要素として <p> を持つ親要素を非表示にする */
.container > div:has(p) {
display: none;
}