Встроенный svg в css скрыт за div - PullRequest
0 голосов
/ 04 марта 2019

Я использую встроенный SVG в CSS, чтобы можно было увидеть изображение.Но это не работает, потому что изображение скрыто за всем div, и даже если я добавлю z-index, изображение не будет видно.Кроме того, изображение размещается внизу элемента div, и оно должно быть вверху.

Ниже я размещаю свой код HTML и CSS, чтобы вам было легче видеть, что я делаю.

.curve {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-150 0 1000 270' style='transform: translateY(-5px)'><path d='M-314,267 C105,364 400,100 812,279' fill='none' stroke='#53DD6C' stroke-width='120' stroke-linecap='round' /></svg>");
  background-repeat: no-repeat;
}
<div class="curve">
  <div class="beforeFooter">
    <div id="blankGTitle">
      <h2>Impacting lives.</h2>
    </div>

    <div id="blankGText">
      <h3>Create your event and make a difference.</h3>
    </div>

    <div id="buttono4">
      <nuxt-link to="/create-event">
        <buttons-vue text="create my event" type="buttonWhiteBackground buttonForInsetShadow buttonForInsetShadow:hover buttonForInsetShadow:active" />
      </nuxt-link>
    </div>

    <div id="blankGText2">
      <nuxt-link to="/organiser" id="blankGText2" class="wText">
        <p class="underline">Tell me more</p>
      </nuxt-link>
    </div>
  </div>
</div>

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Я изменил шестнадцатеричный цвет на rgb, У firefox есть проблемы с шестнадцатеричными цветами для встроенного svg .Он отображается для меня на Chrome правильно с шестнадцатеричным.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SVG</title>
    <style>
        .curve {
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-150 0 1000 270' style='transform: translateY(-5px)'><path d='M-314,267 C105,364 400,100 812,279' fill='none' stroke='rgb(83,221,108)' stroke-width='120' stroke-linecap='round' /></svg>");
            background-repeat: no-repeat;
            }
    </style>
</head>

<main>
    <div class="curve">
        <div class="beforeFooter">
            <div id="blankGTitle">
                <h2>Impacting lives.</h2>
            </div>

            <div id="blankGText">
                <h3>Create your event and make a difference.</h3>
            </div>

            <div id="buttono4">
                <nuxt-link to="/create-event">
                    <buttons-vue text="create my event"
                        type="buttonWhiteBackground buttonForInsetShadow buttonForInsetShadow:hover buttonForInsetShadow:active" ></buttons-vue>
                </nuxt-link>
            </div>

            <div id="blankGText2_">
                <nuxt-link to="/organiser" id="blankGText2" class="wText">
                    <p class="underline">Tell me more</p>
                </nuxt-link>
            </div>
        </div>
    </div>
</main>
0 голосов
/ 04 марта 2019

Есть ли причина, по которой вы включаете его в background-image?Вы можете попробовать переместить его из фонового изображения в HTML, а затем сделать его фоном с помощью CSS position: absolute.

. Я немного изменил ваш пример, чтобы включить мою идею.Дайте мне знать, если это не совсем то, что вы ищете, и я могу помочь вам немного дальше?

.curve {
  position: relative;
}

.curve svg {
  position: absolute;
  z-index: -3;
  bottom: 0;
}

.curve svg path {
  fill: none;
  stroke: #53DD6C;
  stroke-width: 120;
  stroke-linecap: round;
}
<div class="curve">
  <svg xmlns='http://www.w3.org/2000/svg' viewBox='-150 0 1000 270'> <path d='M-314,267 C105,364 400,100 812,279'/> </svg>
  <div class="beforeFooter">
    <div id="blankGTitle">
      <h2>Impacting lives.</h2>
    </div>

    <div id="blankGText">
      <h3>Create your event and make a difference.</h3>
    </div>

    <div id="buttono4">
      <nuxt-link to="/create-event">
        <buttons-vue text="create my event" type="buttonWhiteBackground buttonForInsetShadow buttonForInsetShadow:hover buttonForInsetShadow:active" />
      </nuxt-link>
    </div>

    <div id="blankGText2">
      <nuxt-link to="/organiser" id="blankGText2" class="wText">
        <p class="underline">Tell me more</p>
      </nuxt-link>
    </div>
  </div>
</div>

Или, если вы хотите, чтобы это было вверху, вы можете повернуть его так:

.curve {
  position: relative;
}

.curve svg {
  position: absolute;
  z-index: -3;
  transform: rotate(180deg);
  top: 0;
}

.curve svg path {
  fill: none;
  stroke: #53DD6C;
  stroke-width: 120;
  stroke-linecap: round;
}
<div class="curve">
  <svg xmlns='http://www.w3.org/2000/svg' viewBox='-150 0 1000 270'> <path d='M-314,267 C105,364 400,100 812,279'/> </svg>
  <div class="beforeFooter">
    <div id="blankGTitle">
      <h2>Impacting lives.</h2>
    </div>

    <div id="blankGText">
      <h3>Create your event and make a difference.</h3>
    </div>

    <div id="buttono4">
      <nuxt-link to="/create-event">
        <buttons-vue text="create my event" type="buttonWhiteBackground buttonForInsetShadow buttonForInsetShadow:hover buttonForInsetShadow:active" />
      </nuxt-link>
    </div>

    <div id="blankGText2">
      <nuxt-link to="/organiser" id="blankGText2" class="wText">
        <p class="underline">Tell me more</p>
      </nuxt-link>
    </div>
  </div>
</div>
...