HTML金字塔图案实现指南
下面我将展示如何使用HTML和CSS创建一个精美的金字塔图案,包含多种实现方法和视觉效果。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">HTML金字塔图案实现指南</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #1a2a6c, #b21f1f, #1a2a6c); color: #fff; min-height: 100vh; padding: 40px 20px; line-height: 1.6; } .container { max-width: 1200px; margin: 0 auto; } header { text-align: center; margin-bottom: 50px; padding: 20px; background: rgba(0, 0, 0, 0.3); border-radius: 15px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); } h1 { font-size: 3.5rem; margin-bottom: 15px; background: linear-gradient(to right, #ff8a00, #da1b60); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 2px 4px rgba(0,0,0,0.2); } .subtitle { font-size: 1.4rem; max-width: 800px; margin: 0 auto; color: #e0e0ff; } .content { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; margin-bottom: 50px; } .card { background: rgba(30, 30, 60, 0.7); border-radius: 15px; padding: 25px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4); transition: transform 0.3s ease, box-shadow 0.3s ease; backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } .card:hover { transform: translateY(-10px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5); } .card h2 { font-size: 1.8rem; margin-bottom: 20px; color: #ffcc00; border-bottom: 2px solid #ffcc00; padding-bottom: 10px; } .pyramid-container { display: flex; justify-content: center; align-items: center; min-height: 200px; margin: 20px 0; } /* 方法1:使用纯字符 */ .char-pyramid { font-family: monospace; font-size: 1.2rem; line-height: 1.2; text-align: center; color: #ffcc00; background: rgba(0, 0, 0, 0.2); padding: 15px; border-radius: 10px; } /* 方法2:使用div方块 */ .block-pyramid { display: flex; flex-direction: column; align-items: center; } .pyramid-row { display: flex; justify-content: center; margin-bottom: 5px; } .pyramid-block { width: 30px; height: 30px; background: linear-gradient(135deg, #ff8a00, #da1b60); margin: 0 2px; border-radius: 4px; box-shadow: 0 0 8px rgba(218, 27, 96, 0.6); transition: all 0.3s ease; } .pyramid-block:hover { transform: scale(1.2); background: linear-gradient(135deg, #00c9ff, #92fe9d); box-shadow: 0 0 15px rgba(0, 201, 255, 0.8); } /* 方法3:使用CSS Grid */ .grid-pyramid { display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 5px; justify-items: center; width: 100%; } .grid-item { width: 30px; height: 30px; background: linear-gradient(135deg, #00c9ff, #92fe9d); border-radius: 50%; box-shadow: 0 0 10px rgba(0, 201, 255, 0.7); opacity: 0; animation: appear 0.5s forwards; } @keyframes appear { to { opacity: 1; } } /* 方法4:使用CSS伪元素 */ .pseudo-pyramid { position: relative; width: 200px; height: 200px; margin: 0 auto; } .pseudo-pyramid::before { content: ""; position: absolute; width: 0; height: 0; border-left: 100px solid transparent; border-right: 100px solid transparent; border-bottom: 173px solid rgba(255, 200, 0, 0.8); bottom: 0; left: 0; filter: drop-shadow(0 0 10px rgba(255, 200, 0, 0.6)); } /* 代码展示样式 */ .code-container { background: #1e1e2e; border-radius: 10px; padding: 20px; margin: 20px 0; overflow-x: auto; font-family: 'Courier New', monospace; font-size: 0.95rem; line-height: 1.5; box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.7); } .code-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; color: #ffcc00; } .copy-btn { background: rgba(255, 204, 0, 0.2); color: #ffcc00; border: none; padding: 5px 15px; border-radius: 5px; cursor: pointer; transition: background 0.3s; } .copy-btn:hover { background: rgba(255, 204, 0, 0.4); } pre { margin: 0; } .comment { color: #6a9955; } .tag { color: #569cd6; } .attr { color: #9cdcfe; } .value { color: #ce9178; } .explanation { margin-top: 20px; padding: 15px; background: rgba(255, 255, 255, 0.1); border-radius: 10px; border-left: 4px solid #ffcc00; } .explanation h3 { color: #ffcc00; margin-bottom: 10px; } footer { text-align: center; padding: 30px; margin-top: 40px; background: rgba(0, 0, 0, 0.3); border-radius: 15px; font-size: 1.1rem; } @media (max-width: 768px) { .content { grid-template-columns: 1fr; } h1 { font-size: 2.5rem; } } </style> </head> <body> <div class="container"> <header> <h1>HTML金字塔图案实现指南</h1> <p class="subtitle">探索多种使用HTML和CSS创建金字塔图案的技术方法,从基础到高级实现</p> </header> <div class="content"> <div class="card"> <h2>方法1:使用纯字符</h2> <div class="pyramid-container"> <div class="char-pyramid"> ▲<br> ▲▲▲<br> ▲▲▲▲▲<br> ▲▲▲▲▲▲▲<br> ▲▲▲▲▲▲▲▲▲ </div> </div> <div class="code-container"> <div class="code-header"> <span>HTML 代码示例</span> <button class="copy-btn">复制代码</button> </div> <pre><code><span class="tag"><div</span> <span class="attr">class=</span><span class="value">"pyramid"</span><span class="tag">></span> &nbsp;&nbsp;&nbsp;&nbsp;▲<span class="tag"><br></span> &nbsp;&nbsp;&nbsp;▲▲▲<span class="tag"><br></span> &nbsp;&nbsp;▲▲▲▲▲<span class="tag"><br></span> &nbsp;▲▲▲▲▲▲▲<span class="tag"><br></span> ▲▲▲▲▲▲▲▲▲ <span class="tag"></div></span></code></pre> </div> <div class="explanation"> <h3>实现原理</h3> <p>使用纯字符和空格创建金字塔形状是最简单的方法,通过调整空格数量控制金字塔每行的缩进,使用特殊字符(如▲)构建金字塔主体。</p> </div> </div> <div class="card"> <h2>方法2:使用div方块</h2> <div class="pyramid-container"> <div class="block-pyramid"> <div class="pyramid-row"> <div class="pyramid-block"></div> </div> <div class="pyramid-row"> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> </div> <div class="pyramid-row"> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> </div> <div class="pyramid-row"> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> <div class="pyramid-block"></div> </div> </div> </div> <div class="code-container"> <div class="code-header"> <span>HTML/CSS 代码示例</span> <button class="copy-btn">复制代码</button> </div> <pre><code><span class="comment"><!-- HTML --></span> <span class="tag"><div</span> <span class="attr">class=</span><span class="value">"block-pyramid"</span><span class="tag">></span> <span class="tag"><div</span> <span class="attr">class=</span><span class="value">"pyramid-row"</span><span class="tag">></span> <span class="tag"><div</span> <span class="attr">class=</span><span class="value">"pyramid-block"</span><span class="tag">></div></span> <span class="tag"></div></span> <span class="comment"><!-- 更多行... --></span> <span class="tag"></div></span> <span class="comment"><!-- CSS --></span> <span class="tag">.block-pyramid</span> { <span class="attr">display:</span> <span class="value">flex</span>; <span class="attr">flex-direction:</span> <span class="value">column</span>; <span class="attr">align-items:</span> <span class="value">center</span>; } <span class="tag">.pyramid-row</span> { <span class="attr">display:</span> <span class="value">flex</span>; <span class="attr">justify-content:</span> <span class="value">center</span>; <span class="attr">margin-bottom:</span> <span class="value">5px</span>; } <span class="tag">.pyramid-block</span> { <span class="attr">width:</span> <span class="value">30px</span>; <span class="attr">height:</span> <span class="value">30px</span>; <span class="attr">background:</span> <span class="value">#ff6b6b</span>; <span class="attr">margin:</span> <span class="value">0 2px</span>; }</code></pre> </div> <div class="explanation"> <h3>实现原理</h3> <p>通过嵌套div元素创建金字塔的每一行,每行包含递增数量的方块,使用Flexbox布局实现居中排列,通过CSS设置方块样式和间距。</p> </div> </div> <div class="card"> <h2>方法3:使用CSS Grid</h2> <div class="pyramid-container"> <div class="grid-pyramid"> <div class="grid-item" style="grid-row: 1; grid-column: 3; animation-delay: 0s"></div> <div class="grid-item" style="grid-row: 2; grid-column: 2; animation-delay: 0.1s"></div> <div class="grid-item" style="grid-row: 2; grid-column: 3; animation-delay: 0.2s"></div> <div class="grid-item" style="grid-row: 2; grid-column: 4; animation-delay: 0.3s"></div> <div class="grid-item" style="grid-row: 3; grid-column: 1; animation-delay: 0.4s"></div> <div class="grid-item" style="grid-row: 3; grid-column: 2; animation-delay: 0.5s"></div> <div class="grid-item" style="grid-row: 3; grid-column: 3; animation-delay: 0.6s"></div> <div class="grid-item" style="grid-row: 3; grid-column: 4; animation-delay: 0.7s"></div> <div class="grid-item" style="grid-row: 3; grid-column: 5; animation-delay: 0.8s"></div> </div> </div> <div class="code-container"> <div class="code-header"> <span>HTML/CSS 代码示例</span> <button class="copy-btn">复制代码</button> </div> <pre><code><span class="comment"><!-- HTML --></span> <span class="tag"><div</span> <span class="attr">class=</span><span class="value">"grid-pyramid"</span><span class="tag">></span> <span class="tag"><div</span> <span class="attr">class=</span><span class="value">"grid-item"</span> <span class="attr">style=</span><span class="value">"grid-row:1;grid-column:3"</span><span class="tag">></div></span> <span class="comment"><!-- 更多网格项... --></span> <span class="tag"></div></span> <span class="comment"><!-- CSS --></span> <span class="tag">.grid-pyramid</span> { <span class="attr">display:</span> <span class="value">grid</span>; <span class="attr">grid-template-columns:</span> <span class="value">repeat(5, 1fr)</span>; <span class="attr">grid-gap:</span> <span class="value">5px</span>; } <span class="tag">.grid-item</span> { <span class="attr">width:</span> <span class="value">30px</span>; <span class="attr">height:</span> <span class="value">30px</span>; <span class="attr">background:</span> <span class="value">#4ecdc4</span>; <span class="attr">border-radius:</span> <span class="value">50%</span>; <span class="attr">op
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/19968.html