web前端——页面设计

该代码示例展示了如何使用CSS和JavaScript实现一个响应式的西华大学主页导航栏,包含多级菜单、鼠标悬停显示子菜单、图片缓存、动态时间显示以及用户信息输入与存储功能。通过弹性盒布局处理菜单的水平分布,利用display属性控制二级菜单的可见性,并通过事件监听处理鼠标进入和离开菜单项时的显示效果。此外,还利用本地存储保存用户的输入信息并在页面加载时恢复显示。
摘要由CSDN通过智能技术生成

为xhu.html添加CSS样式,设计实现西华大学主页导航栏的多级菜单,除了本实验明确要求的设置之外,页面效果应尽可能西华大学首页导航栏一致,主要要求:

  1. 设置导航栏菜单横向分布,当鼠标经过导航栏主菜单项时,显示相应的二级子菜单,一、二级菜单的菜单项宽度一致,见图1;
  2. 导航菜单和展示图应能随浏览器窗口宽度自适应变化,但应能确保导航栏主菜单项始终单行横向分布,并且导航栏一级、二级菜单项中的超链接文本应能始终单行显示且宽度一致,见图2;
  3. 不能更改原HTML文本,包括不能添加任何类名和ID属性!
  4. 编写应用缓存文件,缓存页面中图像;
  5. 在页面图片下方动态显示当前时间,历史浏览次数,添加姓名、学号、电话输入域和一个普通提交按钮(不要使用submit),如果用户曾经提交过信息,则打开页面时在输入域默认显示用户历史信息。(相关布局和元素样式自行设计)。

友情提示:推荐使用弹性盒布局设计导航栏; 二级菜单的显示与隐藏display属性;二级菜单的定位采用position定位。

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>西华大学</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        body {
            font-size: 18px;
            color: white;
        }
        
        a {
            text-decoration: none;
            color: white;
            /*color:white;*/
        }
        
        ul {
            position: relative;
            background: #0e6bc2;
            height: 50px;
            width: auto;
            list-style: none;
        }
        
        li {
            background: #0e6bc2;
            min-width: 144px;
            width: auto;
            height: 50px;
            line-height: 50px;
        }
        
        li:hover {
            background-color: #005691;
        }
        
        div {
            box-sizing: border-box;
            /*便于对齐,免受各类型元素padding不一致的影响*/
        }
        
        .nav {
            display: flex;
            justify-content: center;
            flex-wrap: nowrap;
            width: 100%;
        }
        
        .sub-menu {
            display: none;
        }
        
        .menu-item {
            display: block;
            text-align: center;
        }
        
        #bg {
            margin: 0 auto;
            max-width: 1400px;
        }
        
        img {
            width: 100%;
        }
        
        .block {
            display: block;
        }
        
        input {
            outline-style: none;
            border: 1px solid #ccc;
            border-radius: 3px;
            padding: 3px 4px;
            width: 200px;
            font-size: 14px;
            font-weight: 200;
        }
        
        .form {
            color: black;
            margin: 0 auto;
            max-width: 1400px;
        }
        
        #datetime {
            font-size: 20px;
            background: linear-gradient(to right, rgb(53, 177, 72), rgb(118, 7, 7));
            -webkit-background-clip: text;
            color: transparent;
        }
        
        .times {
            letter-spacing: 0.2rem;
            font-size: 1.2rem;
			background-image: -webkit-linear-gradient(left, #961414, #9005e6 10%, #142396 10%, #05e679 50%, #879614);
            -webkit-text-fill-color: transparent;
            -webkit-background-clip: text;
            -webkit-background-size: 200% 100%;
        }
    </style>

	<script>
		var user = JSON.parse(localStorage.getItem('user')) || []
		var m = parseInt(localStorage.getItem('times')) || 1;
		console.log(m);
		window.addEventListener("load", () => {
			let item = document.getElementsByClassName('menu-item')
			for (let i = 0; i < item.length; i++) {
				item[i].addEventListener("mouseover", mouserOver)
				item[i].addEventListener("mouseout", mouserOut)
			}

			function mouserOver() {
				this.children[1].classList.add('block')
			}

			function mouserOut() {
				this.children[1].classList.remove('block')
			}

			setInterval("document.getElementById('datetime').innerHTML=new Date().toLocaleString();", 500);
			document.getElementById('frequency').innerHTML = m

		})
		window.addEventListener("beforeunload", () => {

			m++;
			console.log(m);
			localStorage.setItem('times', JSON.stringify(m))
		})

		nam = document.getElementById("name")
		num = document.getElementById("num")
		tel = document.getElementById("tel")
		nam.value = user.id
		num.value = user.num
		tel.value = user.tel

		function local(value) {
			localStorage.setItem('user', JSON.stringify(value))
		}

		function add() {
			const nam = {
				id: document.getElementById('name').value,
				num: document.getElementById('num').value,
				tel: document.getElementById('tel').value,
			}
			local(nam)
		}
	</script>
</head>

<body>
    <ul class="nav">
        <li class="menu-item"><a href="http://www.xhu.edu.cn">学校概况</a>
            <ul class="sub-menu">
                <li><a href="http://www.xhu.edu.cn" target="new">西华简介</a></li>
                <li>历史沿革</li>
                <li>现任领导</li>
                <li>西华标识</li>
                <li>西华影像</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">机构设置</a>
            <ul class="sub-menu">
                <li>学院</li>
                <li>部门</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">人才培养</a>
            <ul class="sub-menu">
                <li>师资队伍</li>
                <li>本科教育</li>
                <li>研究生教</li>
                <li>留学生教育</li>
                <li>专科教育</li>
                <li>继续教育</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">科学研究</a>
            <ul class="sub-menu">
                <li>科研信息</li>
                <li>科研成果</li>
                <li>学科科研平台</li>
                <li>学术期刊</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">招生就业</a>
            <ul class="sub-menu">
                <li>本专科招生</li>
                <li>研究生招生</li>
                <li>继续教育招生</li>
                <li>就业信息</li>
            </ul>
        </li>

        <li class="menu-item"><a href="http://www.xhu.edu.cn">合作交流</a>
            <ul class="sub-menu">
                <li>国际交流与合作</li>
                <li>地方合作</li>
                <li>西华大学科技园</li>
                <li>国际教育学院</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">公共服务</a>
            <ul class="sub-menu">
                <li>学校校历</li>
                <li>网络服务</li>
                <li>招标投标</li>
                <li>后勤服务</li>
                <li>办公电话</li>
            </ul>
        </li>
        <li class="menu-item"><a href="http://www.xhu.edu.cn">人才招聘</a>
        </li>
    </ul>
    <div id="bg"><img src="images/bg.jpg"></div>
    <div class="form">
        姓名<input value="" type="text" id="name"> 学号
        <input value="" type="number" id="num"> 电话
        <input value="" type="tel" id="tel">
        <button onclick=add()>提交</button>
        <div id="datetime">时间</div>
        <span class="times">历史浏览次数:<span id="frequency">0</span></span>
    </div>
</body>

</html>

css: 

 <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        body {
            font-size: 18px;
            color: white;
        }
        
        a {
            text-decoration: none;
            color: white;
            /*color:white;*/
        }
        
        ul {
            position: relative;
            background: #0e6bc2;
            height: 50px;
            width: auto;
            list-style: none;
        }
        
        li {
            background: #0e6bc2;
            min-width: 144px;
            width: auto;
            height: 50px;
            line-height: 50px;
        }
        
        li:hover {
            background-color: #005691;
        }
        
        div {
            box-sizing: border-box;
            /*便于对齐,免受各类型元素padding不一致的影响*/
        }
        
        .nav {
            display: flex;
            justify-content: center;
            flex-wrap: nowrap;
            width: 100%;
        }
        
        .sub-menu {
            display: none;
        }
        
        .menu-item {
            display: block;
            text-align: center;
        }
        
        #bg {
            margin: 0 auto;
            max-width: 1400px;
        }
        
        img {
            width: 100%;
        }
        
        .block {
            display: block;
        }
        
        input {
            outline-style: none;
            border: 1px solid #ccc;
            border-radius: 3px;
            padding: 3px 4px;
            width: 200px;
            font-size: 14px;
            font-weight: 200;
        }
        
        .form {
            color: black;
            margin: 0 auto;
            max-width: 1400px;
        }
        
        #datetime {
            font-size: 20px;
            background: linear-gradient(to right, rgb(53, 177, 72), rgb(118, 7, 7));
            -webkit-background-clip: text;
            color: transparent;
        }
        
        .times {
            letter-spacing: 0.2rem;
            font-size: 1.2rem;
			background-image: -webkit-linear-gradient(left, #961414, #9005e6 10%, #142396 10%, #05e679 50%, #879614);
            -webkit-text-fill-color: transparent;
            -webkit-background-clip: text;
            -webkit-background-size: 200% 100%;
        }
    </style>

 新增HTML:

<div class="form">
        姓名<input value="" type="text" id="name"> 学号
        <input value="" type="number" id="num"> 电话
        <input value="" type="tel" id="tel">
        <button onclick=add()>提交</button>
        <div id="datetime">时间</div>
        <span class="times">历史浏览次数:<span id="frequency">0</span></span>
    </div>

js脚本:

<script>
		var user = JSON.parse(localStorage.getItem('user')) || []
		var m = parseInt(localStorage.getItem('times')) || 1;
		console.log(m);
		window.addEventListener("load", () => {
			let item = document.getElementsByClassName('menu-item')
			for (let i = 0; i < item.length; i++) {
				item[i].addEventListener("mouseover", mouserOver)
				item[i].addEventListener("mouseout", mouserOut)
			}

			function mouserOver() {
				this.children[1].classList.add('block')
			}

			function mouserOut() {
				this.children[1].classList.remove('block')
			}

			setInterval("document.getElementById('datetime').innerHTML=new Date().toLocaleString();", 500);
			document.getElementById('frequency').innerHTML = m

		})
		window.addEventListener("beforeunload", () => {

			m++;
			console.log(m);
			localStorage.setItem('times', JSON.stringify(m))
		})

		nam = document.getElementById("name")
		num = document.getElementById("num")
		tel = document.getElementById("tel")
		nam.value = user.id
		num.value = user.num
		tel.value = user.tel

		function local(value) {
			localStorage.setItem('user', JSON.stringify(value))
		}

		function add() {
			const nam = {
				id: document.getElementById('name').value,
				num: document.getElementById('num').value,
				tel: document.getElementById('tel').value,
			}
			local(nam)
		}
	</script>

测试结果截图:

 

 

 

vin77云虞
关注 关注
  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
前端开发实战】用 CSS 制作一个华丽的动画登录表单超详细教程新手友好~完整代码示例| 前端动效| 网页设计| 项目实例|HTML/CSS动画|打造炫酷漂亮的登陆表单 - 适合初学者小白的详细指南
南北极之间
06-07 377
总之,学习前端开发需要耐心和毅力,要保持对技术的热情和兴趣,不断学习和提升自己。通过实践项目、学习工具和框架、关注前端趋势等方式,你可以逐渐成为一名优秀的前端开发者。在用户悬停在环形动画上时,边框颜色会变化并增加阴影,提升交互体验。整体效果是一个炫酷的动画登录表单。这个登录表单页面包含了一个环形动画效果和一些输入框、按钮的样式。
大学生个人网页设计 HTML个人网页制作 web个人网站模板 简单静态HTML个人网页作品
热门推荐
HTML网页设计
07-31 6万+
🧑个人网页设计、🙋‍♂️个人简历制作、👨‍💼简单静态HTML个人网页作品、👨‍🏭个人介绍网站模板 、等网站的设计与制作。⭐个人网页设计网站模板采用DIV CSS布局制作,网页作品有多个页面,如 :个人介绍(文字页面)、我的作品(图片列表)、个人技能(图文页面)、在线留言(表单页面CSS样式方面网页整体采用左右布局结构,制作了网页背景图片,导航区域每个导航背景色不同,导航背景色与页面背景呼应。🏅 一套A+的网页应该包含 (具体可根据个人要求而定)📔网站布局方面:计划采用目前主流的、能兼容各大...
web前端-网页
最新发布
2301_79188932的博客
09-03 437
网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。浏览器是网页显示、运行的平台。常用的浏览器有、火狐(Firefox)、谷歌(Chrome)、Safari和Opera等平时称为五大浏览器。HTML指的是超文本标记语言(HyperText Markup Language)它是用来描述网页的一种语言。网页是由网页元素组成的,这些元素是利用 html标签描述出来,然后通过浏览器解析来显示给用户的。是网站中的一“页”,通常是 HTML格式的文件,它要通过浏览器来阅读。
web前端——网页设计
weixin_65997960的博客
03-18 1308
【代码】web前端——网页设计
web前端设计
yanyuyanyan的博客
10-28 4783
HTML的相关概念和建站流程 英语:HyperText Markup Language HTML的概念:超文本标记语言,是一种用于创建网页的标准标记语言。 标记:<>里面是标记 超文本:文字/图片/视频/超链接 HTML的基本组成: 结构(structure):html/xhtml w3c(万维网联盟)制定规范 概念 区别 html 超文本标记语言 最大的区别是语法 xhtml 可扩展的标记性语言 1.xhtml的单标签后面要加个/,如2.xhtml的标签必须是小写
WEB前端 网页设计 简介
君逍遥o
12-04 5707
WEB前端 网页设计 简介;基础
web大作业(前端页面设计
11-26
原始HTML+CSS+JS页面设计,可以学习学习,大学网页设计作业,很好的,很好的~~这是一个不错的网页制作,画面精明,非常适合初学者学习使用。
毕业论文——WEB前端页面设计
06-13
毕业论文——WEB前端页面设计 本文是关于WEB前端页面设计的毕业论文,涵盖了前端开发工具、技术、布局分析、设计、实现等方面的内容。 一、前端开发工具及相关技术 在WEB前端页面设计中,选择合适的开发工具和...
web前端——好玩的魔方.zip
12-04
总的来说,"好玩的魔方"项目不仅展示了Web前端技术的魅力,也提供了对3D图形和交互设计的深入理解。通过这个项目,开发者可以锻炼到HTML布局、CSS3 3D变换、JavaScript事件处理以及状态管理等多方面技能,同时也能...
Web前端设计基础——HTML5、CSS3、JavaScript》课后答案整理.pdf
06-10
根据提供的文件内容,我们可以整理出以下Web前端设计基础的知识点: 1. HTML5、CSS3、JavaScript概述 - HTML5是最新版本的超文本标记语言,用于创建网页的标准标记语言。它具有更快的访问速度、更好的搜索引擎优化...
期末前端web大作业:餐饮美食网站设计与实现——HTML+CSS+JavaScript美食餐饮网站 3页面
08-10
- **功能需求**:提供丰富的页面设计,包括首页、美食详情页以及其他可能的相关页面。 ### 2. 网站布局与设计 #### 2.1 页面布局 - **布局结构**:采用流行的浮动布局结构,确保网站在各种主流浏览器中的兼容性和...
前端界面设计
06-29
布局的实现界面,包括下拉框、文本框、按钮、表格等组件
web前端页面
07-29
html css
Web前端——JSP
weixin_51748707的博客
05-18 3610
1.简介 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是Servlet。​ JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。 2.九大内置对象 ​ JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspSe
前端页面设计 博客系统
m0_67403076的博客
06-21 1137
博客列表页:显示了当前系统中都有哪些发布出来的博客列表中的每一项,包含了,博客标题,发布时间,摘要信息,查看全文按钮博客详情页:显示了当前博客,详细正文登录页面:包含了一个登录框,输入用户名,密码,登录按钮博客登录页 :登录博客的界面博客编辑页:点击 “写博客" 进入的页面开发一个页面,不是在脑子里,凭空就搞出来的 而是要先设计好,然后再对照着这个设计稿来进行开发 一般是产品经理,或者美工 (UED) 提供的 如果没有个设计图,凭空去想,这个页面啥样,是特别不好做的 (既要实现代码,又要完成设计工作)设计稿
WEB前端网页设计 CSS 网页布局
君逍遥o
03-14 1548
不相等的列一般是在中间部分设置内容区域,这块也是最大最主要的,左右两次侧可以作为一些导航等相关内容,这三列加起来的宽度是 100%。底部区域在网页的最下方,一般包含版权信息和联系方式等。
前端页面设计 | 博客系统
1226
05-23 1万+
——页面介绍 博客列表页:显示了当前系统中都有哪些发布出来的博客 导航栏:logo,标题,主页,写博客,注销 左侧:当前用户信息,用户的头像+名字+其他的简单信息 右侧:博客列表 列表中的每一项,包含了,博客标题,发布时间,摘要信息,查看全文按钮 博客详情页:显示了当前博客,详细正文 导航栏:和博客列表页相同 左侧:显示的是当前文章的作者信息 右侧:显示当前文章的详细内容了 登录页面:包含了一个登录框,输入用户名,密码,登录按钮 博客登录页 :登录博客的界面 输入用户名 输入密码 确认登录 博客
vscode:Web前端——登录、注册界面
06-07
首先,登录和注册界面是Web前端的常见功能,可以使用HTMLCSS、JavaScript等技术来实现。以下是一些简单的步骤: 1.设计页面布局:可以参考一些常见的登录、注册页面设计,例如输入框、按钮的布局和样式等。 2....
写文章

热门文章

  • web前端——表单注册页面设计(注册信息) 5127
  • web前端——页面设计 4389
  • web前端——页面动态交互(对注册页信息添加css及js) 2122
  • web前端——给某网站移动版主页的体育板块进行布局设计 1578
  • web前端——网页设计 1308

最新评论

  • web前端——给某网站移动版主页的体育板块进行布局设计

    limit4ever: 我才写完这个表情包哥们实验4写了吗 给我康康表情包

  • web前端——给某网站移动版主页的体育板块进行布局设计

    m0_72425136: 不是西华的谁受这鸟气

  • web前端——给某网站移动版主页的体育板块进行布局设计

    limit4ever: 西华的吧

  • web前端——页面设计

    limit4ever: 哥们是西华的吧表情包

  • web前端——给某网站移动版主页的体育板块进行布局设计

    m0_72425136: 难道说是校友吗

最新文章

  • web前端——页面动态交互(对注册页信息添加css及js)
  • web前端——给某网站移动版主页的体育板块进行布局设计
  • web前端——网页设计
2023年5篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司云浮网站整站优化济南正宗网站优化费用阳江企业网站关键词优化方法网站优化十二大因素seo优化的好的网站网站做优化实力易速达高栏港网站优化福建靠谱的网站优化服务东至网站优化找哪家优化网站需要注意哪些宁波网站SEO优化微企点怎么优化网站深圳有实力的网站优化推广宣城网站优化电话优化网站排名询问u火18星西藏网站优化厂家报价荔湾seo网站优化推广价格昆山网站seo优化工作室网站建设优化seo紫金网站优化怎么收费南开网站优化制作南通网站改版优化服装行业网站怎么优化怀化网站排名优化海珠专业网站优化vue网站可以优化吗帮忙优化句子的网站郑州网站界面优化安阳实力网站优化哪家好临江网站优化公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化