css - 如何使用 svg 或其他响应式解决方案制作 flex 的标题

标签 css svg header css-shapes curve

我正在尝试制作一个 flex 的标题。 我想知道是否有人可以指出正确的方向/或标题的最佳方法,如下图所示。我不是开发人员,所以我在努力。

here is the image of the theme and curved header

这是我的代码。我怎样才能在上面的图片上制作完全相同的标题?

*{
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}
:root{
    --red-color:#FF5F6D;
    --white-color:#FFFFFF;
    --yellow-color:#fff9c4;
}
body{
    padding: 0;
    margin: 0;
}
.wrapper{
    display: grid;
    grid-template-columns: 1fr;
    text-align: center;
    align-items: center;
    justify-content: center;    
      
}
.wrapper >*{
    font-size: 1.5rem;
    font-weight: 800;
}
.t-orange-nav{
    background-color: var(--red-color);
    color: var(--yellow-color);
    position: relative;
}

.t-orange-nav > div {
  border-bottom: 3px solid white;
  max-width: 800px;
  margin: 0 auto;
  padding: 20px 0;
}

.t-orange-nav p {
  font-size: 10px;
}

.t-orange-header{
  padding: 20px 0;
    background-color: var(--red-color);
    height: 200px;
    color: var(--yellow-color);
    width: 100%;
    margin: 0 auto;
    background: linear-gradient(#FF5F6D , #FFC371 );    
}


.t-orange-section{
  background-color: var(--white-color);
   color: #FF5F6D;
   height: 300px;
   width: 95%;
   margin: 0 auto;
   
}

.t-orange-section > div {
  border-bottom: 3px solid black;
  max-width: 1000px;
  margin: 0 auto;
  padding: 100px 0;
}

.t-orange-article{
   background-color: var(--white-color);
   color: #FF5F6D;
   height: 300px;
   width: 95%;
   margin: 0 auto;      
}

.t-orange-article > div {
  border-bottom: 3px solid black;
  max-width: 1000px;
  margin: 0 auto;
  padding: 100px 0;
}
.t-orange-aside{
    background-color: var(--white-color);
    color: var(--red-color);
    height: 200px;
        
}
.t-orange-footer{
    background-color: var(--red-color);
    color: var(--yellow-color);
    height: 50px;
}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
    <title></title>
</head>
<body>
    <div class="wrapper">
        <nav class="t-orange-nav">
          <div>
            nav
            
          </div>
        </nav>
        <header class="t-orange-header">
          <div>
            HEADER
	         </div>

        </header>
        <section class="t-orange-section">
          <div>
            section
          </div>
        </section>
        <article class="t-orange-article">
          <div>  
          article
          </div>
        </article>
        <aside class="t-orange-aside">
            aside
        </aside>
        <footer class="t-orange-footer">
            footer
        </footer>
    </div>
</body>
</html>

最佳答案

您可以为此使用 SVG 图像。只需将下面的代码复制到您的 html 中或使用 .svg 扩展名将其保存并将其用作常规图像。

<?xml version="1.0" encoding="utf-8"?>
<svg id="svg" version="1.1" style="display: block;" viewBox="0.148 0.121 399.909 187.745" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <pattern id="pattern-0" x="0" y="0" width="25" height="25" patternUnits="userSpaceOnUse" viewBox="0 0 100 100">
      <rect x="0" y="0" width="50" height="100" style="fill: black;"/>
    </pattern>
    <linearGradient id="gradient-3" gradientUnits="userSpaceOnUse" x1="221.781" y1="-17.569" x2="221.781" y2="162.313" gradientTransform="matrix(-0.999997, 0.002512, -0.002478, -0.986265, 326.399578, 161.652725)" spreadMethod="pad">
      <stop offset="0" style="stop-color: rgb(254, 199, 131);"/>
      <stop offset="1" style="stop-color: rgb(253, 122, 126);"/>
    </linearGradient>
  </defs>
  <g id="svgg">
    <path id="path1" d="M 0.317 160.263 C 0.491 160.322 54.672 181.321 96.41 186.555 C 138.827 191.875 170.592 177.656 200.188 146.3 C 235.21 109.196 258.892 111.366 299.457 117.682 C 336.776 123.493 399.859 155.012 399.781 157.423 C 399.76 158.082 400 0 400 0 L 0 0" stroke="none" fill-rule="evenodd" style="fill: url(#gradient-3);"/>
  </g>
</svg>

关于css - 如何使用 svg 或其他响应式解决方案制作 flex 的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548827/

相关文章:

command-line - 加密 header 时出现命令行 7zip 问题

PHP页面重定向

html - 如何在 CSS 中组合通配符和非选择器

javascript - 我想在android中的TextView上显示html文件的内容(带格式)

javascript - Firefox 中半透明矩形的 SVG 网格

svg - 如何在 SVG 中使用我自己的混合公式?

jquery - 数据表标题已移动

html - 如何做一个CSS表格

javascript - 图像搞乱了 jQuery 函数

linux - 将 base64 svg 数据解码为 svg 文件