首页 > 其他分享 >【Edu-Web开发日志三——首页制作三】

【Edu-Web开发日志三——首页制作三】

时间:2024-04-09 22:01:36浏览次数:19  
标签:Web hover 100% 元素 list nbsp Edu 日志 renovation

首页制作三

Main办学项目布局设计

目标效果图

在这里插入图片描述

布局设计

在这里插入图片描述

  • 办学项目导航栏(红色框)
    • 文字标题
    • 跳转链接
  • 四个小卡片(黄色框)
  • 大卡片(绿色框)

布局demo图
在这里插入图片描述

template代码

<el-main>
        <div class="studyProject">
          <div class="studyProject_nav" style="height: 60px;">
            1
          </div>          
          <div style="display: flex;justify-content: space-between;">
            <div class="renovation-list"style="width: 66%;background-color: yellow;height: 500px;">
            2
            </div>
            <div class="big" style="margin-top: 12px; margin-bottom: 12px;background-color: green;height: 488px;width: 350px;">
            3
            </div>
          </div>
        </div>       
</el-main>

style代码

.studyProject{
  width: 75%;
  height:600px;
  margin:0 auto;
}

办学项目导航栏

文字标题

<span style="font-size: 30px;font-weight: bold">办学项目</span>

跳转链接

<p style="direction: rtl;"><el-link href="" type="info"><el-icon><DArrowRight/></el-icon>更多</el-link></p>

&nbsp是作为空格
target=“_blank” 表示在新窗口或新标签页中打开链接

合并

使用用flex布局合并

template代码

<div class="studyProject_nav">
	<span style="font-size: 30px;font-weight: bold">办学项目</span>
	<p style="direction: rtl;"><el-link href="" type="info"><el-icon><DArrowRight/></el-icon>更多</el-link></p>
</div>

style代码

.studyProject_nav{
  display: flex;
  justify-content: space-between;
}

四个小卡片

基础设置

这里采用无序列表来固定这四个小卡片的位置(下面三个li标签与第一个是一样的)
图片上的小链接用z-index可以悬浮在最上面

template代码

<div style="display: flex;justify-content: space-between;">
	<div class="renovation-list"style="width: 66%;">
		<ul>
			<li>
				<div class="card">
					<a href="">				
						<img src="../assets/index_img/item/item-1.jpg">								
						<div style="position: absolute;  top: 70%; text-align: left; ">
							<span style="background-color: transparent; padding: 10px;color: white; font-size: 22px; font-weight: bold">学历与能力提升</span>
						</div>
					</a>
					<div style="position: absolute;  top: 85%; text-align: left;z-index: 100; padding-left: 10px;">
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">研究生考试</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">公务员考试</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">英语四六级</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">托福雅思</span></el-link>			
					</div>
				</div>
			</li>
			
			<li>
			</li>
			<li>
			</li>
			<li>
			</li>
		</ul>
	</div>
</div>

style代码

.card{
  position: relative;
}
/**
 * .renovation-list ul - 页面重构列表的无序列表样式
 * 用于设置列表的布局和样式,使列表项以灵活的方式排列,每个列表项有适当的间距,并且没有默认的列表符号。
 */
.renovation-list ul{
  display: flex; /* 使用flex布局使得子元素沿一行排列 */
  flex-wrap: wrap; /* 允许子元素换行,以适应不同宽度的容器 */
  gap: 20px; /* 设置子元素之间的间距 */
  list-style-type: none; /* 移除列表项的默认符号 */
  padding-left: 0%; /* 移除左侧内边距 */
}
/**
 * .renovation-list ul li - 页面重构列表的列表项样式
 * 用于设置每个列表项的宽度和位置,以适应两列布局,并为后续的样式提供相对定位。
 */
.renovation-list ul li{
  width: calc(100%/2 - 20px); /* 计算每个列表项的宽度,以实现两列布局,间距已考虑在内 */
  position: relative; /* 为列表项设置相对定位,以便于相对其位置设置其他元素 */
}

进阶特效

在这里插入图片描述
template代码

<div style="display: flex;justify-content: space-between;">
	<div class="renovation-list"style="width: 66%;">
		<ul>
			<li>
				<div class="card">
					<div class="renovation-card">
						<a href="">
							<div class="renovation-img">
								<img src="../assets/index_img/item/item-1.jpg">
							</div>
							
							<div style="position: absolute;  top: 70%; text-align: left; ">
								<span style="background-color: transparent; padding: 10px;color: white; font-size: 22px; font-weight: bold">学历与能力提升</span>
							</div>
						
							<div class="renovation-hover">
								<span>查看详细</span>
							</div>
						</a>
					</div>
					<div style="position: absolute;  top: 85%; text-align: left;z-index: 100; padding-left: 10px;">
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">研究生考试</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">公务员考试</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">英语四六级</span></el-link>
						<span style="color: white;">&nbsp|&nbsp</span>
						<el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">托福雅思</span></el-link>
					</div>
				</div>
			</li>
		</ul>
	</div>
</div>    

style代码

/**
 * .renovation-img 样式定义
 * 用于装修图片的展示,具有固定宽度和高度,以及隐藏溢出内容的特性。
 */
.renovation-img{
  width: 100%; /* 设置宽度占父元素100% */
  height: 220px; /* 设置固定高度为220px */
  overflow: hidden; /* 隐藏溢出内容 */
}

/**
 * .renovation-img 内部 img 标签的样式定义
 * 保证图片按比例填充整个 .renovation-img 区域,且具有过渡效果。
 */
.renovation-img img{
  width: 100%; /* 设置图片宽度占父元素100% */
  height: 100%; /* 设置图片高度占父元素100% */
  object-fit: cover; /* 使图片按比例填充整个元素区域,不裁剪图片 */
  transition: all 0.5s; /* 添加过渡效果,使图片变化更平滑 */
}
/* 卡片阴影效果 */
.renovation-list ul li:hover{
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
}
/* 卡片放大效果 */
.renovation-list ul li:hover .renovation-card img{
  transform: scale(1.2);
}
/**
 * .renovation-hover 样式定义
 * 用于给元素添加一个绝对定位的覆盖层,常用于装修或焕新效果中。
 * 该覆盖层初始不透明度为0,通过鼠标悬停等交互改变其不透明度,实现视觉上的变化。
 * 
 * 属性说明:
 * position: absolute; - 绝对定位,使覆盖层相对于其最近的非静态定位祖先元素定位。
 * top: 0; - 距离顶部的位置为0。
 * width: 100%; - 宽度为100%,占据父元素的整个宽度。
 * height: 100%; - 高度为100%,占据父元素的整个高度。
 * z-index: 99; - z轴顺序为99,确保覆盖层位于其他元素之上。
 * opacity: 0; - 初始不透明度为0,不可见。
 */
.renovation-hover{
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 99;
  opacity: 0;
}
/**
 * 当鼠标悬停在.renovation-list下的li元素上时,改变.renovation-hover的样式。
 * 主要用于扩展或展示更多的信息或操作。
 */
.renovation-list ul li:hover .renovation-hover{
  width: 100%;       /* 宽度扩展至100% */
  height: 220px;      /* 高度设置为220px */
  opacity: 1;        /* 透明度设为不透明 */
  background-color: rgba(0, 0, 0, 0.4);  /* 背景颜色为不透明的黑色 */
}
/**
 * 定义一个名为.renovation-hover的伪元素样式,主要用于列表项的悬停效果。
 */
.renovation-hover::before{
  content: ''; /* 伪元素的内容为空 */
  position: absolute; /* 伪元素的定位方式为绝对定位 */
  inset: 0; /* 伪元素的上下左右边距都为0,相当于top、right、bottom、left都为0 */
  margin: auto; /* 自动调整伪元素的外边距,使其在父元素中居中 */
  width: 0; /* 伪元素的初始宽度为0 */
  height: 0; /* 伪元素的初始高度为0 */
}

/**
 * 当鼠标悬停在.renovation-list下的li元素上时,改变.renovation-hover伪元素的样式,
 * 以创造出一个悬停效果。
 */
.renovation-list ul li:hover .renovation-hover::before{
  content: ''; /* 同上,保持内容为空 */
  width: 60%; /* 设置伪元素的宽度为父元素宽度的60% */
  height: 35%; /* 设置伪元素的高度为父元素高度的35% */
  border: 1px solid #fff; /* 给伪元素添加一个1px的白色边框 */
}
/**
 * 定义一个名为.renovation-hover的元素内的<span>标签的样式,此样式在鼠标悬停时生效。
 */
.renovation-hover span{
  color: #fff; /* 设置文本颜色为白色 */
  position: absolute; /* 设置定位模式为绝对定位 */
  left: 50%; /* 将元素左边缘设置在父元素的中心 */
  top: 50%; /* 将元素顶部设置在父元素的中心 */
  transform: translate(-50%, 20px); /* 调整元素的位置,使其中心对准父元素的中心,并在垂直方向上偏移20px */
}
/**
 * 当鼠标悬停在.renovation-list ul li元素上时,修改.renovation-hover内的<span>标签的样式。
 */
.renovation-list ul li:hover .renovation-hover span{
  transform: translate(-50%, -50%); /* 调整元素的位置,使它精确地对准父元素的中心 */
  transition: all 0.2s; /* 添加一个0.2秒的过渡效果,应用于所有属性的变化 */
}

大卡片

这里和小卡片其实差不多,但是因为尺寸和位置的原因,有一些不同

template代码

<div class="big" style="margin-top: 12px; margin-bottom: 12px;">
              <div class="card">
                <div class="renovation-card">
                  <a href="">
                    <div class="renovation-imga">
                      <img src="../assets/index_img/item/item-1.jpg"/>
                    </div>

                    <div style="position: absolute;  top: 83%; text-align: left; ">
                      <span style="background-color: transparent; padding: 10px;color: white; font-size: 22px; font-weight: bold">其他项目</span>
                    </div>
                    
                      <div class="renovation-hover">
                        <span>查看详细</span>
                      </div>
                    
                  </a>
                </div>
                <div style="position: absolute;  top: 90%; text-align: left;z-index: 100;padding-left: 10px; ">
                        <el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">中小学生冬夏令营</span></el-link>
                        <span style="color: white;">&nbsp|&nbsp</span>
                        <el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">高尔夫兴趣班</span></el-link>
                        <span style="color: white;">&nbsp|&nbsp</span>
                        <el-link href="" target="_blank"><span style="background-color: transparent; color: white; font-size: 10px;">运动培训班</span></el-link>
                </div>
              </div>
            </div>

style代码

.renovation-imga{
  width: 400px;
  height: 467px;
  overflow: hidden;
}
.renovation-imga img{
  width: 100%;
  height: 100%;
  object-fit: fill;
  transition: all 0.5s;
}
.big:hover .renovation-hover{
  display: flex;
  align-items: center;
  padding-top: 10px;
  width: 400px;
  height: 460px;
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.4);
}
.big:hover .renovation-hover::before{
  content: '';
  width: 60%;
  height: 35%;
  border: 1px solid #fff;
}
.big:hover .renovation-hover span{
  transform: translate(-50%, -50%);
  transition: all 0.2s;
}

最终效果图

在这里插入图片描述

Edu-Web系列开发日志目录

Edu-Web开发日志一——首页制作一

Edu-Web开发日志二——首页制作二

标签:Web,hover,100%,元素,list,nbsp,Edu,日志,renovation
From: https://blog.csdn.net/m0_73214160/article/details/137560386

相关文章

  • Web应用安全现状(包含Injection、File System Traversal、Broken Access Control攻击介
    目录1、Web应用安全现状1.1Web应用发展历程1.2Web应用安全1、Web应用发展历程早期的WWW网,用户通过Web浏览器,相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。如今的万维网与早期的万维网......
  • Web Audio API 第4章 音调与频域
    音调与频域此章中如果对音乐部分不感兴趣,可忽略代码部分也没有更多的新api,重要的还是相关的物理与声音的相关知识到目前为止我们已经学过了声音的基础属性:定时与音量。为了能处理更复杂的的情况,例如声音的均衡(比如,增加低音和降低高音),我们需要更复杂的工具。此章节将介绍......
  • Web API(六)之正则表达式
    WebAPI(六)之正则表达式正则表达式正则基本使用元字符边界符量词范围字符类替换和修饰符change事件判断是否有类正则表达式正则表达式(RegularExpression)是一种字符串匹配的模式(规则)使用场景:例如验证表单:手机号表单要求用户只能输入11位的......
  • WEB漏洞——文件上传
    文章目录任意文件操作一、任意文件上传常见文件上传点概念tips--weshell所需条件上传流程任意文件上传--GETSHELL直接上传二、上传绕过--这里以upload靶场为例子1.绕过JS验证方法1:Burpsuite剔除响应JS方法2:浏览器审计攻击剔除JS方法3:使用浏览器......
  • 跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux
    ReactRedux和Vuex都是前端状态管理库,分别用于React和Vue.js框架。它们都提供了一套规范的状态管理机制,帮助开发者更好地组织和管理应用状态。下面是它们的一些异同点:相同点:中心化状态管理:两者都提供了一个全局的存储中心,使得组件间状态共享变得简单。响应式:状......
  • 面试常问问题——web端测试、安卓测试、ios测试的区别是什么?
    web端需要考虑:1、浏览器种类的兼容2、浏览器版本的兼容3、电脑和显示器的显示4、缩放窗口大小的显示5、响应时间 app测试需要考虑:1、不同的屏幕分辨率2、不同品牌的设备3、不同的系统4、不同的安卓版本5、安装卸载......
  • c# Framwork4.5 添加webapi处理跨域请求问题
     常用2种方式 1)web.config允许所有来源,HTTP方法,请求标头跨域:后端,在Web.config中找到<system.webServer>标签,里面添加配置如下:<httpProtocol><customHeaders><addname="Access-Control-Allow-Origin"value="*"/><addname="Acc......
  • react-redux 持久化
    1.安装 redux-persistnpminstallredux-persist 2.store/index.js文件import{configureStore,combineReducers}from"@reduxjs/toolkit";import{persistStore,persistReducer}from'redux-persist';importstoragefrom'redux-persis......
  • 以XX大学学生公寓为例的安科瑞远程抄表与配电能效系统解决方案【AcrelEMS-EDU校园综合
    建设背景随着我国经济的高速发展,建筑能耗特别是国家机关办公建筑和大型公共建筑高耗能的问题日益突出。学校作为大型公共机构建筑的重要组成部分之一,其特点是占地面积大、建筑分布广、数量多、类型多样、用能情况复杂;高校用能普遍问题用能需求日益增加  节能队伍建设薄弱......
  • srs+webrtc实现浏览器直播(仿b站页面,纯前端)
    关于srs请看我之前的博客,SRS实现网页和手机端简单直播。与之不同的是,浏览器推流需要使用werbrtc,因此只需要按srs官网配置即可,WebRTC|SRS(ossrs.net)。回到正题... 一.页面搭建b站web直播页面是通过video标签元素实现,但是video并不能同时将摄像头、麦克风、屏幕共享等同时......