css入门学习day04笔记

这篇博客深入探讨了CSS布局的几种常见方法,包括绝对定位、固定定位、粘滞定位的应用,以及模态框的创建。在绝对定位中,元素会脱离正常文档流并固定在特定位置。固定定位让元素在页面滚动时保持在屏幕的某个位置。粘滞定位则允许元素在达到特定位置后变为固定。此外,还介绍了如何利用模态框来增强用户体验。最后,文章提到了动画布局和伸缩盒布局,用于实现更灵活的网页设计,确保元素在伸缩时保持良好布局。

css布局实践(二)

绝对定位

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位</title>
	<style>
		body {
		}
		.outer {
			background-color: #ccc;
			width: 800px;
			margin: 100px auto;
			position: relative;
		}
		.outer > div:nth-child(1), 
		.outer > div:nth-child(3) {
			height: 100px;
		}
		.outer > div.one {
			background-color: lightblue;
		}
		.outer > div.two {
			background-color: pink;
			position: absolute;
			/*width: 100px;*/
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			opacity: .5;
		}
		.outer > div.three {
			background-color: teal;
		}
	</style>
</head>
<body>
	<div class="outer">
		<div class="one"></div>
		<div class="two"></div>
		<div class="three"></div>
	</div>
</body>
</html>

在这里插入图片描述

固定定位

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>固定定位</title>
	<style>
		p {
			margin: 0;
		}
		ul {
			margin: 0;
			padding: 0;
			list-style: none;
		}
		.container {

		}
		.aside {
			position: sticky;
			float: right;;
			width: 100px;
			background-color: pink;
			top: 200px;
		}
		.aside > ul > li {
			height: 100px;
			line-height: 100px;
			border-bottom: 1px solid #fff;
			position: relative;
		}
		.aside > ul > li:hover > div {
			display: block;
		}
		.aside > ul > li > div {
			background-color: teal;
			width: 200px;

			position: absolute;
			top: 0;
			right: 120px;
			
			display: none;
		}
		.wrapper {
			width: 1200px;
			margin: 0 auto;
		}
		a {
			text-decoration: none;
		}
		.top_nav a{
			color: #333;
			font-weight: bold;

		}
		.top_nav ul.nav {
			background-color: teal;
			position: relative;

		}
		.top_nav ul.nav::after {
			display: block;
			content: "";
			clear: both;
		}
		.top_nav ul.nav > li {
			float: left;
			width: 100px;
			text-align: center;

		}
		.top_nav ul.nav > li:hover > div {
			display: block;
		} 
		.top_nav ul.nav > li > div {
			position: absolute;
			left: 0;
			top: 100%;
			width: 100%;

			height: 200px;
			background-color: #fff;
			display: none;
		}

		.left-aside {
			position: fixed;
			left: 0;
			top: 200px;
			width: 100px;
			background-color: pink;
		}
		.left-aside > div {
			height: 100px;
			line-height: 100px;
			border-bottom: 1px solid #fff;
		}
		.left-aside > div:hover > div{
			display: block;
		}
		.left-aside > div > div{
			position: absolute;
			top: 0;
			left: 100%;
			width: 300px;
			background-color: #ededed;
			display: none;
			height: 300px;
		}
	</style>
</head>
<body>
	<div class="container">
		
		<div class="top_nav">
			<div class="wrapper">
			<ul class="nav">
				<li>
					<a href="#">居家生活</a>
					<div>
						居家生活子元素
					</div>
				</li>
				<li>
					<a href="#">服饰鞋包</a>
					<div>
						服饰鞋包子元素
					</div>
				</li>
				<li>
					<a href="#">美食酒水</a>
					<div>
						美食酒水子元素
					</div>
				</li>
				<li>
					<a href="#">运动旅行</a>
					<div>
						运动旅行子元素
					</div>
				</li>
			</ul>
			</div>
		</div>
		<div style="height: 300px;background-color: lightblue">
		</div>

		<div class="left-aside">
			<div>
				<p>全站</p>
				<div>
					全站...
				</div>
			</div>
			<div>
				<p>居家</p>
				<div>
					居家....
				</div>
			</div>
			<div>
				<p>服饰</p>
				<div>
					服饰...
				</div>
			</div>
			<div>
				<p>美食</p>
				<div>
					美食...
				</div>
			</div>
		</div>

		
	</div>
	<!-- 右侧栏 -->
	<div class="aside">
		<ul>
			<li>图片</li>
			<li>二维码</li>
			<li>
				<p>电子刊</p>
				<div>
					电子刊子内容
				</div>
			</li>
			<li>
				<p>客服</p>
				<div>
					客服子内容
				</div>
			</li>
		</ul>
	</div>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>
	<br>

</body>
</html>

结果粉色矩形保持在固定位置,不会随着网页的滚动而变化
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

粘滞定位

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>粘滞定位</title>
	<style>
		body {
			margin: 0;
		}
		.box {
			height: 100px;
			width: 100px;
			background-color: #ededed;
			position: sticky;
			top:50px;
			float: right;

		}
	</style>
</head>
<body>
	<div style="height: 300px;background-color: pink"></div>
	<div class="box"></div>
	<div style="height: 1000px;background-color: lightblue;"></div>
</body>
</html>

通过网页向下滚动,白色方块到达某一位置后停止移动,并在向上滚动的时候跟随在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模态框

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>模态框</title>
	<style>
		body {
			margin: 0;
		}
		.container {
			width: 1200px;
			margin: 0 auto;
		}
		.tbl {
			width: 100%;
			text-align: center;
			/*边框合并*/
			border-collapse: collapse;
		}
		.tbl td {
			border: 1px solid #ccc;
		}
		.modal {
			position: absolute;
			top: 0;bottom: 0;
			width: 100%;
			background-color: rgba(0,0,0,0.5);
			z-index: 100;
			/*display: none;*/
		}
		.modal > .modal-container {
			width: 800px;
			margin: 100px auto 0;
			background-color: #efefef;
			min-height: 400px;
			box-shadow: 0px 0px 5px #efefef;
		}
		.modal > .modal-container > .modal-title {
			height: 2em;
			line-height: 2em;
			font-size: 16px;
			padding: 0 2em;
			text-align: center;
			border-bottom: 1px solid #ccc;
		}
	</style>

</head>
<body>
	<div class="container">
		<div>hello world</div>
		<table class="tbl">
			<tbody>
				<tr>
					<td>编号</td>
					<td>姓名</td>
					<td>性别</td>
					<td>操作</td>
				</tr>
				<tr>
					<td></td>
					<td></td>
					<td></td>
					<td>删除</td>
				</tr>
			</tbody>
		</table>
	</div>

	<!-- 模态框 -->
	<div class="modal">
		<div class="modal-container">
			<div class="modal-title">添加学生信息</div>
		</div>
	</div>
</body>
</html>

模态框样式:
在这里插入图片描述

动画布局

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>动画布局</title>
	<style>
		body {
			margin: 0;
		}
		ul {
			margin: 0;
			padding: 0;
			list-style: none;
		}
		.view {
			width: 300px;
			height: 300px;
			margin: 0 auto;
			border: 1px solid #ccc;
			overflow-x: hidden;

		}
		.view img {
			width: 100%;
		}
		.view  > .s-container {
			width: 1200px;
			position: relative;
			left: 0px;
		}
		.view > .s-container > li {
			width: 300px;
			float: left;
			font-size: 0;
		}

		
	</style>
</head>
<body>
	<div class="view">
		<ul class="s-container">
			<li><img src="./images/wangyiyanxuan_07.png" alt=""></li>
			<li><img src="./images/wangyiyanxuan_09.png" alt=""></li>
			<li><img src="./images/wangyiyanxuan_17.png" alt=""></li>
			<li><img src="./images/wangyiyanxuan_19.png" alt=""></li>
		</ul>
	</div>
</body>
</html>

为网页轮播图进行布局:
将如下图片进行固定区域显示,其他进行隐藏
在这里插入图片描述

隐藏后布局变成下图所示
在这里插入图片描述

伸缩盒布局

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>伸缩盒布局</title>
	<style>
		body {
			margin: 0;
		}
		.outer {
			display: flex;
			flex-direction: row;
			flex-wrap: nowrap;
			background-color: #ededed;
		}
		.outer > div {
			height: 100px;
			width: 300px;
		}
		.outer >div:nth-child(1){
			background-color: teal;
			/*flex-basis: 300px;*/
			flex-grow: 1;
			flex-shrink: 2;
		}
		.outer >div:nth-child(2){
			background-color: pink;
			/*flex-basis: 300px;*/
			flex-grow: 2;
			flex-shrink: 1;
		}
		.outer >div:nth-child(3){
			background-color: lightblue;
			/*flex-basis: 300px;*/
		}
	</style>
</head>
<body>
	<div class="outer">
		<div></div>
		<div></div>
		<div></div>
	</div>
</body>
</html>

伸缩盒顾名思义,就是对网页进行伸缩操作。为了使伸缩之后的网页不变形,就需要用到伸缩盒布局方法
如图,对网页进行伸缩操作亮蓝色矩形宽度不变,其余矩形宽度改变
在这里插入图片描述
在这里插入图片描述
(上图显示宽度显示不同是因截图原因自动放大,实际宽度自行测试)

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模式分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模式与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模式识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值