好看的网站首页,顶部多层导航

之前有做过一个侧边多层导航, 原本觉得还不错,但是用着用着感觉不太方便,就把它改了改,变成了现在这样的

先说一下功能吧,当鼠标悬浮导航栏是,会显示对应导航栏下的内容,可以根据需求放入链接或者方法。当导航栏下内容超出页面时,会出现美化过的滚动条。背景图片和导航栏背景色可以根据喜好自己更改。

对了,图片里的网站链接我没放进去,是一些挺好用的网站,如果要的话可以在下面评论区说一下。

好了,开始写代码

第一步,HTML代码

       
		<script src="js/jquery-3.4.1.min.js"></script>		
        <div id="navigate">
			<ul>
				<li class="labels labels_1">
					<p id="labels_1" >搜索</p>
					<div class="tab  one">
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
					</div>
				</li>
				<li class="labels labels_2">
					<p id="labels_2" >工作</p>
					<div class="tab  two">
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
					</div>
				</li>
				<li class="labels labels_3">
					<p id="labels_3" >学习</p>
					<div class="tab  three">
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
					</div>
				</li>
				<li class="labels labels_4">
					<p id="labels_4" >娱乐</p>
					<div class="tab  four">
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
						<p><a href="#" target="_blank">名字</a></p>	
					</div>
				</li>
				
			</ul>
		</div>

第二步,为HTML设置样式

	
		*{
			margin: 0;
			padding: 0;
			list-style: none;
			text-decoration: none;
			color: white;
			text-align: center;
		}
		body{
			min-height: 100vh;
            /*背景图片路径*/
			background: url(https://raw.githubusercontent.com/szharf/hello-world/master/images/%E4%B9%A6%E6%88%BF.jpg) no-repeat; 
			background-size:100% 100%;
			font-family: "微软雅黑";
		}
		#navigate{
			width: 80%; 
			height: 50px;
			margin: auto;
			background-color: rgba(205,104,57,0.8) ;
		}
		.labels{
			border-bottom:solid gainsboro 1px;
			float: left;
			width: 25%;
			line-height: 50px;
			font-size: 20px;
			}
		.tab{
			display: none;
			background-color:rgba(238,118,33,0.8);
			overflow:auto; 
			appearance:none;
			-moz-appearance:none;
			-webkit-appearance:none;
			font-size: 16px;
			line-height: 40px;
			}
		/*美化滚动条*/
		.tab::-webkit-scrollbar-track {
			-webkit-box-shadow:inset 0 0 3px rgba(238,118,33,0.3);
			background-color:#F5F5F5;
		}
		.tab::-webkit-scrollbar {
			width:5px;
			background-color:#font: 5px F5 F5;;
		}
		.tab::-webkit-scrollbar-thumb {
			background-color:#CD6839;
			border:2px solid #CD6839;
		}
	

第三步,用jQuery添加事件

$(function(){
			//鼠标悬浮显示div的内容
			$(".labels_1").mouseover(function () {
				  $(".one").slideDown();
				  //鼠标离开,div隐藏
			}).mouseleave(function () {
				$(".one").slideUp(); 	
			 })
			 //2
			$(".labels_2").mouseover(function () {
				$(".two").slideDown();
			}).mouseleave(function () {
				$(".two").slideUp(); 	
			 })
			 //3
			$(".labels_3").mouseover(function () {
				$(".three").slideDown();
			}).mouseleave(function () {
				$(".three").slideUp(); 	
			 })
			 //4
			$(".labels_4").mouseover(function () {
				$(".four").slideDown();
			}).mouseleave(function () {
				$(".four").slideUp(); 	
			 })
			 
			 //获取页面高度,减去顶部高度
			 var height =$(window).height()-51;
			 //获取内容的高度
			 var height1 =$('.one').outerHeight();
			 //判断div高度是否大于页面高度
			 if(height1>=height){
					//当div高度大于页面高度时,为div设置高度
					$(".one").height(height);
			 }
			 var height2 =$('.two').outerHeight();
			 if(height2>=height){
				  $(".two").height(height);
			 }
			 var height3 =$('.three').outerHeight();
			 if(height3>=height){
				  $(".three").height(height);
			 }
			 var height4 =$('.four').outerHeight();
			 if(height4>=height){
				  $(".four").height(height);
			 }
		})

好了,很简单,这就已经完成了

Streamlit是一个用于快速构建数据应用程序的开源Python库。它允许开发者轻松地创建单页或多页的数据驱动Web应用。如果你想要创建一个多层网页结构,Streamlit提供了`st.sidebar`、`st.beta_expander`和自定义布局功能来帮助你组织内容。 - `st.sidebar`:这个小侧边栏可以添加导航链接或者控制选项,通常放在页面的一侧,类似于网站顶部的菜单栏。 - `st.beta_expander`:这是一个展开区域,你可以将复杂的内容(如表格、文本等)折叠起来,用户点击时会显示详细信息。 - 自定义布局:通过使用`st.beta_container`和`col`函数,你可以创建多列布局,比如设置一个主区域展示主要内容,旁边放置辅助信息。 下面是一个简单的例子: ```python import streamlit as st # 设置标题 st.title("我的多层Streamlit应用") # 主要内容区域 with st.beta_expander("核心内容"): st.write("这是页面的主要部分...") # 边栏导航 st.sidebar.markdown(""" [首页](#home) | [详情](#details) | [设置](#settings) """, unsafe_allow_html=True) # 使用`beta_container`创建多层结构 with st.beta_container(): with st.beta_column(2): st.subheader("[首页](#home)") with st.beta_column(10): st.subheader("[详情](#details)") # 相关问题-- 1. Streamlit如何管理多级页面之间的状态? 2. 如何在Streamlit中实现更复杂的导航结构? 3. Streamlit是否有现成的主题或模板来美化多层布局? ``` 在这个示例中,我们创建了一个基础的多层结构,包括一个侧边栏导航和一个可展开的核心内容区。当然,这只是一个起点,实际应用中可以根据需求定制更多复杂的层次。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值