奇摩電影頁transition特效,圖片改用背景圖background-size解決圖片比例問題
by ShadowKao
HTML
<div class="box">
<!--把backgrouon-image:url寫在css的話,工程師無法寫程式套圖,所以寫在html-->
<div class="img" style="background-image:url(https://movies.yahoo.com.tw/x/r/w420/i/o/production/movies/January2019/En57UcBJFuB5Do82N5ou-2129x2647.jpg)">
</div>
<ul class="info">
<li><a href="#">電影介紹</a></li>
<li><a href="#">預告片</a></li>
<li><a href="#">時刻表</a></li>
</ul>
</div>
CSS
.box {
width: 300px;
height: 400px;
position: relative;
/*為了黑色的overlay*/
/*border:1px solid #000;*/
/*Debug用*/
}
div.img {
width: 100%;
height: 100%;
/*填滿容器*/
background-size: cover;
/*contain有可能留邊,cover有可能被裁切但至少等比例填滿*/
background-position: center center;
background-repeat: no-repeat;
/*display:none;*/
/*debug用*/
}
/*黑色overlay*/
ul.info {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
/*蓋圖*/
top: 0;
left: 0;
/*靠左上*/
width: 100%;
height: 100%;
/*黑色overlay填滿容器*/
background: rgba(0, 0, 0, 0.8);
/* 注意使用rgba 而不是一開始就用opacity,否則會影響子元素a的背景色*/
/*background:#000;*/
/*opacity:0.9;*/
transition: 0.4s;
opacity: 0;
/*最後step*/
}
ul>li
/*分配三個容器佔的比例*/
{
display: table;
/*為了文字垂直置中*/
width: 100%;
height: 33.5%;
}
ul>li>a {
text-decoration: none;
/* display:block; */
/* height:100%;*/
display: table-cell;
/*為了文字垂直置中*/
/*line-height:100%;*/
/*無法文字垂直置中*/
vertical-align: middle;
/*文字垂直置中*/
text-align: center;
/*文字水平置中*/
color: #fff;
transition: 0.4s;
}
ul>li>a:hover {
background-color: #434eae;
}
.box:hover>ul.info {
opacity: 1;
}