CSS进阶标签属性及案例

CSS高级

1. 盒子模型

CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式;

在这里插入图片描述

element:元素内容

width:元素内容的宽度

height:元素内容的高度

border:元素的边框

padding:边框到内容的距离

margin:边框到其他元素的距离

<html>
	<head>
		<meta charset="UTF-8">
		<title>CSS盒子的基本使用</title>
	<style>
			body{
				float: right;
			}
			img{
				width: 200px;
				height: 100px;
				border: 5px solid red;
			}
			#img1{
				padding: 10px;
				margin: 50px;
			}
			#img2{
				padding: 15px;
				margin: 100px;
			}
			#img3{
				padding-top: 20px;
				margin-left: 150px;
				margin-right: 200px;
			}
		</style>
	</head>
	<body>
		<img id="img1" src="img/123.png" />
		<img id="img2" src="img/psb.jpg" />
		<img id="img3" src="img/psb1.jpg" />
	</body>
</html>

注意:

  • 内边距和外边距的值可以是负数;
  • 在页面上,设置margin-right无效,因为元素默认是左对齐,不管怎么设置元素都是左对齐,所以将元素设置为右对齐就可以看到效果,float:right;
  • 浏览器:元素进行渲染的时候,是从左往右进行渲染;

2. CSS定位

CSS 定位 (Positioning) 属性允许对元素进行定位;

position:固定(fix)、相对(relative)、绝对(absolute)、静态(static);
left:对元素进行左偏移;
top:对元素进行上偏移;
right:对元素进行右偏移;
bottom:对元素进行下偏移;

2.1 固定定位

只在一个位置进行显示;

<html>
	<head>
		<meta charset="UTF-8">
		<title>固定定位</title>
	<style>
			img{
				position: fixed;
				width: 350px;
				height: 200px;
				right: 0px;
				bottom: 0px;
			}
			p{
				font-size: 20px;
			}
			
		</style>
	</head>
	<body>
		<a href="https://huoying.qq.com/"><img src="img/123.png" /></a>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
		<p>卡卡之家</p>
	</body>
</html>

2.2 相对定位

如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动;

<html>
	<head>
		<meta charset="UTF-8">
		<title>相对定位</title>
		<style>
			#s1{
				background-color: red;
			}
			#s2{
				background-color: orange;
				position: relative;
				top: 20px;
				left: 20px;
			}
			#s3{
				background-color: blue;
			}
		</style>
	</head>
	<body>
		<span id="s1">这是span1</span>
		<span id="s2">这是span2</span>	
		<span id="s3">这是span3</span>	
	</body>
</html>

在这里插入图片描述

原有元素占用的空间不会消失,偏移根据原有位置进行偏移;

2.3 绝对定位

设置绝对定位的元素框从文档流中删除,并相对于其包含块定位,元素原先在正常文档流中所占的空间会关闭;

<html>
	<head>
		<meta charset="UTF-8">
		<title>绝对定位</title>
		<style>
			#s1{
				background-color: red;
			}
			#s2{
				background-color: orange;
				position: absolute;
				top: 50px;
				left: 50px;
			}
			#s3{
				background-color: blue;
			}
		</style>
	</head>
	<body>
		<span id="s1">这是一个span1</span>
		<span id="s2">这是一个span2</span>
		<span id="s3">这是一个span3</span>
	</body>
</html>

在这里插入图片描述

绝对定位并不会在原有位置占用空间,元素的偏移是根据父容器进行偏移;

3. 块级元素和行内元素

display: inline(行内元素)、block(块级元素)、inline-block(行内块级元素);

块级元素:

  • 块级元素前后会带有换行符,占用一整行;

  • 常见的块级元素:div;

行内元素:

  • 行内元素前后没有换行符,只包裹内容;

  • 常见的行内元素:span;

  • margin-top、margin-bottom、padding-top、padding-bottom设置无效;

<html>
	<head>
		<meta charset="UTF-8">
		<title>块级元素和行内元素</title>
		<style>
			div{
				background-color: blue;
				/*使得div仅包裹内容*/
				display: inline;
				padding-top: 10px;
				margin-top: 100px;
			}
			span{
				background-color: red;
				margin-top: 100px;
				/*是的span占满整一行*/
				display: block;
			}
		</style>
	</head>
	<body>
		<div>这是一个div</div>
		<span>这是一个span</span>
	</body>
</html>

4.CSS伸缩布局

伸缩布局flex:在响应式开发中可以发挥极大的作用;

如:内容根据浏览器的大小而进行改变;

flex-container:伸缩容器;

main-axis:主轴,元素的排列方向,默认是row(水平方向);

cross-axis:侧轴,默认是column(垂直方向);

flex-item:伸缩元素,会按照主轴的方向进行排列;

在这里插入图片描述

4.1 flex入门案例一

左边是菜单栏(40%),右边是内容栏(60%),高度填充整个屏幕;

<html>
	<head>
		<meta charset="UTF-8">
		<title>伸缩布局入门案例一</title>
	    <style>
			html{
				height: 100%;
			}
			body{
				height: 100%;
				margin: 0px;
			}
			/*让id为container的容器为伸缩布局*/
			#container{
				display: flex;
				height: 100%;
			}
			#left{
				background-color:red;
				width: 40%;
				height: 100%;
			}
			#right{
				background-color:blue;
				width: 60%;
				height: 100%;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="left">left</div>
			<div id="right">right</div>
		</div>
	</body>
</html>

4.2 flex入门案例二

上边是菜单栏(40%),下边是内容栏(60%),宽度填充整个屏幕;

<html>
	<head>
		<meta charset="UTF-8">
		<title>伸缩布局入门案例二</title>
		<style>
			html{
				height: 100%;
			}
			body{
				height: 100%;
				margin: 0px;
			}
			#container{
				display: flex;
				/*改变主轴方向*/
				flex-direction: column;
				height: 100%;
			}
			#top{
				background-color: red;
				height: 40%;
			}
			#bottom{
				background-color: blue;
				height: 60%;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="top">top</div>
			<div id="bottom">bottom</div>
		</div>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willing卡卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值