gpt4 book ai didi

html - 侧边栏元素看起来像是主要内容的一部分。如何实现这种悬停效果?

转载 作者:行者123 更新时间:2023-12-04 15:29:24 27 4
gpt4 key购买 nike

我试图在stackoverflow中寻找这种效果,但我不知道,开发人员如何调用这种悬停效果也不知道如何实现它。我尝试使用几种解决方案,但一切都失败了。是否有可能在纯 CSS 中做到这一点?

Link to image of this effect

我的意思是元素右侧的那种border-radius

HTML:

    <div class="app">
<nav class="navigation">
<div class="nav-content">
<ul>
<span class="logo">Logoo</span>
<hr />
<a href="#">
<li class="nav-item">
Home
</li>
</a>
<a href="#">
<li class="nav-item">
Rate plans
</li>
</a>
<a href="#">
<li class="nav-item">
Bookings
</li>
</a>
<a href="#">
<li class="nav-item">
Apartments
</li>
</a>
<a href="#">
<li class="nav-item">
Pricing
</li>
</a>
<hr />
<a href="#">
<li class="nav-item">
Support
</li>
</a>
<a href="#">
<li class="nav-item">
LogOut
</li>
</a>
</ul>
</div>
</nav>
<main>
<div class="main-content"></div>
</main>
</div>

CSS:

.app {
display: grid;
grid-template-columns: 20% 80%;
grid-template-rows: 100%;
grid-template-areas: "nav main";
height: 100%;
width: 100%;
}

nav {
grid-area: nav;
}

main {
grid-area: main;
}

.navigation {
padding: 0 0 0 40px;
background-color: var(--primary-color);
}

.nav-item {
padding: 20px 0 20px 0;
color: white;
cursor: pointer;
transition: all 0.3s;
background-color: var(--primary-color);
border-radius: 0 20px 20px 0;
}

.nav-item:hover {
background-color: var(--main-color);
color: black;
}

ul {
background-color: var(--main-color);
}


这是我目前得到的效果,但仅此而已......

Link to image of my work还有https://jsfiddle.net/q93mc8kz/

最佳答案

终于,我做到了。

-我使用了::before::after 来实现这一点。

Jsfiddle:https://jsfiddle.net/Rishabtyagi/hq078gdx/14

.app {
display: grid;
//commented//grid-template-columns: 20% 80%;
grid-template-rows: 100%;
grid-template-areas: "nav main";
height: 100%;
width: 100%;
}



nav {
grid-area: nav;
}

main {
grid-area: main;
}

.navigation {
padding: 0 0 0 40px;
background-color: brown;
}

.nav-item,.nav-item1,.nav-item2 {
padding: 20px 0 20px 0;
color: white;
cursor: pointer;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
background-color: brown;


}

.nav-item::before,.nav-item1::before,.nav-item2::before{
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
transition: all 0.5s;
opacity: 0;
content:'';
}

.nav-item::after,.nav-item1::after,.nav-item2::after{
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
transition: all 0.5s;
opacity: 0;
content:'';
}

.nav-item:hover::before,.nav-item1:hover::before,.nav-item2:hover::before {
content: "";
position: absolute;
opacity: 1;
background-color: transparent;
left:254px;
height: 50px;
width: 25px;
margin-top:-70px;
border-top-right-radius: 25px;
box-shadow: 0 -25px 0 0 white;
transform:rotate(-180deg);
transform:rotatex(-180deg);
}

.nav-item:hover::after {
content: "";
position: absolute;
opacity: 1;
background-color: transparent;
left:253px;
height: 50px;
width: 25px;
margin-top:39.1px;
border-top-right-radius: 25px;
box-shadow: 0 -25px 0 0 white;


}

.nav-item1:hover::after{
content: "";
position: absolute;
opacity: 1;
background-color: transparent;
left:253px;
height: 50px;
width: 25px;
margin-top:38.7px;
border-top-right-radius: 25px;
box-shadow: 0 -25px 0 0 white;


}

.nav-item2:hover::after{
content: "";
position: absolute;
opacity: 1;
background-color: transparent;
left:253px;
height: 50px;
width: 25px;
margin-top:38.7px;
border-top-right-radius: 25px;
box-shadow: 0 -25px 0 0 white;


}
.nav-item:hover,.nav-item1:hover,.nav-item2:hover {
background-color: brown;
color: black;

background-color: white;
border-radius:40px 0 0 40px;
}



body {
background: brown;
}

.main-content {

border-radius: 20px 0px 0px 20px;
height: 107%;
background-color: white;
}

.new {
background-color: brown;
}

ul {
background-color: white;


}

@media all and (max-width:768px){
.main-content{
width:155%;
margin-left:-49%;
margin-right:-10%;
}


}
@media all and (min-width:1280px){
.main-content{

width:200%;
margin-left:-83%;
height:120%;
}


}
  <div class="app">
<nav class="navigation">
<div class="nav-content">

<ul class="new">
<span class="logo">Logo</span>
<hr />

<li class="nav-item">
<a href="#"></a>
Home
</li>


<li class="nav-item">
<a href="#"> </a>
Rate plans
</li>

<li class="nav-item"><a href="#"></a>
Bookings
</li>


<li class="nav-item"><a href="#"></a>
Apartments
</li>


<li class="nav-item"><a href="#"></a>
Pricing
</li>

<hr />

<li class="nav-item1"><a href="#"></a>
Support
</li>


<li class="nav-item2"><a href="#"></a>
LogOut
</li>

</ul>
</div>
</nav>
<main>
<div class="main-content"></div>
</main>
</div>

关于html - 侧边栏元素看起来像是主要内容的一部分。如何实现这种悬停效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61558897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com