宽度和高度100%在弹出的图像上不起作用

问题描述 投票:0回答:3

我有一个与我联系的按钮,但是,只要有人将鼠标悬停在该按钮上,我都希望显示全屏图像背景。但是,此图像不是全屏显示。

a {
  text-decoration: none;
  color: white;
  /*Let's Chat colour*/
}

.Oval {
  position: relative;
  font-family: 'Open Sans', sans-serif;
  top: 510px;
  text-align: center;
  font-size: 25px;
  text-color: white;
  left: 30%;
  z-index: 75;
  background-color: orange;
  width: 140px;
  height: auto;
  background: #162129;
  border-radius: 40px;
  padding: 0px;
  text-decoration: none;
}

.Oval:hover {
  position: relative;
}

.Oval:hover:after {
  content: url(Lightning1.JPG);
  display: block;
  position: absolute;
  center: 100%;
  top: -510px;
  opacity: 0.5;
  z-index: -10;
  height: 100%;
  width: 100%;
}
<div class="Oval"><a href="mailto:">Let's Chat</a></div>
html css image frontend visual-web-developer
3个回答
0
投票

希望

a {
  text-decoration: none;
  color: white;
  /*Let's Chat colour*/
}

.Oval {
  position: relative;
  font-family: 'Open Sans', sans-serif;
  top: 510px;
  text-align: center;
  font-size: 25px;
  text-color: white;
  left: 30%;
  z-index: 75;
  background-color: orange;
  width: 140px;
  height: auto;
  background: #162129;
  border-radius: 40px;
  padding: 0px;
  text-decoration: none;
}

.Oval:hover {
  position: inherit;
  left:0;
}
.Oval:hover a{display:none;}

.Oval:hover:after {
  content:'';
  background: url(https://i.imgur.com/QgfTfOU.jpg);
  background-size:cover;
  display: block;
  position: absolute;
  center: 100%;
  top:0;
  left:0;
  opacity: 0.5;
  z-index: 1;
  height: 100%;
  width: 100%;
}
<div class="Oval"><a href="mailto:">Let's Chat</a></div>

这对您有帮助。


0
投票

CSS属性position:absolute精确地表示为:

相对于其最接近的祖先位置

  1. 如果您想让背景图片占据所有屏幕空间,然后可以通过CSS属性position:fixed实现通过它,您可以将其相对于视口放置。然后,将上,下,左,右值精确到0,即可所有视口的元素。

例如:

a {
  text-decoration: none;
  color: white;
  /*Let's Chat colour*/
}

.Oval {
  position: relative;
  font-family: 'Open Sans', sans-serif;
  top: 510px;
  text-align: center;
  font-size: 25px;
  text-color: white;
  left: 30%;
  z-index: 75;
  background-color: orange;
  width: 140px;
  height: auto;
  background: #162129;
  border-radius: 40px;
  padding: 0px;
  text-decoration: none;
}

.Oval:hover {
  position: relative;
}

/* Original
.Oval:hover:after {
  content: url(Lightning1.JPG);
  display: block;
  position: absolute;
  center: 100%;
  top: -510px;
  opacity: 0.5;
  z-index: -10;
  height: 100%;
  width: 100%;
}
*/

.Oval:hover::after {

    content: url(https://i.imgur.com/QgfTfOU.jpg);
    display: block;
    position: fixed;
    opacity: 0.5;
    z-index: -10;
    top: 0;
    border: 0;
    left: 0;
    right: 0;

}
<div class="Oval"><a href="mailto:">Let's Chat</a></div>


  1. 如果只想在div.Oval上使用背景图片,则应该使用CSS属性position:absolute

a {
  text-decoration: none;
  color: white;
  /*Let's Chat colour*/
}

.Oval {
  position: relative;
  font-family: 'Open Sans', sans-serif;
  top: 510px;
  text-align: center;
  font-size: 25px;
  text-color: white;
  left: 30%;
  z-index: 75;
  background-color: orange;
  width: 140px;
  height: auto;
  background: #162129;
  border-radius: 40px;
  padding: 0px;
  text-decoration: none;
  clip-path: border-box; /* Added */
  overflow: hidden; /* Added */
}

/* Original
.Oval:hover {
  position: relative;
}
*/

/* Original
.Oval:hover:after {
  content: url(Lightning1.JPG);
  display: block;
  position: absolute;
  center: 100%;
  top: -510px;
  opacity: 0.5;
  z-index: -10;
  height: 100%;
  width: 100%;
}
*/

/* Added */
.Oval:hover::after {
  content: '';
  background: url(https://i.imgur.com/QgfTfOU.jpg);
  background-size: auto;
  background-size: cover;
  display: block;
  position: absolute;
  opacity: 0.5;
  z-index: -10;
  top: 0;
  border: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
<div class="Oval"><a href="mailto:">Let's Chat</a></div>

0
投票

您需要在pointer-events: none;上添加z-index: -1; + .Oval:hover:after属性,如下面的代码片段所示。我希望下面的代码片段能对您有所帮助。

a {
  text-decoration: none;
  color: white;
}
.Oval {
  position: relative;
  font-family: 'Open Sans', sans-serif;
  top: 100px;
  text-align: center;
  font-size: 25px;
  color: white;
  left: 50%;
  margin-left: -70px;
  background-color: orange;
  width: 140px;
  height: auto;
  background: #162129;
  border-radius: 40px;
  padding: 0px;
  text-decoration: none;
}
.Oval:hover:after {
  content:'';
  background: url(https://i.imgur.com/QgfTfOU.jpg);
  background-size: cover;
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  height: 100%;
  width: 100%;
  pointer-events: none;
}
<div class="Oval"><a href="mailto:">Let's Chat</a></div>
© www.soinside.com 2019 - 2024. All rights reserved.