HTML 使用HTML和CSS创建印度国旗
我们知道,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)
}
我们用第n个孩子的伪类将每条线旋转15度,因为12条线从中心旋转15度,将形成24条辐条。第n个孩子的伪类是用来匹配大括号内数字指定的容器中的子元素。
我们所创建的只是一个看起来很简单的旗子,但利用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中的属性,如背景色、边框、边框半径、变换等来创建一个漂亮的国旗。