Day5——盒子与块

前言:此文章为在校期间老师所授,记录着课堂知识。

继续css

交集并集选择器

		<style type="text/css">

			p span{
				background-color: pink;
			}
			p,span{
				background-color: pink;
			}
		</style>	

p,span 并集选择器 (p标签和span标签都生效)
p span 交集选择器 (p标签下的span标签生效)

默认的全局*

	<style type="text/css">
			*{
				text-decoration: line-through;/* 字是横穿线 */
				background-color: skyblue;
			}
	</style>		

*{}:全局生效
(当然依然遵循就近原则,很多时候会被顶掉)

盒子

div盒子属性

	<body>
		<div>
			第一个div
		</div>
	</body>

直接在body里面写div标签,不会发生什么。

<style type="text/css">	
	div{
			width: 100px;
			height: 100px;
			background-color: #FFC0CB;
				
		}
</style>

在head里面加入div,输入高度和宽度,再加背景颜色之后:
在这里插入图片描述
这是一种方法。变成一个块,盒子模型。
还有另一种:

<style type="text/css">	
	div{
			width: 100px;
			height: 100px;
			border: solid 3px #87CEEB;	
				
		}
</style>

不选择背景颜色,换成了边框。
在这里插入图片描述
但现在这样,和浏览器的边缘都有一些距离,若去掉距离需要:

		*{
			margin: 0;/* 你的块和边框的距离,盒子和盒子直接的距离 */
			padding: 0;/* 内容与盒子直接的距离 */
			
		}

需要再加个*{}里面的margin为0即可。
在这里插入图片描述
这样就没有距离了。

margin 盒子的距离问题

<body>
	<div class="one">
		第一个div
	</div>
<body>

先在body里整一个div。然后在上面写出样式:

	.one{
		margin-top: 50px;
		margin-left: 100px;
		margin: 50px 100px 50px 100px;
				
	}

margin-top:盒子距离上面盒子的距离
left:距离左边
right:距离右边
bottom:距离下面

若并没有写方位,
margin: 50px 100px 50px 100px;
margin:上, 右, 下, 左。
若写了一个,
margin:50px
则四个方位都是50px。
若写了两个,
margin:50px,100px
则上下50px,左右100px。
若写了三个,
margin:50px,100px,150px
margin:上50px,左右100px,下150px。

2个块的话,一个写距离上面50px,一个写距离下面100px,取最大值,最后两个距离100px。

padding 块和边框的距离

和上面margin类似,不过padding改变的是内容和边框的距离。
在这里插入图片描述

padding: 50px 100px ;

上下距离50px,左右距离100px
在这里插入图片描述
蓝色:原来的块,高100宽100。
绿色:padding,距离边框上下50px,左右100px。
float: left;
漂浮。
clear:清除漂浮

position 相对,绝对和固定定位

			.one{
				position: relative;
				top:10px;
				left:10px;

			}
			.two{
				position: absolute;
				top:100px;
				left:100px;
				
			}

relative:相对的,从原来的位置开始移动。
absolute:绝对的,从浏览器最左上角开始移动。
原先的位置:
在这里插入图片描述
加入relative,absolute之后:

在这里插入图片描述
还有fixed,固定定位。

		.as{
				
			position: fixed;
			top: 300px;
			left: 20px;
			border:solid 0.1875rem red ;
		}

效果就是一直待在你设的地方,不管鼠标怎么滑动,就好像网页上面跟随的广告一样。

重叠

有时候div会重叠,怎么决定谁在上谁在下呢?

<style type="text/css">
			div{
				width: 200px;
				height: 200px;
			}
				
			.one{
				background-color: #87CEEB;
				position: absolute;
				top: 10px;
				left: 10px;
				z-index: 1;
			}
			.two{				
				background-color: #FFC0CB;
				position: absolute;
				top: 50px;
				left: 100px;
				z-index: 0;
			}
		</style>

设置z - index,值越小越在最底下。
默认:
在这里插入图片描述
设置之后:
在这里插入图片描述

嵌套

	<style type="text/css">
		.my{
			width: 400px;
			height: 400px;
			border: solid 3px red;
			margin-top:200px ;
			margin-left: 400px;
		}
		
		.div1{
			width: 150px;
			height: 30px;
			border: solid 3px black;
			margin-top:100px ;
			margin-left: 150px;
		}
		
		.div2{
			width: 150px;
			height: 30px;
			border: solid 3px black;
			margin-top: 20px;
			margin-left: 150px;
		}
		
		
		
	</style>

无非是套来套去,感觉没什么难度…

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

在这里插入图片描述
(嵌套的课上练习)

在这里插入图片描述

<html>
	<head>
		<style type="text/css">
			.my{
				width: 700px;
				height: 400px;
				border: solid 4px black;
				margin-top:200px ;
				margin-left: 600px;
			}
			
			.div1{
				width: 300px;
				height: 28px;
				border: solid 3px black;
				margin-top:50px ;
				margin-left: 300px;
				position: absolute;
			}
			
			.div2{
				width: 300px;
				height: 28px;
				border: solid 3px black;
				margin-top: 100px;
				margin-left: 300px;
				position: absolute;
			}
			.div3{
				margin-top:30px ;
				margin-left: 150px;
				width: 100px;
				height: 50px;
				position: absolute;
			}
			.div4{
				margin-top: 80px;
				margin-left: 150px;
				width: 100px;
				height: 50px;
				position: absolute;
			}
			.div5{
				margin-top: 200px;
				margin-left: 310px;
				width: 100px;
				height: 60px;
				position: absolute;
				border: solid 3px black;
			}
		</style>
		
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<div class="my">
			<form>
			<div class="div1"><input type="text" style="width: 293px;height: 22px;"></div>
			<div class="div2"><input type="text" style="width: 293px;height: 22px;"></div>
			<div class="div3"><h2>用户名</h2></div>
			<div class="div4"><h2>&nbsp;&nbsp;&nbsp;&nbsp;</h2></div>
			<div class="div5"> 
			<input type="submit" value="登陆" style="width:100px;height:60px"/>
			</form>   </div>
			</div>
	</body>
</html>

div 居中和垂直居中

这里要再次用到margin。
之前说过,margin:20px,20px;
第一个表示上下,第二个表示左右,这时候把第二个换成auto,就会居中。

	<style type="text/css">
		
		div{
			width: 100px;
			height: 100px;
			margin: 200px auto;
			background-color: #FFC0CB;
		}
		
	</style>

如图:
在这里插入图片描述
垂直居中

	<style type="text/css">
		
		div{
			
			width: 100px;
			height: 100px;
			border: solid 3px #FFC0CB;
			position: absolute;
			top: 50%;
			left:50%;
			margin-top: -50px;
			margin-left: -50px;
			box-sizing: border-box;
		}
	</style>

这里先是写了长和宽,为了垂直居中,在最后要减去本来长宽的一半,然后用的绝对定位,定在了中央。

在这里插入图片描述

div里面的文字也要居中!

		<style type="text/css">
			
			div{
				
				width: 100px;
				height: 100px;
				border: solid 3px #FFC0CB;
				position: absolute;
				top: 50%;
				left:50%;
				margin-top: -50px;
				margin-left: -50px;
				box-sizing: border-box;
				
				text-align: center;
				line-height: 100px;
				overflow: hidden;
			}
		</style>

text-align,设置了水平居中。
line-height,100px。因为本身高100px。
若本文太长则会超出div块,
加上overflow:hidden,就会把超出的隐藏。
若敲入的是英文或者数字,加上下面这个可以把多余的变成…

text-overflow: ellipsis;

在这里插入图片描述

内联和块 display和visibility

块元素:
元素总是从一个新行开始显示
高度,行高以及顶、底边距都可控制
宽度缺省是它所在容器的100%,除非设定一个宽度
通常作为其它元素的容器,它可以容纳内联元素和其它块元素
table,div,ol,ul,h1,p…
内联元素:
和其它元素都在一行上
高度,行高以及顶、底边距不可改变
宽度就是它所容纳的文字或图片的宽度,不可改变
一般作为基本元素,只能容纳文本或者其它内联元素
a,img,input,textarea,select,span…

	<body>
			<div style="display:inline">div1</div>aaaa
	</body>

none 隐藏
block 默认 块
inline 内联,不换行

在这里插入图片描述

<div style="visibility: visible;">div1</div>aaaa

visibility: hidden; 不显示,页面也空出位置
这个属性指定是否显示一个元素生成的元素框。这意味着元素仍占据其本来的空间,不过可以完全不可见。

迷之问题

*和body的区别

因为*{}里面也算是全局的设置了,< body >里面也算是全局。

<head>
	<style type="text/css">
		
		*{
			color: red;
		}
		
		body{
			color: blue;
		}
		
	</style>
	
</head>


<body>
	
	aaa
	<p>bbb</p>
		
</body>

赋予了*标签,也就是所有标签红色。还赋予了body标签蓝色。
在这里插入图片描述
结果就是p标签下变成了红色,而aaa变成了蓝色。
< p >标签在< body >标签下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值