所属分类:web前端开发
我们知道HTML和CSS是用于网络和设计的语言,但我们可以做的远不止制作网页应用。例如,我们还可以使用它们制作一个有趣的项目,这将需要对这两种语言的深入了解。
所以,我们手头的任务是使用HTML和CSS来创建印度国旗。无论我们想要创建什么类型的国旗,都会有两个部分:第一个是旗杆,第二个是旗帜本身。正如我们所知,对于我们来说,向矩形DIV添加颜色并制作国旗的三色部分实际上相当简单,棘手的部分将是制作轮子。
因此,方法是使用一个容器元素来保存整个标志。这将分为两部分:一根杆子和旗帜。标志部分将包含三个元素,每个元素从上到下代表各自的颜色。这三个元素中的中间元素将充当轮子的容器元素。
让我们继续创建标志。
正如我们所讨论的,外部容器将容纳整个旗帜(旗帜和杆部分)。我们将使用 div 标签并给它一个“容器”类。此 div 标签中将嵌套两个 div,一个用于杆子,一个用于旗帜。
现在的问题是我们希望这两个div元素都是内联的,所以我们将使用display:flex属性来实现。之后,我们将指定元素的宽度、高度和颜色。
代码的 html 部分看起来像 -
<div class="container"> <div class="polePart"></div> <div class="flagPart"></div> </div>
CSS 部分将是 -
.container { display: flex; } .polePart { height: 800px; width: 11.111px; background: brown; border-top-left-radius: 12px; } .flagPart { width: 450px; height: 300px; box-shadow: 0px 0px 90px 1px rgb(129, 115, 129); background-color: transparent; position: relative; }
现在我们将开始添加三色的三种颜色。为此,我们将在 flagPart 中使用三个嵌套的 div。然后,我们将首先给它们适当的宽度和高度,所有这些都彼此相等,然后为它们分配各自的背景颜色。第一个 div 的背景色为藏红花色,中间的 div 的背景色为白色,底部的 div 的背景色为绿色。
HTML 部分−
<body> <div class="topColor"></div> <div class="middleColor"></div> <div class="bottomColor"></div> </body>
CSS 部分−
.topColor { height: 100px; background-color: #ff9933 } .middleColor { height: 100px; background-color: white } .bottomColor { height: 100px; background-color: green }
请注意,我们不需要指定内部div的宽度,因为我们希望它们延伸到父div的大小,即具有middleColor类的div。
现在我们将在中间部分添加轮子,我们知道轮子中有 24 个辐条,这就是为什么我们将使用 12 条线并使用 CSS 将它们旋转角度,使它们形成一个圆圈。
请注意,这只会形成辐条,对于轮子的圆形部分,我们将使用轮子容器的“border-radius”属性。
HTML 部分 −
<!DOCTYPE html> <html lang="en"> <head> <title>Document</title> </head> <body> <div class="wheelPart"> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> </div> </body> </html>
CSS 部分 −
.wheelPart { height: 99px; width: 99px; border: 1px solid darkblue; border -radius: 100px; position: relative; margin: 0 auto } .wheelPart .spokeLine { height: 100%; width: 1px; display: inline -block; position: absolute; left: 50%; background: darkblue; } .spokeLine:nth -child(1) { transform: rotate(15deg) } .spokeLine:nth -child(2) { transform: rotate(30deg) } .spokeLine:nth -child(3) { transform: rotate(45deg) } .spokeLine:nth -child(4) { transform: rotate(60deg) } .spokeLine:nth -child(5) { transform: rotate(75deg) } .spokeLine:nth -child(6) { transform: rotate(90deg) } .spokeLine:nth-child(7) { transform: rotate(105deg) } .spokeLine:nth-child(8) { transform: rotate(120deg) } .spokeLine:nth-child(9) { transform: rotate(135deg) } .spokeLine:nth-child(10) { transform: rotate(150deg) } .spokeLine:nth-child(11) { transform: rotate(165deg) } .spokeLine:nth-child(12) { transform: rotate(180deg) }
我们使用了nth-child伪类来将每一行旋转15度,因为从中心旋转15度的12行将形成24个辐条。nth child伪类用于匹配在大括号中指定的容器的子元素的编号。
我们所创建的只是一个简单的旗帜,但是利用CSS的高级知识,我们可以做得更多。使用动画,我们可以使旗帜看起来像在风中飘动或者移动轮子,但是在本文中我们不会深入讨论这些。
以下是上述的完整工作示例 -
<!DOCTYPE html> <html lang="en"> <head> <title>Document</title> <style> .container { display: flex; } .polePart { height: 800px; width: 11.111px; background: brown; border-top-left-radius: 12px; } .flagPart { width: 450px; height: 300px; box-shadow: 0px 0px 90px 1px rgb(129, 115, 129); background-color: transparent; position: relative; } .topColor { height: 100px; background-color: #ff9933 } .middleColor { height: 100px; background-color: white } .bottomColor { height: 100px; background-color: green } .wheelPart { height: 99px; width: 99px; border: 1px solid darkblue; border-radius: 100px; position: relative; margin: 0 auto; } .wheelPart .spokeLine { height: 100%; width: 1px; display: inline-block; position: absolute; left: 50%; background: darkblue; } .spokeLine:nth -child(1) { transform: rotate(15deg) } .spokeLine:nth -child(2) { transform: rotate(30deg) } .spokeLine:nth -child(3) { transform: rotate(45deg) } .spokeLine:nth -child(4) { transform: rotate(60deg) } .spokeLine:nth -child(5) { transform: rotate(75deg) } .spokeLine:nth -child(6) { transform: rotate(90deg) } .spokeLine:nth -child(7) { transform: rotate(105deg) } .spokeLine:nth -child(8) { transform: rotate(120deg) } .spokeLine:nth -child(9) { transform: rotate(135deg) } .spokeLine:nth-child(10) { transform: rotate(150deg) } .spokeLine:nth-child(11) { transform: rotate(165deg) } .spokeLine:nth-child(12) { transform: rotate(180deg) } </style> </head> <body> <div class="container"> <div class="polePart"></div> <div class="flagPart"> <div class="topColor"></div> <div class="middleColor"> <div class="wheelPart"> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> <span class="spokeLine"></span> </div> </div> <div class="bottomColor"></div> </div> </div> </body> </html>
在本文中,我们看到了如何利用HTML和CSS来创建印度国旗,三色旗。我们看到可以使用CSS中的属性,如background-color、border、border-radius、transform等来创建一个美观的国旗。