如何仅使用 HTML 和 CSS 创建爱尔兰国旗? [复制]

Posted

技术标签:

【中文标题】如何仅使用 HTML 和 CSS 创建爱尔兰国旗? [复制]【英文标题】:How to create Irish flag using just HTML and CSS? [duplicate] 【发布时间】:2020-05-25 22:22:36 【问题描述】:

我使用 html 和 CSS 创建了印度国旗(Ashok Chakra 除外)。现在我想创建爱尔兰国旗,它只是垂直三色,而不是像印度国旗那样的水平三色。那么我该如何实现呢?我创建了以下代码。

body 
  background-color: yellow;
  margin-left: 40%;
  margin-right: 40%;


.top 
  background-color: orange;
  width: 320px;
  height: 80px;


.mid 
  background-color: white;
  width: 320px;
  height: 80px;


.botm 
  background-color: green;
  width: 320px;
  height: 80px;
<html>

<head>
  <link rel="stylesheet" type="text/css" href="india.css">
  <title>Flag</title>
</head>

<body>
  <div class="top"></div>
  <div class="mid"></div>
  <div class="botm"></div>
</body>

</html>

【问题讨论】:

很多方法来创建 3 列 您真正的问题是如何将 div 放在同一行? 尝试搜索,您会找到数百万篇文章。 【参考方案1】:

如下例所示,带有linear-gradient 或双插入box-shadow 的单个div 就足够了


线性渐变

.irishflag  
        background: linear-gradient(to right, #169B62 33.33%, #fff 0, #fff 66.66%, #FF883E 0);
        width: 270px;
        height: 135px;
    
&lt;div class="irishflag"&gt;&lt;/div&gt;

盒子阴影

.irishflag  
    box-shadow: 90px 0 #169B62 inset, -90px 0 #FF883E inset;
    width: 270px;
    height: 135px;
&lt;div class="irishflag"&gt;&lt;/div&gt;

颜色和比例取自wikipedia

【讨论】:

【参考方案2】:

只需添加一个带有display:flex 的标志容器;和倒序。像这样:

body
  background-color:yellow;
  margin-left:40%;    
  margin-right:40%;


.top
  background-color:orange;
  width:320px;
  height:80px;


.mid
  background-color:white;
  width:320px;
  height:80px;


.botm
  background-color:green;
  width:320px;
  height:80px;


.flag
  display: flex;
    flex-direction: row-reverse;
  <div class="flag">
    <div class="top"></div>
    <div class="mid"></div>
    <div class="botm"></div>
  </div>

【讨论】:

有了flex,你可以使用伪类;)codepen.io/gc-nomade/pen/MWwwbxe【参考方案3】:

您可以使用 flexbox 将您的“颜色”排列成一行,如下所示:

body
    background-color:yellow;
    margin-left:40%;    
    margin-right:40%;
    display: flex     /* <-- Make children aligned in a row */


.right
    background-color:orange;
    width:320px;
    height:80px;


.mid
    background-color:white;
    width:320px;
    height:80px;


.left
    background-color:green;
    width:320px;
    height:80px;
<body>
  <div class="left"></div>
  <div class="mid"></div>
  <div class="right"></div>
</body>

【讨论】:

【参考方案4】:

你可以通过给父div一个显示值flex来获得大部分的方法:

display: flex;

然后它的所有直接子代一个flex的值,表示每个的宽度应该接近父代宽度的三分之一:

flex: 1 1 33%;

工作示例:

.flag 
  display: flex;
  width: 291px;
  height: 180px;
  box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.2);


.third 
  flex: 1 1 33%;


.ireland .left 
  background-color: green;


.ireland .center 
  background-color: white;


.ireland .right 
  background-color: orange;
<div class="flag ireland">
  <div class="left third"></div>
  <div class="center third"></div>
  <div class="right third"></div>
</div>

【讨论】:

有了flex,你可以使用伪类;)codepen.io/gc-nomade/pen/MWwwbxe【参考方案5】:

浮动方式:

 .top 
     background-color:
         orange;
     width: 120px;
     height: 320px;
     float: left;
 

 .mid 
     background-color:
         white;
     width: 120px;
     height: 320px;
     float: left;
 

 .botm 
     background-color:
         green;
     width: 120px;
     height: 320px;
     float: left;
 

 .flag 
     overflow: hidden;
 

HTML:

  <div class="flag">
    <div class="top"></div>
    <div class="mid"></div>
    <div class="botm"></div>
  </div>

【讨论】:

以上是关于如何仅使用 HTML 和 CSS 创建爱尔兰国旗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用 CSS 删除 html <table> 列?

如何仅使用 CSS 创建淡入/淡出效果?

我如何仅使用CSS创建2行的项目网格?

如何仅使用 CSS 和 HTML 约束动画?

图灵机上的荷兰国旗

如何仅使用 bootstrap 3 网格系统和 css 创建砌体效果