文章目录
CSS绘制奥运五环
1.伪元素遮盖法

html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>奥运五环-伪元素遮盖法</title>
<style>
/*
* {
margin: 0;
padding: 0;
box-sizing: border-box;
} */
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
padding: 20px;
}
.container {
text-align: center;
max-width: 800px;
padding: 30px;
background-color: rgba(255, 255, 255, 0.9);
border-radius: 20px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
h1 {
color: #2c3e50;
margin-bottom: 10px;
font-family: "楷体";
font-size: 3.4rem;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
.subtitle {
color: #7f8c8d;
margin-bottom: 30px;
font-size: 1.2rem;
}
.olympics-container {
position: relative;
width: 600px;
height: 400px;
margin: 0 auto 40px;
display: flex;
justify-content: center;
align-items: center;
}
/*奥运五环的CSS属性*/
.ring {
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
border-width: 20px;
border-style: solid;
top: -20px;
right: -20px;
}
.green {
color: #30a751;
top: 70px;
right: -160px;
z-index: 2;
}
.black {
position: relative;
width: 200px;
height: 200px;
border-radius: 50%;
border-width: 20px;
border-style: solid;
margin: 10vw auto;
}
.black::before {
content: "";
position: absolute;
width: 200px;
height: 200px;
border-radius: 100%;
top: -20px;
right: -20px;
border: 20px solid transparent;
border-bottom: 20px solid currentcolor;
z-index: 1;
}
.black::after {
content: "";
position: absolute;
width: 200px;
height: 200px;
border-radius: 100%;
top: -20px;
right: -20px;
border: 20px solid transparent;
border-right: 20px solid currentcolor;
z-index: 3;
}
.red {
color: #ef314e;
right: -275px;
}
.red::after {
content: "";
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
border-width: 20px;
border-style: solid;
top: -20px;
right: -20px;
border: solid 20px transparent;
border-bottom: solid 20px currentcolor;
z-index: 2;
}
.yellow {
color: #fcb32e;
top: 70px;
left: -138px;
}
.blue {
color: #0082c9;
left: -273px;
}
.blue::after {
content: "";
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
border-width: 20px;
border-style: solid;
top: -20px;
right: -20px;
border: solid 20px transparent;
border-right: solid 20px currentcolor;
z-index: 2;
}
/**/
/* 奥运五环标志 */
.olympic-symbol {
font-size: 1.5rem;
color: #2c3e50;
margin-top: 20px;
letter-spacing: 2px;
font-weight: bold;
}
/* 环的颜色说明 */
.blue-color { background-color: #0085C7; }
.yellow-color { background-color: #F4C300; }
.black-color { background-color: #000000; }
.green-color { background-color: #009F3D; }
.red-color { background-color: #DF0024; }
.color-info {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 15px;
margin-top: 30px;
}
.color-item {
display: flex;
align-items: center;
margin: 5px 10px;
}
.color-box {
width: 20px;
height: 20px;
border-radius: 3px;
margin-right: 8px;
}
.footer {
margin-top: 30px;
color: #7f8c8d;
font-size: 0.9rem;
}
</style>
</head>
<body>
<div class="container">
<h1>奥运五环</h1>
<p class="subtitle">使用纯HTML和CSS绘制 - 代表五大洲的团结</p>
<div class="olympics-container">
<div class="black">
<div class="ring blue"></div>
<div class="ring yellow"></div>
<div class="ring green"></div>
<div class="ring red"></div>
</div>
</div>
<div class="olympic-symbol">OLYMPIC RINGS</div>
<div class="color-info">
<div class="color-item">
<div class="color-box blue-color"></div>
<span>蓝色 - 欧洲</span>
</div>
<div class="color-item">
<div class="color-box yellow-color"></div>
<span>黄色 - 亚洲</span>
</div>
<div class="color-item">
<div class="color-box black-color"></div>
<span>黑色 - 非洲</span>
</div>
<div class="color-item">
<div class="color-box green-color"></div>
<span>绿色 - 大洋洲</span>
</div>
<div class="color-item">
<div class="color-box red-color"></div>
<span>红色 - 美洲</span>
</div>
</div>
<div class="footer">
<p>奥运五环标志由皮埃尔·德·顾拜旦于1913年设计,五个环代表五大洲,六种颜色(含白色背景)代表当时所有国家的国旗颜色</p>
<p style="margin-top: 10px;">少莫千华 | 纯CSS实现 | 无JavaScript | 响应式设计</p>
</div>
</div>
</body>
</html>
2.元素旋转法

html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>奥运五环-元素旋转法</title>
<style>
/*
* {
margin: 0;
padding: 0;
box-sizing: border-box;
} */
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
padding: 20px;
}
.container {
text-align: center;
max-width: 800px;
padding: 30px;
background-color: rgba(255, 255, 255, 0.9);
border-radius: 20px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
h1 {
color: #2c3e50;
margin-bottom: 10px;
font-family: "楷体";
font-size: 3.4rem;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
.subtitle {
color: #7f8c8d;
margin-bottom: 30px;
font-size: 1.2rem;
}
.olympics-container {
position: relative;
width: 600px;
height: 400px;
margin: 24px;
display: flex;
justify-content: center;
align-items: center;
transform-style: preserve-3d;
}
/*奥运五环的CSS属性*/
.ring {
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
border-width: 20px;
border-style: solid;
top: -20px;
right: -20px;
}
/*504*/
.blue {
color: #0082c9;
left: 0px;
top: 0px;
transform: rotateX(356deg);
transform-origin: center 75%;
}
.yellow {
color: #fcb32e;
top: 100px;
left: 126px; /*240+6 - 120 */
transform: rotateX(358deg);
transform-origin: center 25%;
}
.black {
color:#000000;
top: 0px;
left: 252px; /*200 + 40 +12 */
}
.green {
color: #30a751;
top: 100px;
left: 376px;/*504-6 - 120 */
transform: rotateX(2deg);
transform-origin: center 25%;
}
.red {
color: #ef314e;
top: 0px;
left: 504px; /*200 + 40 +20 */
transform: rotateX(4deg);
transform-origin: center 75%;
}
/**/
/* 奥运五环标志 */
.olympic-symbol {
font-size: 1.5rem;
color: #2c3e50;
margin-top: 20px;
letter-spacing: 2px;
font-weight: bold;
}
/* 环的颜色说明 */
.blue-color { background-color: #0085C7; }
.yellow-color { background-color: #F4C300; }
.black-color { background-color: #000000; }
.green-color { background-color: #009F3D; }
.red-color { background-color: #DF0024; }
.color-info {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 15px;
margin-top: 30px;
}
.color-item {
display: flex;
align-items: center;
margin: 5px 10px;
}
.color-box {
width: 20px;
height: 20px;
border-radius: 3px;
margin-right: 8px;
}
.footer {
margin-top: 30px;
color: #7f8c8d;
font-size: 0.9rem;
}
</style>
</head>
<body>
<div class="container">
<h1>奥运五环</h1>
<p class="subtitle">使用纯HTML和CSS绘制 - 代表五大洲的团结</p>
<div class="olympics-container">
<div class="ring black"></div>
<div class="ring blue"></div>
<div class="ring yellow"></div>
<div class="ring green"></div>
<div class="ring red"></div>
</div>
<div class="olympic-symbol">OLYMPIC RINGS</div>
<div class="color-info">
<div class="color-item">
<div class="color-box blue-color"></div>
<span>蓝色 - 欧洲</span>
</div>
<div class="color-item">
<div class="color-box yellow-color"></div>
<span>黄色 - 亚洲</span>
</div>
<div class="color-item">
<div class="color-box black-color"></div>
<span>黑色 - 非洲</span>
</div>
<div class="color-item">
<div class="color-box green-color"></div>
<span>绿色 - 大洋洲</span>
</div>
<div class="color-item">
<div class="color-box red-color"></div>
<span>红色 - 美洲</span>
</div>
</div>
<div class="footer">
<p>奥运五环标志由皮埃尔·德·顾拜旦于1913年设计,五个环代表五大洲,六种颜色(含白色背景)代表当时所有国家的国旗颜色</p>
<p style="margin-top: 10px;">少莫千华 | 纯CSS实现 | 无JavaScript | 响应式设计</p>
</div>
</div>
</body>
</html>