Web全栈~08.浮动和定位

Web基本笔记~08.浮动和定位

上一期

Float

       Float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。CSS 的 Float(浮动)使元素脱离文档流,按照指定的方向(左或右发生移动),直到它的外边缘碰到包含框或另一个浮动框的边框为止。

基本示例

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<style>
		img{
			width: 200px;
			float: left;
		}
	</style>
	</head>
	<body>
		<div style="width: 350px;height: 500px;">
			<img src="./img/but.jpg" alt="按钮"/>
			中国汉朝初年的《尔雅》,是中国百科全书性质著作的渊源;古希腊学者亚里士多德编写过的全面讲述当时学问的讲义,则被西方奉为“百科全书之父”。
			中国古代的类书是一种百科全书式的资料汇编,也有学者认为明朝的《永乐大典》是最早的接近现代意义上的百科全书。
			中国近代的百科全书是20世纪初由西方引进的书体。民国时的著名学者李煜瀛是最早进行西方百科全书研究的人,将这一书体介绍到中国并产生广泛影响的。
		</div>
	</body>
</html>

在这里插入图片描述

       浮动以后使元素脱离了文档流(在页面中不占据位置)。

       浮动是碰到父元素的边框或者浮动元素的边框就会停止。

       浮动不会重叠。

       浮动只有左右浮动,没有上下浮动。

       浮动以后块级元素在同一行显示,行内元素可以设置宽高。

       元素没有设置宽度和高度时,宽度为内容撑开。

清除浮动的影响

       当元素设置 float 浮动后,该元素就会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素,浮动元素会造成父元素高度塌陷。

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<style>
		.out{
			background-color: #138496;
		}
		.in{
			width: 200px; height: 200px;
			background-color: #7ABAFF;
		}
	</style>
	</head>
	<body>
		<div class="out">
			<div class="in"></div>
		</div>
	</body>
</html>

在这里插入图片描述

       父元素高度由子元素撑开。但是给子元素设置浮动后效果后

<style>
		.out{
			background-color: #138496;
		}
		.in{
			width: 200px; height: 200px;
			background-color: #7ABAFF;
			float: left;
		}
</style>

在这里插入图片描述

       所以当我们设置 float 后,要根据不同情况来清除浮动

       如果要设置父标签合适的高度,则必须确定子布局的高度,来计算父布局的合适高度包住子布局。

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<style>
		.box{
			background-color: pink;
		}
			.one,.two,.three{ width: 200px; height: 200px; float: left;
		}
		.one{
			background-color: red;
		}
		.two{
			background-color: gold;
		}
		.three{
			background-color: green;
		}
		.footer{
			height: 300px;
			background-color: blueviolet;
			/*清除*/
			clear:both;
		}
	</style>
	</head>
	<body>
		<div class="box">
			<div class="one"></div>
			<div class="two"></div>
			<div class="three"></div>
		</div>
		<div class="footer"></div>
	</body>
</html>

Position

       position 属性指定了元素的定位类型。这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固 定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在 正常流中的默认位置偏移。元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定 position 属性。他们也有不同的工作方式,这取决于定位方法。

在这里插入图片描述

position:sticky

       position:sticky 是一个新的 css3 属性, 它的表现类似 position:relative 和position:fixed 的 合 体 , 在 目 标 区 域 在 屏 幕 中 可 见 时 , 它 的 行 为 就 像position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed,它会固定在目标位置。

       如果同时定义了 left 和 right 值,那么 left 生效,right 会无效,同样,同时定义了 top 和 bottom,则bottom无效

Z-index

       z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面auto 默认。堆叠顺序与父元素相等。注释:元素可拥有负的 z-index 属性值。注释:Z-index 仅能在定位元素上奏效(例如 position:absolute;)该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<style>
		.box{
			position: relative;
		}
		.one{
			width: 150px; 
			height: 150px;
			background-color: #17A2B8;
			position: absolute;
			top: 50px; 
			left: 50px;
			z-index: 666;
		}
		.two{
			width: 150px; 
			height: 150px;
			background-color: #95999C; 
			position: absolute;
			left: 100px; 
			top: 100px;
		}
	</style>
	</head>
	<body>
		<div class="box">
			<div class="one"></div>
			<div class="two"></div>
		</div>
	</body>
</html>

在这里插入图片描述

position 案例

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<style>
		.nav{
			width: 100%; 
			height: 61px; 
			position: relative;
		}
		.nav li{
			float: left;
			padding: 20px 26px;
		}
		.nav a{
			color: #000;
		}
		.nav-list{ 
			width: 100%;
			height: 300px; 
			background-color: red; 
			position: absolute;
			left: 0;
			top: 100%;
			display: none;
		}
		.nav li:hover>.nav-list{ 
			display: block;
		}
	</style>
	</head>
	<body>
		<div class="nav">
		<ul>
			<li><a href="#">推荐</a></li>
			<li><a href="#">热榜</a><div class="nav-list"></div></li>
			<li><a href="#">要闻</a></li>
			<li><a href="#">小说</a></li>
			<li><a href="#">历史</a></li>
			<li><a href="#">科技</a></li>
		</ul>
	</body>
</html>

       下一期对position的多个案例进行深入学习

  • 21
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值