CSS学习(二)

一、浮动

float:left 元素向左浮动
float:right 元素向左浮动
由于块级元素默认独占一行,不能并列显示,因此可以使用浮动让块级元素并列显示。

HTML

<ul class="nav">
	<li>1</li>
	<li>2</li>
	<li>3</li>
</ul>

CSS

.nav {
	background-color: red;
	margin: 0;
}
.nav li {
	width: 100px;
	height: 30px;
	line-height: 30px;
	color: #fff;
	text-align: center;
	list-style: none;
}
.nav li:nth-of-type(1) {
	background-color: hotpink;
}
.nav li:nth-of-type(2) {
	background-color: lightcoral;
}
.nav li:nth-of-type(3) {
	background-color: lightsalmon;
}

使用浮动前
在这里插入图片描述
在css中加入float:left;

.nav li {
	width: 100px;
	height: 30px;
	line-height: 30px;
	color: #fff;
	text-align: center;
	list-style: none;
	float:left;
}

使用浮动后
在这里插入图片描述
可以发现原本独占一行的块级元素,并列显示在同一行的了。但是需要注意的是由于使用了浮动,导致该元素脱离文档流,使其父级元素发生了高度塌陷,导致父级元素的背景颜色消失。

文档流
将窗体从上至下分成一行一行,并在每行中按从左至右依次排放元素,称为文档流,也称为普通流。这个应该不难理解,HTML中全部元素都是盒模型,盒模型占用一定的空间,依次排放在HTML中,形成了文档流。

脱离文档流
元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理解为漂浮在文档流的上方,处在另一个平面)。脱离文档流的元素的定位基于正常的文档流,当一个元素脱离文档流后,依然在文档流中的其他元素将忽略该元素并填补其原先的空间。
注意:float浮动跟position:absolute一样拥有脱离文档流的功能,但是float虽然脱离了文档流但是仍然会占据位置,其他的文本内容会按照顺序继续排列。如果你对所有的元素都设置了浮动,你会看到这几个div并不会重叠,而是会顺序排列。

清除浮动
为了解决父级元素的高度塌陷问题,我们需要清除浮动。我使用伪类after清除浮动。

.nav:after {
	content: "";
	display: block;
	clear: both;
}

在这里插入图片描述
可以看到父级元素的背景颜色又正常显示了。

二、定位

1、position:fixed 定位
元素的位置相对于浏览器窗口是固定位置。不会因窗口滚动发生位置的变换。
2、position:relative 定位
新的元素的位置相对于原位置进行偏移。相对定位元素经常被用来作为绝对定位元素的容器块。
3、position:absolute 定位
元素的位置相对于设置了relative属性的父级元素进行偏移。如果没有父级元素设置relative属性,则按window进行定位。

HTML

<div class="div1">
	<div class="div2"></div>
</div>

父级设置position:relative
CSS

.div1 {
	width: 300px;
	height: 300px;
	background-color: red;
	position: relative;
}
.div2 {
	width: 150px;
	height: 150px;
	background-color: blue;
	position: absolute;
	right: 0;
}

在这里插入图片描述
父级不设置position:relative
CSS

.div1 {
	width: 300px;
	height: 300px;
	background-color: red;
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值