【问题标题】:Problem with flippable card triggered when hovering悬停时触发可翻转卡片的问题
【发布时间】:2019-09-03 17:51:30
【问题描述】:

我在使用三张可翻转悬停卡片时遇到了问题。卡片似乎完成了大部分工作,但似乎 li 中的内容在刷新、加载页面时消失/消失了,即使 li 的边框在正面没有消失卡本身。虽然卡片的标题始终可见。

当您尝试(重新)加载页面时,问题非常明显。每当您刷新页面时,您都可以清楚地看到页面的内容消失在卡片的正面。卡片的背景图片和标题保持不变

我认为内容会因卡片本身的转换而丢失。

我几乎尝试了所有关于变换和过渡的属性。至少我认为它与转换或过渡有关,因为您会看到内容在刷新页面时消失。奇怪的是卡片中的标题和背景图像保持不变并完成他们的工作。

这是我的代码笔,因此更容易发现问题: https://codepen.io/MaxVervaeke/pen/LvjzVO

HTML

            <div class="tour-card">
                <div class="card__side card__side--front">
                    <div class="card__picture picture-one">&nbsp;</div>
                    <h4 class="card__heading">
                        <span class="card__heading--span card__heading--span-one">The sea <br> explorer</span>
                    </h4>
                    <div class="card__details">
                        <ul>
                            <li>3 day tours</li>
                            <li>Up to 20 people</li>
                            <li>2 tour guides</li>
                            <li>Sleep in cozy hotels</li>
                            <li>Difficulty: very easy</li>
                        </ul>
                    </div>
                </div>
                <div class="card__side card__side--back card__side--back-one">
                    BACKSIDE
                </div>
            </div>

            <div class="tour-card">
                <div class="card__side card__side--front">
                    <div class="card__picture picture-two">&nbsp;</div>
                    <h4 class="card__heading">
                        <span class="card__heading--span card__heading--span-two">The forest <br> hiker</span>
                    </h4>
                    <div class="card__details">
                        <ul>
                            <li>5 day tours</li>
                            <li>Up to 10 people</li>
                            <li>6 tour guides</li>
                            <li>Sleep in snuggy hotels</li>
                            <li>Difficulty: medium</li>
                        </ul>
                    </div>
                </div>
                <div class="card__side card__side--back card__side--back-two">
                    BACKSIDE
                </div>
            </div>

            <div class="tour-card">
                <div class="card__side card__side--front">
                        <div class="card__picture picture-three">&nbsp;</div>
                        <h4 class="card__heading">
                            <span class="card__heading--span card__heading--span-three">The snow <br> adventurer</span>
                        </h4>
                        <div class="card__details">
                            <ul>
                                <li>7 day tours</li>
                                <li>Up to 5 people</li>
                                <li>3 tour guides</li>
                                <li>Sleep in provided hotels</li>
                                <li>Difficulty: hard</li>
                            </ul>
                        </div>
                </div>
                <div class="card__side card__side--back card__side--back-three">
                    BACKSIDE
                </div>
            </div>

CSS

.tour-grid {
display:grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 2rem;
padding: 0 5rem;}

.tour-card {
position: relative;
height:700px;
-webkit-perspective: 90rem;
perspective: 90rem;
width:100%;
}

.card__side {
color: #fff;
font-size:1.5rem;
height:700px;
border-radius: 3px;
box-shadow: 0 1rem 2rem rgba(0,0,0,.15);
transition: all 1s ease;
overflow:hidden;
backface-visibility: hidden; 
}


.tour-card:hover .card__side--front {
transform: rotateY(-180deg);
}

.tour-card:hover .card__side--back {
transform: rotateY(0deg);
}


.card__side--front{
background-color: #FFF;
position:relative;
}

.card__picture {
height:15rem;
background-blend-mode: screen;
-webkit-clip-path:polygon(0 0, 100% 0, 100% 85%, 0 100%);
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
background-size: cover;
}

.picture-one {
background-image: linear-gradient(to right bottom,rgba(255,185,0,1.000),rgba(255,119,48,1.000)), url(../images/trees-sm.jpg);
}

.picture-two {
background-image: linear-gradient(to right bottom,rgba(126,213,11,.7),rgba(40,180,131,.7)),url(../images/lake-bench-sm.jpg);
}

.picture-three {
background-image: linear-gradient(to right bottom,rgba(41,152,255,1.000),rgba(85,67,250,1.000)),url(../images/snowy-route-sm_640.jpg);}


.card__heading {
font-size: 1.5rem;
font-weight:300;
text-transform: uppercase;
text-align: right;
color:#FFF;
position: absolute;
top:30%;
left:60%;
}

.card__heading--span{
padding: .6rem 1rem;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}

.card__heading--span-one{background-image: linear-gradient(to right bottom, rgba(255,185,0,.85),rgba(255,119,48,.85))}
.card__heading--span-two{background-image: linear-gradient(to right bottom,rgba(126,213,11,.85),rgba(40,180,131,.85));}
.card__heading--span-three{background-image:linear-gradient(to right bottom,rgba(41,152,255,.85),rgba(85,67,250,.85));}


.card__details ul {
list-style: none;
width:80%;
margin: 0 auto;
}
.card__details ul li {
text-align:center;
font-size: .8rem;
margin: 4rem 0 1rem 0;
border-bottom: 1px solid #777;
}

.card__side--back{
    transform: rotateY(180deg);
    position: absolute;
    top:0;
    left:0;
    width:100%;
}

预期结果:我让 li 标签之间的内容在页面的字体侧变得可见,而现在它在刷新页面后消失/消失

【问题讨论】:

    标签: html css


    【解决方案1】:

    也许我没有遇到问题,但li 继承自.card__sidecolor: #fff。只需添加以下内容即可查看列表项中的文本。

    .card__details {
      color: #111;
    }
    

    顺便说一句,不错的设计和 CSS 代码,但如果您想考虑性能,请不要使用 transition: all

    【讨论】:

    • 天啊!!!!!!哈哈哈哈对不起各位!!连续工作了12个小时,我想我已经筋疲力尽了!不过非常感谢!我应该使用什么来代替“过渡:全部;”?我一直在自己学习很多东西,所以一些提示总是有帮助的! :D
    • 只添加你想要动画的属性,在本例中为transform。否则,浏览器会检查所有需要更新的动画属性,这是一种资源浪费。找不到我在哪里读到/听到过这种说法。
    • 哦,找到视频,由 Kevin Powell 拍摄:youtube.com/watch?v=Nloq6uzF8RQ (@04:30ish) 以下视频系列也很好看:youtube.com/watch?v=8kK-cA99SA0 早期的 CSS DevTips 视频总体上都很棒。
    • 非常感谢瑞卡德!今晚一定会看这些!
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2019-12-04
    • 2021-05-15
    • 1970-01-01
    • 2017-05-02
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多