web前端学习笔记05-CSS内边距、外边距、盒子模型、页面布局

一、CSS内边距(内补白、内补丁)

内边距设置常用属性

关键字 释义
padding 检索或设置对象四边的内边距,参数个数1或2(上下/左右)或4(上/右/下/左)
padding-top 检索或设置对象顶部的内边距, top顶,bottom低,left左,right右

    && padding会改变元素的大小


二、CSS外边距(外补白、外补丁)

外边距设置常用属性

关键字 释义
margin 检索或设置对象四边的外边距,参数个数1或2(上下/左右)或4(上/右/下/左)
margin-top 检索或设置对象顶部的外边距, top顶,bottom低,left左,right右

    && 利用margin让元素水平居中: margin: 0 auto;
    && 利用margin合并边框:外边距值设为负的边框宽度

/*上面一个元素*/
border: 5px solid green;
/*下面一个元素*/
margin-top: -5px;

三、盒子模型

元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中的盒子来比喻,辅助进行元素样式设置。把元素看作盒子,则对应样式分别为,盒子的边框-border、盒子内的内容与边框之间的间距-padding、盒子与盒子之间的间距-margin。

    【 盒子的实际尺寸

盒子宽度= width + padding左右 + border左右
盒子高度= height + padding上下 + border上下
元素占位大小(宽) = width + padding左右 + border左右 + margin左右
元素占位大小(高) = height + padding上下 + border上下 + margin上下
&& 解决padding和border改变盒子大小:即设置内边距但元素大小不变 box-sizing: border-box;

四、页面布局——块元素、内联元素和内联块元素

4.1 块元素

块元素,也称为行元素,布局中常用的标签有:div、p、ul、li、h1-h6、dl、dt、dd等,它们在布局中的行为:

  • 支持全部的样式
  • 宽度默认为父级宽度的100%
  • 盒子占据一行,即使设置了宽度

4.2 内联元素

内联元素,也称为行内元素,布局中常用的标签有:a、span、em、b、strong、i 等,它们在布局中的行为:

  • 支持部分样式,不支持宽、高、margin上下
  • 宽高由内容决定
  • 盒子并在一行
  • 代码换行,盒子会产生间距
  • 子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性设置子元素垂直对齐方式

4.3 内联块元素

内联块元素,也称行内块元素,是新增元素类型,现有元素没有归于此类别的,img和input元素的行为类似这种元素,但仍归类于内联元素,它们在布局中的行为:

  • 支持全部样式
  • 如果没有设置宽高,则宽高由内容决定
  • 盒子并在一行
  • 代码换行,盒子会产生间距
  • 子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性设置子元素垂直对齐方式

    【 三种元素比较

块元素 行内元素 行内块元素
常用标签 div p ul li h1-h6 dl dt dd a span em b strong i img input类似
是否支持全部样式
宽高 宽度默认为父元素的100% 不支持,宽高由内容决定 支持,默认为内容的宽高
是否独占一行
margin 支持 仅支持margin左右 支持
padding 支持 支持 支持

4.4 三种元素之间的转换

display属性用来设置元素的类型及隐藏。
    【 display常见属性值

属性值 释义
none 元素隐藏且不占位置
block 元素以块元素显示
inline 元素以内联元素显示(不常用)
inline-block 元素以内联块元素显示(html5中基本不用)

本节代码示例


<html>
	<head>
		<meta charset="UTF-8">
		<link rel="stylesheet" type="text/css" href="css/c05.css"/>
		<title>CSS内边距、外边距、盒子模型、页面布局title>
	head>
	<body>
		
		<div class="item1">div>
		<div class="item2">div>		
		<div class="box1">晚上好div><br/>
		<div class="box2">BOX2BOXdiv><br/>
		<div class="box3">BOX3BOXdiv><br/>
		<div class="box4">BOX4BOXdiv><br/>
		
		
		<div class="layout1">div>
		上面是一个块级元素,<span class="mm_span">它独占一行。span>内联元素不独占一行 <br/>
		<br/><br/><br/>
		当记忆的风吹来时让思绪的花在指尖淡淡飘香 <br/>
		
		当记忆的风吹来时
		让思绪的花在指尖淡淡飘香
		
		<br/><br/>
		
		<div class="layout2"><b>HELLOb>div>
		
		<br/><br/>
		当记忆的风吹来时,<input type="text" /> ,让思绪的花在指尖淡淡飘香 
		
		<br/><br/>
		
		<div class="c1 change1">111div>
		<div class="c2 change1">222div>
		<div class="c3 change1">333div>
		
		轻握一份懂得,
		<span class="change2">在似水的流年中,span>
		<span class="change2">轻倚一袭心湖的斑斓,span>
		<span class="change2">让真情点亮夜的星光,span>
		<span class="change2">在纯净的音乐里,span>
		<span class="change2">倾听心灵的纤尘不染。span>
			
		
		<div class="hide k1">k1div>
		<div class="hide k2">k2div>
		<div class="k3"><span>我显示了span>div>
		
	body>
html>

div{
	/*width: 100px;*/
	/*height: 100px;*/
	/*background-color: peachpuff;*/
	/*border: 5px solid green;*/
	
	/*内边距*/
	/*padding-top: 30px;*/
	/*padding-left: 30px;*/
	/*padding: 10px 20px;*/
	/*padding: 10px 20px 10px 20px;*/
}
.item1{
	width: 100px;
	height: 100px;
	background-color: plum;
	/*外边距*/
	/*margin-bottom: 50px;*/
	/*margin-left: 5px;*/
	/*元素水平居中*/
	/*margin: 0 auto;*/
	margin-top: -5px;
}
.item2{
	width: 100px;
	height: 100px;
	background-color: paleturquoise;
	/*margin: 10px 20px;*/
	/*margin: 10px 10px 10px 10px;*/
	margin-top: -5px;
}
.box1{
	width: 200px;
	height: 200px;
	background-color: orange;
	border: 10px solid green;
	padding: 20px;
}
.box2,.box3,.box4{
	width: 150px;
	height: 150px;
	color: white;
	background-color: brown;
	
	
}
.box3{
	padding: 10px;
	/*改变内边距但不改变盒子大小*/
	box-sizing: border-box;
}
.box4{
	padding: 10px;
	border: 10px solid dodgerblue;
	box-sizing: border-box;
}

/*页面布局*/
.layout1{
	/*块级元素——默认宽度是父级元素的100% ,独占一行(即使设置了宽度),支持所有样式*/
	width: 100px;
	height: 100px;
	background: palevioletred;
	margin: 20px;
	[padding: 20px;]
}
.mm_span{
	/*内联元素不独占一行,只支持部分样式,代码换行盒子会产生间距*/
	/*内联元素不支持宽度和高度设置,宽高由内容决定*/
	/*height: 100px;*/
	background: lightgreen;
	/*内联元素只支持margin左右,不支持margin上下*/
	margin: 50px;
	/*内联元素支持padding设置*/
	padding: 30px;
}
.layout2{
	width: 200px;
	height: 100px;
	background: lightskyblue;
	text-align: center;
	line-height: 100px;
}

input{
	/*行内块元素——不独占一行,盒子并在一行,支持所有样式*/
	/*若宽高不设置,则宽高由内容决定*/
	width: 200px;
	height: 100px;
	margin: 30px;
	padding: 30px;
}

/*元素类型转换*/
.change1{
	width: 100px;
	height: 100px;
	color: white;
	
	/*块元素转换为内联元素*/
	/*display: inline;*/
	
	/*块元素转换为内联块元素*/
	/*display: inline-block;*/		
}
.c1{	
	background: red;
}
.c2{
	background: green;
}
.c3{
	background: blue;
}
.change2{
	width: 100px;
	height: 100px;
	background: pink;
	/*内联元素转换为块元素*/
	/*display: block;*/
	/*内联元素转换为内联块元素*/
	display: inline-block;
}
.hide{
	width: 200px;
	height: 100px;
	background: yellowgreen;
	/*元素隐藏 且隐藏的元素不占位置*/
	display: none;
}
.k2{
	display: block;
}
.k3{
	width: 200px;
	height: 100px;
	background: bisque;
}
.k3 span{
	display: none;
}
/*当鼠标移入k3时显示文字*/
.k3:hover span{
	color: red;
	font-size: 30px;
	text-align: center;
	line-height: 100px;
	display: block;
}

你可能感兴趣的:(web前端学习)