前端基础:CSS(篇二)

news2024/10/7 9:23:22

目录

盒子 模型(box-model)

盒子 模型-内容区

代码

运行 

盒子 模型-内边距

代码 

运行  

盒子 模型-边框

代码 

运行  

盒子 模型-外边距

代码

运行  

清除浏览器的默认样式

代码 

运行

盒子模型练习

代码

运行

 ​编辑

文档流 

浮动

代码

运行

清除浮动

代码

运行

CSS 定位(Position)

相对定位(relative)

特点:

代码

运行

绝对定位(absolute)

特点 :

代码

运行 


盒子 模型(box-model)

● CSS处理网页时,它认为每个标签都包含在一 个不可见的盒子里。

● 如果把所有的标签都想象成盒子,那么我们对网页的布局就相 当于是摆 放盒子。

● 我们只需要将相应的盒子摆放到网页中相应的 位置即可完成网页的布局。

内容区:放置标签内容的区域
width和height它只是设置标签内容区的大小  
内边距:内容区到边框以内发区域
边框:标签的最外边
标签大小=内容区大小+内边距大小+边框大小 

盒子 模型-内容区

● 内容区指的是盒子中放置内容的区域,也就是标签中的文本内容,子标 签都是存在于内容区中的。

● 通过width和height两个属性可以设置内容区的大小而不是整个盒子的大 小。

● 如果没有为标签设置内边距和边框,则内容区大小 默认和盒子大小是一 致的。

● width和height属性适用于块标签。

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				background-color: aqua;
				width: 176px;
				height: 176px;			
			}
			
			.box2{
				width: 200px;
				height: 200px;
				background-color: hotpink;
		</style>
	</head>
	<body>
		
		<div class="box1">
			盒子模型
		</div>
		
		<div class="box2"></div>  
	</body>
</html>

运行 

盒子 模型-内边距

● 内边距指的就是标签内容区与边框以内的空间。

● 内边距会影响整个盒子的大小。 使用padding属性来设置标签的内边距。

 padding:10px 20px 30px 40p

上、右、下、左四个方向的内边距

代码 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				background-color: aqua;
				width: 176px;
				height: 176px;
				
				padding: 10px;/* 四个方向内边距相同 */ 
				/* padding-top: 10px;
				padding-left: 15px; */
				
				/* padding: 5px 10px 15px 20px;上 右 下 左 顺时针 */
				/* padding: 10px 20px;上下 左右 */	
			}
		</style>
	</head>
	<body>
		
		<div class="box1">
			盒子模型
		</div>
	</body>
</html>

运行  

padding: 10px;

padding-top: 10px;
padding-left: 15px;

padding: 5px 10px 15px 20px;


padding: 10px 20px;

 

盒子 模型-边框

● 可以在标签周围创建边框,边框是标签可见框的最外部

   可以使用border属性来设置盒子的边框:

   可以使用border-top/left/right/bottom分别指定上右下左 四个方向的 边框。

● 边框可以设置样式:

dotted (点线)

dashed (虚线)

solid (实线)

double (双线)

groove (槽线)

border-radius设置四个角为圆角边框

border-top-left-radius设置左上为圆角边框

代码 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style> 
			.box1{
				background-color: aqua;
				width: 176px;
				height: 176px;
				
				border-top-width: 1px;
				border-top-color: rebeccapurple;
                border-top-style: solid; 	

                /* border-top: 2px rebeccapurple solid;*/
				/* border: 2px rosybrown solid; */
				/* border-radius: 10px;	 */
						
				border-top-left-radius: 10px;
				border-top-right-radius: 10px;
			}
		</style>
	</head>
	<body>
		
		<div class="box1">
			盒子模型
		</div>
	</body>
</html>

运行  

border-top-width: 1px;
border-top-color: rebeccapurple;
border-top-style: solid;  

border-top-left-radius: 10px;
border-top-right-radius: 10px;

border-top: 2px rebeccapurple solid; 

border-radius: 10px;

 border: 2px rosybrown solid;

盒子 模型-外边距

● 外边距是标签边框与周围标签相距的空间。 使用margin属性可以设置 外边距。用法和padding类似,同样也提供了四个方向的 。

margin-top/right/bottom/left。

margin的值可以为负值。

margin的值还可以auto,设置外边距为最大值,当将左右外边距设置为 auto时,浏览器会将左右外边距设置为相等.

垂直设置为auto时值为0,所以水平居中也可以简写为margin:0 auto。

● 外边距不会影响盒子的整体大小,但是会影响盒子的位置,会影响盒子 的实际控制范围。

● 外边距不影响标签的大小.只是影响标签的位置 ,外边距是一个标签到另一个标签的距离 

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style> 
			.box2{
				width: 200px;
				height: 200px;
				background-color: hotpink;
				margin-top: 10px;
				margin-bottom: 10px;
				/* margin-left: 100px; */
				/* margin-left: auto;
				margin-right: auto; */
				
				margin:10px auto; 
			}
		</style>
	</head>
	<body>
		<div class="box2"></div> 
	</body>
</html>

运行  

margin-top: 10px;
margin-bottom: 10px;
margin:10px auto; 

margin-left: 100px; 

margin-left: auto;
margin-right: auto;

清除浏览器的默认样式

浏览器为了在页面中没有样式时,也可以有一个比较好的显示效果,所 以为很多的标签都设置了一些默认的margin和padding,而它的这些默 认样式,正常情况下我们是不需要使用的。

我们往往在编写样式之前需要将浏览器中的默认的margin和padding统统 的去掉。

*{ margin: 0;

   padding: 0;

}

代码 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0px;
				padding: 0px;
				outline: none;
			}
			.box1{
				background-color: aqua;
				width: 176px;
				height: 176px;
				
				padding: 10px;/* 四个方向内边距相同 */ 
				
				border: 2px rosybrown solid;
				border-top-left-radius: 10px;
				border-top-right-radius: 10px;
			}
			
			.box2{
				width: 200px;
				height: 200px;
				background-color: hotpink;
				margin-top: 10px;
				margin-bottom: 10px;
		
				margin:10px auto;
		</style>
	</head>
	<body>
		
		<div class="box1">
			盒子模型
		</div>
		
		<div class="box2"></div> 
		
		<p>wwww</p>
		<p>sss</p>
		<h1>wwww</h1>
	    <h1>222</h1> 
	</body>
</html>

运行

盒子模型练习

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				background-color: chartreuse;
				width: 80px;
				
				padding: 10px 60px;
			}
			
			.txt1{
				width: 476px;
				height: 32px;
				padding: 2px 10px;
				border: 2px green solid;
				border-radius: 5px;
				outline: none;
			}
			.txt1:hover{
				border:2px magenta solid;
			}
			.txt1:focus{
				border: 2px black solid;
			}
		</style>
	</head>
	<body>
		
		<div class="box1">
			公司介绍
		</div>
		<br/>
		<input class="txt1"/>
	</body>
</html>
运行

 

 

文档流 

网页默认是一个二维平面,在网页中一行行摆放标签

块标签会占一行,行标签只占自身的大小

这种情况下实现网页布局就比较麻烦了,需要通过一些方法改变默认的摆放顺序---网页布局

浮动

浮动指的是使标签脱离原来的文档流,在父标签中浮动起来

使用float属性

none :不浮动

left :向左浮动

right :向右浮动

● 当一个标签浮动以后,其下方的标签会上移。

● 浮动会使标签完全脱离文档流,也就是不再在文档中在占用位置标签浮 动以后即完全脱离文档流,这时不会再影响父标签的高度,也就是浮动标签 不会撑开父标签。

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			div{
				background-color: darkturquoise;
				float: right;/* 可以让标签脱离原来的文档流(二维平面),浮动后的标签默认是呢内容的大小,可以为其设置宽和高*/
				width: 100px;
			}
		</style>
	</head>
	<body>
		<div>div1</div>
		<div>div2</div>
		<div>div3</div>
		<h1 style="background-color: cornflowerblue;">十里桃花</h1>
	</body>
</html>
运行

 

清除浮动

clear属性可以用于清除标签周围的浮动对标签的影响,其他标签的位置不 发生变化。

left : 忽略左侧浮动

right :忽略右侧浮动

both :忽略全部浮动

浮动的标签不占用原来的文档流空间
下面的标签就会向上移动,会影响后面的网页布局

解决浮动问题:
1、为父级标签设置一个高度,把父级标签撑开
2、在浮动的标签后使用清除浮动属性

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			 .nav{
				background-color:thistle; 
				float: left;
				padding: 10px 54px;
				
			 }
			 .nav:hover{
				 background-color: lightcoral;
			 }
			 .nav_box{
				background-color: darkorange; 
				width: 688px; 
				margin: 0px auto;
			 }
			 .middle_box{
				 width: 688px;
				 margin: 10px auto;
			 }
			 .middle_box_left,.middle_box_center,.middle_box_right{
				 float: left;
				 height: 200px; 
			 }
			 .middle_box_left{
				 width: 100px;
				 background-color: darkcyan;
				 padding-left: 10px; 
			 }
			 .middle_box_center{
			 	 width: 458px;
				 background-color: darkgoldenrod;
			 }
			 .middle_box_right{
				 width: 120px;
				 background-color: darkblue;
			 }
			 .middle_box_bottom{
				 background-color: aquamarine;
				 height: 50px;
			 }
		</style>
	</head>
	<body> 
		  <div class="nav_box">
			  <div class="nav">网站首页</div>
			  <div class="nav">产品案例</div>
			  <div class="nav">公司介绍</div>
			  <div class="nav">联系我们</div> 
			  <div style="clear: left;"></div> <!-- 清除浮动的影响,自动撑开父级标签-->
		  </div> 
		  
		  <div class="middle_box">
		      <div class="middle_box_left">
			    <div>家电</div>
			    <div>家电</div>
			    <div>家电</div>
			    <div>家电</div>
			  </div>
		      <div class="middle_box_center">center</div>
		      <div class="middle_box_right">right</div>
			  <div style="clear: left;"></div>
		      <div class="middle_box_bottom">bottom</div>
		  </div>
	</body>
</html>
运行

CSS 定位(Position)

相对定位(relative)

首先要开启标签的定位功能,指定定位的类型
以自己原来的位置进行定位的
相对定位不会让标签脱离文档流

相对定位是一个非常容易掌握的概念. 相对于它 的起点进行移动,移动后原来的位置还被占用

可以通过position:relative; 开启相对定位, left right top bottom四个属性来设置标签的偏移量

特点:

1.当开启了标签的相对定位以后,而不设置偏移量时,标签不会发生任何变化

2.相对定位是相对于标签在文档流中原来的位置进行定位

3.相对定位的标签不会脱离文档流

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				width: 100px;
				height: 100px;
				background-color: aqua;

				position: relative;
				left: 100px;
				top: 100px;
			}
			.box2{
				width: 100px;
				height: 100px;
				background-color: darkcyan;
			}
		</style>
	</head>
	<body>
		<div class="box1">div1</div>
		<div class="box2">div2</div>
	</body>
</html>
运行

 

绝对定位(absolute)

开启绝对定位,标签立即脱离文档流
参照物:
离他最近的开启定位的父级标签
如果所有的父级标签都没有开启定位,那么以浏览器窗口为参照物
开启标签的绝对定位都会开启父级标签的相对定位

绝对定位是不占空间的,运用了 绝对定位的标签会脱离原来的文档 流,浮动起来,因此视觉上会其他的标签重叠。  

可以通过position: absolute; 开启 绝对定位, left right top bottom四个属性来 设置标签的偏移量

特点 :

1.开启绝对定位,会使标签脱离文档流

2.开启绝对定位以后,如果不设置偏移量,则标签的位置不会发生变化

3.绝对定位是相对于离他最近的开启了定位的祖先标签进行定位(一般情况,开启了子标签 的绝对定位都会同时开启父标签的相对定位)

如果所有的祖先标签都没有开启定位,则会相对于浏览器窗口进行定位

代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				width: 100px;
				height: 100px;
				background-color: aqua; 
				 
				position: absolute;
				left: 100px;
				top: 100px;
			}
			.box2{
				width: 100px;
				height: 100px;
				background-color: darkcyan;
			}
			.box3{
				width: 200px;
				height: 200px;
				background-color: olivedrab;
				position: relative;
			}
		</style>
	</head>
	<body>
		<p>wwwww</p>
		<p>wwwww</p>
		<p>wwwww</p>
		<p>wwwww</p>
		<div class="box3">div3<div class="box1">div1</div></div>
		<div class="box2">div2</div>
	</body>
</html>
运行 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IO模型与多路复用

前言 在Linux中有一句经典台词&#xff1a;“Linux一切皆文件”。IO操作是与文件进行交流的唯一方式&#xff0c;也就是说这是与Linux系统交流的唯一手段。就如同人与人之间的交流&#xff0c;如果我们连交流的方式都不甚了解&#xff0c;交流的效率就会变得低下。操作系统也是…

计算机专业的概念需要拓宽|终身学习之旅利:用FlowUs打造个性化学习记录知识库

计算机相关专业长期以来一直是热门选择&#xff0c;这主要得益于技术的快速发展和广泛的应用场景。随着AI技术的不断进步&#xff0c;这一趋势在未来几年内仍有望持续。以下是从不同角度对这个问题的分析&#xff1a; 从AI发展的角度&#xff1a; 技术革新&#xff1a;AI技术…

2024年地球生态学与绿色发展国际会议 (EEGD 2024)

2024年地球生态学与绿色发展国际会议 (EEGD 2024) International Conference on Earth Ecology and Green Development in 2024 【重要信息】 大会地点&#xff1a;济南 大会官网&#xff1a;http://www.iceegd.com 投稿邮箱&#xff1a;iceegdsub-conf.com 【注意&#xff1a…

新赛季守望先锋2延迟高怎么办?快速降低守望先锋2延迟的小妙招

随着守望先锋2新赛季的开启&#xff0c;这款游戏又引入了大量全新内容&#xff0c;包括新地图、新神话皮肤等。而之前在预告片最后出现的《变形金刚》系列标志性的变形音效&#xff0c;表明在本赛季将与《变形金刚》系列展开联动更是吸引了不少玩家的关注。因为7月9日变形金刚联…

安装Rabbitmq遇到的坑

&#xff01;&#xff01;&#xff01;一定要对号版本号 不同的虚拟机unbontu、cetenos和不同的erlang和不同的rabbitmq之间要对应下载对应版本 下面给出我的版本centos7erlangrabbitmq 分割线 安装好后&#xff0c;如果在虚拟机的服务器上可以打开&#xff0c;在本地浏览器…

【基于R语言群体遗传学】-3-计算等位基因频率

书接上文&#xff0c;我们讲完了哈代温伯格基因型频率&#xff0c;也使用数据进行了拟合&#xff0c;那么接下来就是考虑一些计算的问题&#xff1a; 【基于R语言群体遗传学】-1-哈代温伯格基因型比例-CSDN博客 【基于R语言群体遗传学】-2-模拟基因型&#xff08;simulating …

Hubstudio指纹浏览器:海外代理IP新选择,IPXProxy为何备受推崇?

许多人都会把Hubstudio指纹浏览器和代理IP进行搭配使用&#xff0c;为了保证网络操作的顺利进行&#xff0c;例如亚马逊的多账号管理。那有没有好用的海外代理IP呢&#xff0c;如何在Hubstudio指纹浏览器中使用代理IP呢&#xff1f; 下面就给大家推荐好用的一家海外IP代理&…

收银系统源码-千呼新零售2.0

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

SMARTFORMS

page&#xff08;节点&#xff09;-> wondows(容器)

AI网络爬虫004:从东方财富网批量获取上市公司的全部新闻资讯

文章目录 一、目标二、输入内容三、输出内容一、目标 用户输入一个上市公司名称,然后程序自动从东方财富网批量获取上市公司的全部新闻资讯 查看相关元素在源代码中的位置: 新闻标题:<a href="http://finance.eastmoney.com/a/202405233084538683.html" targ…

Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置

一、背景 Jenkins&#xff08;本地宿主机搭建&#xff09; 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码&#xff08;可不改&#xff0c;如果运行报allure找不到就直接注释掉&#xff09; …

以责任铸就品牌,以行动推动社会进步

成都树莓集团&#xff0c;作为数字产业生态链的积极建设者&#xff0c;始终将履行社会责任作为企业发展的核心要义。我们深知&#xff0c;企业的成功不仅仅在于经济效益的取得&#xff0c;更在于对社会的贡献与回馈。 一、履行社会责任的实践 1、倡导绿色、低碳、可持续的发展…

Redis 7.x 系列【13】数据类型之地理位置(Geospatial)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 GEOADD2.2 GEODIST2.3 GEORADIUS2.4 GEOPOS2.5 GEORADIUSBYMEM…

C++ 和C#的差别

首先把眼睛瞪大&#xff0c;然后憋住一口气&#xff0c;读下去&#xff1a; 1、CPP 就是C plus plus的缩写&#xff0c;中国大陆的程序员圈子中通常被读做"C加加"&#xff0c;而西方的程序员通常读做"C plus plus"&#xff0c;它是一种使用非常广泛的计算…

​RAG与LLM原理及实践(8)--- Chroma 应用场景及限制

前言 通过前面几节的介绍&#xff0c;你应该对Chroma的运作原理有相当透彻的理解。Chroma的设计正如之前描述的&#xff1a; Chroma提供的工具&#xff1a; 存储文档数据和它们的元数据&#xff1a;store embeddings and their metadata 嵌入&#xff1a;embed documents an…

仓库管理系统25--数据导出

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、添加用户控件 <UserControl x:Class"West.StoreMgr.View.DataExportView"xmlns"http://schemas.microsof…

融云 CEO 董晗获颁 EqualOcean「2024 出海全球化服务 30 人」

6 月 26 日-27 日&#xff0c;EqualOcean 全球化百人论坛 &#xff08;GGF2024&#xff09;及颁奖盛典在深圳举办&#xff0c;融云 CEO 董晗荣登“2024 出海全球化服务 30 人”榜单。 作为全球商业信息平台和智库&#xff0c;EqualOcean 设立“出海全球化服务 30 人榜单”&am…

u盘里的数据全部不见了怎么恢复?这些方法你试过吗

在快节奏的工作和生活中&#xff0c;U盘作为我们随身携带的数据存储工具&#xff0c;承载了无数重要的文件和资料。然而&#xff0c;有时我们会突然发现U盘里的数据全部不见了&#xff0c;这无疑会给我们带来巨大的困扰和焦虑。面对这种情况&#xff0c;不要慌张&#xff0c;本…

2小时动手学习扩散模型(pytorch版)【入门版】【代码讲解】

2小时动手学习扩散模型&#xff08;pytorch版&#xff09; 课程地址 2小时动手学习扩散模型&#xff08;pytorch版&#xff09; 课程目标 给零基础同学快速了解扩散模型的核心模块&#xff0c;有个整体框架的理解。知道扩散模型的改进和设计的核心模块。 课程特色&#xf…

OpenCV 车牌检测

OpenCV 车牌检测 级联分类器算法流程车牌检测相关链接 级联分类器 假设我们需要识别汽车图像中车牌的位置&#xff0c;利用深度学习目标检测技术可以采取基于锚框的模型&#xff0c;但这需要在大量图像上训练模型。 但是&#xff0c;级联分类器可以作为预训练文件直接使用&…