🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶
🦋 欢迎关注🖱点赞👍收藏🌟留言🐾
🦄 本文由 程序喵正在路上 原创,CSDN首发!
💖 系列专栏:前端基础小案例&小项目
🌠 首发时间:2022年8月20日
✅ 如果觉得博主的文章还不错的话,希望小伙伴们三连支持一下哦
素材和源码可以在我发布的资源里免费下载,可点击下方链接进行下载
https://download.csdn.net/download/weixin_62511863/86404929
实现如下图的效果:

阅读温馨提示:代码注释前面有 “=========” 标记的即为较之前面修改的代码
构建一个长 800px 宽 50px 的长方形盒子,为盒子加上圆角边框的效果
代码:
<div class="tab">div>
/* 消除所有盒子内外边距 */
* {
margin: 0;
padding: 0;
}
.tab {
width: 800px;
height: 50px;
/* 添加背景颜色便于观察 */
background-color: #FE94A9;
/* 添加圆角边框 */
border-radius: 50px;
/* 让盒子水平居中 */
margin: 50px auto 0px;
}
效果为:

往大盒子 div 里面添加小盒子 span
代码修改处为:
<div class="tab">
<span>备孕期间 span>
<span>怀孕 span>
<span>0-1岁 span>
<span>1-2岁 span>
<span>2-3岁span>
div>
.tab {
width: 800px;
height: 50px;
/* ========改变背景颜色 */
background-color: #F7F7F7;
/* 添加圆角效果 */
border-radius: 50px;
margin: 50px auto 0px;
}
/* ========注意:相邻两个选项卡中字体宽度不一样,所以span宽度不能写死 */
.tab span {
/* 转换为行内块元素,让高度的设置可以生效,但是span之间会产生间隙 */
display: inline-block;
border: 1px solid red;
height: 40px;
/* 通过内边距的设置让文字居中显示 */
padding: 0px 40px;
line-height: 40px;
}
前后效果比对:


消除转换为行内块元素后,相邻 span 之间的间隙
代码修改处为:
.tab {
width: 800px;
height: 50px;
background-color: #F7F7F7;
/* 添加圆角效果 */
border-radius: 50px;
/* 让盒子水平居中 */
margin: 50px auto 0px;
/* =========消除间隙 */
font-size: 0px;
}
/* 注意:相邻两个选项卡中字体宽度不一样,所以span宽度不能写死 */
.tab span {
/* 转换为行内块元素,让高度的设置可以生效,但是span之间会产生间隙 */
display: inline-block;
border: 1px solid red;
height: 40px;
/* 通过内边距的设置让文字居中显示 */
padding: 0px 40px;
line-height: 40px;
/* =========同时需要再单独给span设置字体大小 */
font-size: 16px;
}
效果前后比对:


让所有 span 在 div 中居中显示
代码修改处为:
.tab {
width: 800px;
height: 50px;
background-color: #F7F7F7;
/* 添加圆角效果 */
border-radius: 50px;
/* 让盒子水平居中 */
margin: 50px auto 0px;
/* 消除间隙 */
font-size: 0px;
/* =========给div添加文本居中 */
text-align: center;
}
效果前后比对:


调整上下的间距
代码修改处为:
.tab {
width: 800px;
/* =========删去高度设置 */
background-color: #F7F7F7;
/* 添加圆角效果 */
border-radius: 50px;
/* 让盒子水平居中 */
margin: 50px auto 0px;
/* 消除间隙 */
font-size: 0px;
/* 给div添加文本居中 */
text-align: center;
/* =========添加内边距 */
padding: 5px 0px;
}
效果前后比对:


添加文本前的图标
代码修改处为:
<span><i class="icon1">i>备孕期间 span>
<span><i class="icon2">i>怀孕 span>
<span><i class="icon3">i>0-1岁 span>
<span><i class="icon4">i>1-2岁 span>
<span><i class="icon5">i>2-3岁span>
/* ======== */
.tab span i {
display: inline-block;
width: 26px;
height: 26px;
border: 1px solid red;
/* 添加背景图片 */
background-image: url(../images/icon.png);
/* 让图标和文本中线对齐 */
vertical-align: middle;
margin-right: 5px;
}
/* 精灵图技术 */
.tab span .icon2 {
background-position: -26px 0px;
}
.tab span .icon3 {
background-position: -52px 0px;
}
.tab span .icon4 {
background-position: -78px 0px;
}
.tab span .icon5 {
background-position: -104px 0px;
}
/* ======== */
前后效果比对:


设置点击文本时背景颜色变化的效果
代码修改处为:
<span class="current"><i class="icon1">i>备孕期间 span>
<span><i class="icon2">i>怀孕 span>
<span><i class="icon3">i>0-1岁 span>
<span><i class="icon4">i>1-2岁 span>
<span><i class="icon5">i>2-3岁span>
/* ========鼠标点击的效果需要js实现,这里我们只写交互的原理 */
.tab .current {
background-color: #FE94A9;
color: #fff;
}
.tab .current .icon1 {
background-position: 0px -26px;
}
.tab .current .icon2 {
background-position: -26px -26px;
}
.tab .current .icon3 {
background-position: -52px -26px;
}
.tab .current .icon4 {
background-position: -78px -26px;
}
.tab .current .icon5 {
background-position: -104px -26px;
}
前后效果比对:


给 span 添加圆角边框效果
代码修改处为:
.tab span {
/* 转换为行内块元素,让高度的设置可以生效,但是span之间会产生间隙 */
display: inline-block;
border: 1px solid red;
height: 40px;
/* 通过内边距的设置让文字居中显示 */
padding: 0px 40px;
line-height: 40px;
/* 同时需要再单独给span设置字体大小 */
font-size: 16px;
/* ========添加圆角边框 */
border-radius: 50px;
}
前后效果比对:


取消边框线
代码修改处为:
.tab span {
/* 转换为行内块元素,让高度的设置可以生效,但是span之间会产生间隙 */
display: inline-block;
/* ========取消边框线 */
height: 40px;
/* 通过内边距的设置让文字居中显示 */
padding: 0px 40px;
line-height: 40px;
/* 同时需要再单独给span设置字体大小 */
font-size: 16px;
/* 添加圆角边框 */
border-radius: 50px;
}
.tab span i {
display: inline-block;
width: 26px;
height: 26px;
/* ========取消边框线 */
/* 添加背景图片 */
background-image: url(../images/icon.png);
/* 让图标和文本中线对齐 */
vertical-align: middle;
margin-right: 5px;
}
前后效果比对:


精美选项卡的制作到这里就完成啦,你学会了吗?
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>精美选项卡菜单title>
<style type="text/css">
/* 消除所有盒子内外边距 */
* {
margin: 0;
padding: 0;
}
.tab {
width: 800px;
/* 删去高度设置 */
background-color: #F7F7F7;
/* 添加圆角效果 */
border-radius: 50px;
/* 让盒子水平居中 */
margin: 50px auto 0px;
/* 消除间隙 */
font-size: 0px;
/* 给div添加文本居中 */
text-align: center;
/* 添加内边距 */
padding: 5px 0px;
}
/* 注意:相邻两个选项卡中字体宽度不一样,所以span宽度不能写死 */
.tab span {
/* 转换为行内块元素,让高度的设置可以生效,但是span之间会产生间隙 */
display: inline-block;
height: 40px;
/* 通过内边距的设置让文字居中显示 */
padding: 0px 40px;
line-height: 40px;
/* 同时需要再单独给span设置字体大小 */
font-size: 16px;
/* 添加圆角边框 */
border-radius: 50px;
}
.tab span i {
display: inline-block;
width: 26px;
height: 26px;
/* 添加背景图片 */
background-image: url(../images/icon.png);
/* 让图标和文本中线对齐 */
vertical-align: middle;
margin-right: 5px;
}
/* 精灵图技术 */
.tab span .icon2 {
background-position: -26px 0px;
}
.tab span .icon3 {
background-position: -52px 0px;
}
.tab span .icon4 {
background-position: -78px 0px;
}
.tab span .icon5 {
background-position: -104px 0px;
}
/* 鼠标点击的效果需要js实现,这里我们只写交互的原理 */
.tab .current {
background-color: #FE94A9;
color: #fff;
}
.tab .current .icon1 {
background-position: 0px -26px;
}
.tab .current .icon2 {
background-position: -26px -26px;
}
.tab .current .icon3 {
background-position: -52px -26px;
}
.tab .current .icon4 {
background-position: -78px -26px;
}
.tab .current .icon5 {
background-position: -104px -26px;
}
style>
head>
<body>
<div class="tab">
<span class="current"><i class="icon1">i>备孕期间 span>
<span><i class="icon2">i>怀孕 span>
<span><i class="icon3">i>0-1岁 span>
<span><i class="icon4">i>1-2岁 span>
<span><i class="icon5">i>2-3岁span>
div>
<div class="tab">
<span><i class="icon1">i>备孕期间 span>
<span class="current"><i class="icon2">i>怀孕 span>
<span><i class="icon3">i>0-1岁 span>
<span><i class="icon4">i>1-2岁 span>
<span><i class="icon5">i>2-3岁span>
div>
body>
html>
🧸 这次的分享就到这里啦,继续加油哦^^
🐱 我是程序喵,陪你一点点进步
🍭 有出错的地方欢迎在评论区指出来,共同进步,谢谢啦