CSS:悬停在实践中不工作
我正在一个个人设计项目中,我有5个图像在他们的瓷砖,当你将鼠标放在任何一个他们显示替代文字。我已经包含了我的源代码,但我的问题似乎是当我通过在tile上悬停来测试这个问题时,我添加了W3代码片段而没有发生任何事情。如果我检查代码,然后在Chrome检查工具中添加悬停属性,它似乎工作得很好。我在这里错过了什么?CSS:悬停在实践中不工作
这里是我的代码My Code
.bottom p {
\t text-align: center;
}
.bottom {
\t margin-top: 200px;
\t width: 50%;
}
.top {
\t width: 33.33333333333%;
\t display: inline-block;
\t
}
.tile {
\t height: 200px;
\t justify-content: center;
align-items: center;
overflow: hidden;
padding-left: 0px;
padding-right: 0px;
border-style: solid;
border-width: 5px;
border-color: /*Navy Blue*/ #333333/* FetchMe Orange #FBAA1E*/; \t
\t text-align: center;
\t box-shadow: 5px 5px 10px #000000;
\t
}
.tile p {
\t z-index: 4;
\t font-size: 24px;
\t position: absolute;
\t bottom: 0;
\t margin-bottom: 10px;
\t font-weight: bold;
\t text-align: center;
\t margin-left: 35%;
\t margin-right: 35%;
\t
}
.img1 {
\t flex-shrink: 0;
min-width: 100%;
min-height: 100%
}
.top p {
\t text-align: center;
}
.fetch-form {
padding-top: 50px;
padding-bottom: 50px;
margin: 0 auto;
position: absolute;
z-index: 3;
margin-left: 110px;
margin-right: 110px;
left: 0;
right: 0;
}
.tiles {
\t margin-left: 0px;
\t margin-right: 0px;
\t z-index: 2;
\t position: absolute;
\t top: 150px;
\t left: 0px;
\t color: white;
\t display: inline-block;
\t padding-top: 10px;
}
.inner {
\t display: block;
margin-left: auto;
margin-right: auto;
\t
}
.slider {
\t z-index: -1;
\t position: absolute;
\t padding-right: 0;
\t padding-left: 0;
\t margin-right: 0;
\t margin-left: 0;
\t left: 0;
\t right: 0;
\t top: 0;
\t height: 600px;
\t min-width: 100%;
}
.item {
\t height: 600px;
}
.container {
position: relative;
}
.overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background-color: #008CBA;
overflow: hidden;
width: 0%;
height: 100%;
transition: .5s ease;
z-index: 5;
}
.container:hover .overlay {
\t width: 100%;
}
.text {
white-space: nowrap;
color: white;
font-size: 20px;
position: absolute;
overflow: hidden;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
}
.image {
display: block;
width: 100%;
height: auto;
}
<div class="row">
<div class="col-xs-10 fetch-form">
<form action="order" method="POST" role="form" id="address_form">
<div class="col-xs-12 fetch-form">
<div class="row">
<div class="col-xs-8 input">
<div class="input">
<i class="icon-prepend fa fa-home"></i>
<input type="text" placeholder="Street Address (optional)" id="address" name="address" class="form-control input-lg" autocomplete="off">
</div>
</div>
<div class="col-xs-2">
<input type="hidden" name="zip_code"><input type="hidden" value="true" name="set_temp_address">
<button class="btn btn-primary btn-lg btn-block btn" type="submit">
<i class="fa fa-search"></i> Fetch Me Food!
</button>
</div>
</div>
</div>
<div class="row well well-sm" style="display: none;">
<div class="col-xs-4 text-center">
<div class="radio" >
<label><center><i class="fa fa-taxi fa-lg hidden-xs"> </i></center>
<input type="radio" id="type_delivery" name="order_type" value="DELIVERY" checked="checked">
<span class="radiosearch"> </span><span class="ordertype">Delivery</span>
</label>
</div>
</div>
<div class="col-xs-4 text-center border-left">
<div class="radio">
<label>
<center><i class="fa fa-cutlery fa-lg hidden-xs"> </i></center>
<input type="radio" id="type_takeout" name="order_type" value="TAKEOUT">
<span class="radiosearch"> </span>
<span class="ordertype"><nobr>Pick-up</nobr></span>
<nobr></nobr>
</label>
</div>
</div>
<div class="col-xs-4 text-center border-left" >
<div class="radio"><a href="/account/groups" style="color: #333333;">
<label>
<center><i class="fa fa-group fa-lg" style="margin-bottom: 6px;"> </i></center>
<span class="ordertype"><span style="margin-top:9px;" class="visible-xs">Group »</span></span> <span
class="ordertype"><span class="hidden-xs">Group Order »</span></span> </label></a></div>
</div>
</div>
</form>
</div>
<div class="col-xs-12 tiles">
\t <div class="inner">
\t \t <div class="col-xs-3 top tile container">
\t \t \t
\t \t \t <p>Restarunts and Catering</p>
\t \t \t \t \t <img src="https://s3.amazonaws.com/fetchme-prototype/images/fruits-grocery-bananas-market.jpg" class="img1 image" alt="">
\t \t \t \t \t <div class="overlay">
\t \t \t \t \t <div class="text">Hello World</div>
\t \t \t \t \t </div>
\t \t \t \t </div>
\t \t </div>
\t \t <div class="col-xs-3 top tile">
\t \t \t <img src="https://s3.amazonaws.com/fetchme-prototype/images/fruits-grocery-bananas-market.jpg" class="img1" alt="">
\t \t <p>Our Deals</p>
\t \t </div>
\t \t <div class="col-xs-3 top tile">
\t \t \t \t \t <img src="https://s3.amazonaws.com/fetchme-prototype/images/fruits-grocery-bananas-market.jpg" class="img1" alt="">
\t \t <p>Grocery Shopping</p>
\t \t </div>
\t </div>
</div>
<br>
<div class="col-xs-12 tiles">
\t <div class="inner">
\t <div class="col-xs-6 bottom tile">
\t \t <img src="https://s3.amazonaws.com/fetchme-prototype/images/fruits-grocery-bananas-market.jpg" alt="" class="img1" >
\t \t <p>Tailgates</p>
\t </div>
\t <div class="col-xs-6 bottom tile">
\t \t <img src="https://s3.amazonaws.com/fetchme-prototype/images/fruits-grocery-bananas-market.jpg" alt="" class="img1">
\t \t <p>Order Anything</p>
\t </div>
\t </div>
</div>
<div class="slider col-xs-12">
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner" role="listbox">
<!-- Slide one -->
<div class="item active">
\t <img src="https://s3.amazonaws.com/fetchme-prototype/images/download.jpg" alt="">
</div>
<!-- Slide two -->
<div class="item">
\t <img src="https://s3.amazonaws.com/fetchme-prototype/images/download.jpg" alt="">
</div>
<!--Slide three -->
<div class="item">
\t <img src="https://s3.amazonaws.com/fetchme-prototype/images/download+(2).jpg" alt="">
</div>
<!--Slide four -->
<div class="item">
\t <img src="https://s3.amazonaws.com/fetchme-prototype/images/download+(2).jpg" alt="">
</div>
\t </div>
\t </div>
</div>
</div>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
这是与其他瓷砖重叠的容器问题(z-index问题)。你可以尝试这样的事情:
.tiles {
pointer-events: none;
}
.container {
pointer-events: auto;
}
这将是一个快速修复。我会建议你重构你的代码,以便元素不重叠。 – JRoss
尽管这在识别问题时是正确的,但我没有测试您发送的代码,因为我可以通过调整z-index值将底部拼贴块放在顶部拼贴块下方来解决问题。 –
这是因为使用了.tiles类被认为是2行的图片都.COL-XS-12项目。
.tiles类具有顶部,左侧的属性定义和位置属性为绝对。由于这两行图片的顶部和左侧位置都与.tiles相同,因此第二个图片与第一个图片重叠。
这就是为什么悬停永远不会发生.container通常。悬停总是发生在第二排,尽管第一排在下面可见,但仍位于顶部。
请在这里发表代码,我甚至不能说出哪个元素悬停被认为是对 – Huangism
你不是有一个叫'类随时随地overlay',更遑论'.container'的后代@ – TylerH
@TylerH叠加在那里,它只是被其他元素所覆盖。所以当你将鼠标悬停在第一块瓷砖上并进行检查时,你会落在其他元素上。问题与如何布置页面 – Huangism