那么首先我们需要明确实现css弧边选项卡需要哪些CSS属性和方法。实现过程大致分为以下几个步骤:
- 创建选项卡的HTML结构。
- 定义选项卡选项的样式。
- 定义选中选项卡的样式。
- 定义弧边的样式。
- 定义选项卡内容的样式。
- 添加JavaScript事件,使得点击选项卡能切换到对应的内容。
下面我将详细讲解这几个步骤:
1. 创建选项卡的HTML结构
首先我们需要创建一个选项卡的HTML结构,一个基本的选项卡通常包含以下几个部分:
<div class="tab-container">
<nav class="tab-nav">
<ul>
<li class="active"><a href="#">选项卡1</a></li>
<li><a href="#">选项卡2</a></li>
<li><a href="#">选项卡3</a></li>
</ul>
</nav>
<div class="tab-content">
<div class="active">选项卡1的内容</div>
<div>选项卡2的内容</div>
<div>选项卡3的内容</div>
</div>
</div>
这里我们使用了一个nav
元素来包含选项卡的选项,一个div
元素来包含选项卡的内容。每个选项和对应的内容都需要一个CSS类名来进行控制。
2. 定义选项卡选项的样式
我们需要为选项卡选项定义一些基本样式,比如字体大小、颜色、背景等。同时,我们也需要为鼠标悬浮在选项卡选项上的样式进行定义。下面是一个基本的选项卡选项的样式:
.tab-nav ul {
list-style: none;
margin: 0;
padding: 0;
display: table;
width: 100%;
}
.tab-nav li {
display: table-cell;
width: 33%;
text-align: center;
position: relative;
padding: 0.6rem 1rem;
border-bottom: 5px solid transparent;
transition: background-color 0.3s ease-in-out;
}
.tab-nav li:hover, .tab-nav li.active {
background-color: #0f0f0f;
color: #fff;
border-bottom-color: #3DC9DA;
z-index:1;
}
.tab-nav li::after {
content:"";
position:absolute;
bottom:0;
left:0;
right:0;
height:5px;
background-color:#ffffff;
border-radius:30px 30px 0 0;
opacity:0;
transform:scaleX(0);
transition:all 0.2s cubic-bezier(0.25,0.46,0.45,0.94)
}
.tab-nav li:hover::after, .tab-nav li.active::after {
opacity:1;
transform:scaleX(1)
}
上面的CSS代码中,我们定义了UL、LI的样式,使其居中、等分、背景颜色和文字颜色的控制。我们也添加了一个CSS伪类::after
用于创建弧边圆角。
3. 定义选中选项卡的样式
当选中某个选项卡时,要有一个视觉上的反馈,我们需要为选中选项卡的样式进行定义。下面是一个基本的选中选项卡的样式:
.tab-nav li.active {
background-color: #0f0f0f;
color: #fff;
border-bottom-color: #3DC9DA;
}
4. 定义弧边的样式
为选项卡选项的下方添加一个弧边效果,需要使用CSS伪类::after
来创建圆角效果。下面是一个基本的弧边样式:
.tab-nav li::after {
content:"";
position:absolute;
bottom:0;
left:0;
right:0;
height:5px;
background-color:#ffffff;
border-radius:30px 30px 0 0;
opacity:0;
transform:scaleX(0);
transition:all 0.2s cubic-bezier(0.25,0.46,0.45,0.94)
}
.tab-nav li:hover::after, .tab-nav li.active::after {
opacity:1;
transform:scaleX(1)
}
上面的CSS代码中,我们使用了border-radius
属性定义伪元素的圆角。
5. 定义选项卡内容的样式
最后,我们需要为选项卡内容定义一些基本样式,比如字体、字号、颜色、背景等。下面是一个基本的选项卡内容的样式:
.tab-container .tab-content {
padding: 1rem;
background-color: #fff;
font-size: 1.2rem;
}
.tab-container .tab-content>div {
display: none;
}
.tab-container .tab-content .active {
display: block;
}
上面的CSS代码中,我们定义了.tab-content
、.tab-content>div
的样式,使其居中、隐藏、字大小和内容绑定。
6. 添加事件,实现选项卡内容的切换
最后,我们需要使用JavaScript代码为选项卡添加事件,实现切换选项卡内容的功能,下面是一个基本的JavaScript代码:
const tabs = document.querySelectorAll(".tab-nav li");
tabs.forEach(tab => {
tab.addEventListener("click", () => {
tabs.forEach(tab => tab.classList.remove("active"));
tab.classList.add("active");
const target = document.querySelector(tab.dataset.target);
const tabContents = document.querySelectorAll(".tab-content > div");
tabContents.forEach(tabContent =>
tabContent.classList.remove("active")
);
target.classList.add("active");
});
});
上面的JavaScript代码中,我们使用了addEventlistener()
方法,为所有选项卡添加点击事件。当点击某个选项卡时,我们使用classList
来添加和删除相应的CSS类名,来切换选项卡内容。
至此,一个基本的CSS弧边选项卡就实现了,我们可以更改CSS的属性和内容,来自定义自己的弧边选项卡样式。
下面介绍两个示例:
示例1:带图标的选项卡
<div class="tab-container">
<nav class="tab-nav">
<ul>
<li class="active" data-target="#tab-1">
<i class="fa fa-home" aria-hidden="true"></i>选项卡1
</li>
<li data-target="#tab-2">
<i class="fa fa-user" aria-hidden="true"></i>选项卡2
</li>
<li data-target="#tab-3">
<i class="fa fa-cog" aria-hidden="true"></i>选项卡3
</li>
</ul>
</nav>
<div class="tab-content">
<div class="active" id="tab-1">
选项卡1的内容
</div>
<div id="tab-2">
选项卡2的内容
</div>
<div id="tab-3">
选项卡3的内容
</div>
</div>
</div>
.tab-nav li i {
margin-right: 5px;
}
示例2:带背景图的选项卡
<div class="tab-container">
<nav class="tab-nav">
<ul>
<li class="active" data-target="#tab-1"></li>
<li data-target="#tab-2"></li>
<li data-target="#tab-3"></li>
</ul>
</nav>
<div class="tab-content">
<div class="active" id="tab-1">
<img src="images/tab-1.jpg" alt="选项卡1的内容">
</div>
<div id="tab-2">
<img src="images/tab-2.jpg" alt="选项卡2的内容">
</div>
<div id="tab-3">
<img src="images/tab-3.jpg" alt="选项卡3的内容">
</div>
</div>
</div>
.tab-nav li {
background-image: url(images/tab-bg.jpg);
background-size: cover;
background-position: center;
position: relative;
}
以上就是基本的CSS弧边选项卡的实践过程和示例,希望可以对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css弧边选项卡的项目实践 - Python技术站