PHP前端开发

使用HTML和CSS创建印度国旗

百变鹏仔 3个月前 (09-22) #HTML
文章标签 印度

我们知道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等来创建一个美观的国旗。