CSS

目录

1. CSS简介

2. 样式层叠次序

3. CSS基础语法

4. CSS样式单的基本使用

4.1 链接外部样式文件

4.2 导入外部式文件

4.3 使用内部样式定义

4.4 使用内联样式

5. CSS选择器

5.1 元素选择器

5.2 属性选择器

5.3 ID选择器

5.4 class选择器

5.5 包含选择器

5.6 子选择器

6. CSS样式

6.1 CSS背景

6.2 CSS文本

6.3 CSS字体

6.4 CSS列表

6.5 CSS表格

6.6 CSS浮动

6.7 CSS定位

7. CSS盒子模型

7.1 概述

7.2 内边距

7.3 边框

7.4 外边距


1. CSS简介

层叠样式表,样式定义如何显示HTML元素。

  • 样式通常存储在样式表中
  • 外部样式表通常存储在CSS文件中,可以提高工作效率
  • 多个样式定义可层叠为一

2. 样式层叠次序

  • 样式分类

    • 浏览器缺省设置
    • 外部样式表
    • 内部样式表(<head>标签内部)
    • 内联样式(HTML元素内部)
  • 内联样式优先级最高

3. CSS基础语法

CSS规则主要由两部分组成:选择器、一条或多条声明

<!--选择器:h1,属性:color、font-size,值:red、14px-->
h1 {color:red; font-size:14px;} 
  • 选择器决定该样式定义对哪些元素起作用,通常需要改变样式的HTML元素
  • 每条声明由一个属性和一个值组成,属性和值用:分隔
    • 属性:所要设置的样式属性
    • 值的不同写法(以上面的red为例)
      • 英文单词  red
      • 十六进制  #ff0000;
      • 缩写形式  #f00;
      • rgb(255,0,0);
      • rgb(100%,0%,0%);
    • 若值为若干单词,需要给值加上""
  • 若定义不止一个声明,用分号将每个声明分开

4. CSS样式单的基本使用

CSS样式单可以控制HTML文档的显示

  • 四种使用样式单的方式:
    • 链接外部样式文件
    • 导入外部式文件
    • 使用内部样式定义
    • 使用内联样式
  • 4.1 链接外部样式文件

    • 彻底将样式文件与HTML文档分离
    • 样式文件需要额外引用
    • 一批样式可以控制多个HTML文档
<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
			<title> 链接外部CSS样式单</title> 
			<!--rel和type表明该页面使用了CSS样式单,href属性的值则指向CSS样式单文件的地址-->
			<link rel="stylesheet" type="text/css" href="Outter.css"
	</head> 
	<body> 
		<table>
			<tr>  
				<td>HTML 从入门到精通</td>  
			</tr> 
			<tr>  
				<td>CSS 从入门到精通</td> 
			</tr> 
			<tr>  
				<td>JavaScript 从入门到精通</td> 
			</tr> 
		</table>
	</body> 
</html>
  • 4.2 导入外部式文件

    • 类似于链接外部样式文件
    • 使用@import引入外部样式文件
<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
			<title> 导入外部式文件</title> 
			<style type="text/css">      
			  @import "Outter.css";  
		    </style>
	</head> 
	<body> 
		<table>
			<tr>  
				<td>HTML 从入门到精通</td>  
			</tr> 
			<tr>  
				<td>CSS 从入门到精通</td> 
			</tr> 
			<tr>  
				<td>JavaScript 从入门到精通</td> 
			</tr> 
		</table>
	</body> 
</html>
  • 4.3 使用内部样式定义

    • 在HTML文档头定义样式单
    • 每批CSS样式只控制一份HTML文档
    • 缺点:
      • 当此CSS样式被其他HTML文档使用,必须在其他HTML文档中重复定义
      • 大量CSS嵌套在HTML文档中,HTML文档过大,网络负载加重
      • 不利于项目管理 —— 若修改网页风格,依次打开页面进行重复修改。
    • 优点:使某些CSS样式仅对某个页面有效而不影响整个网站,使用内部样式定义。
<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
			<title>内部样式单</title>    
			<style type="text/css">      
			table {   
			 	background-color:#003366;  
			 	width: 400px;    
	 	    }
	 	    td {    
	 	    	background-color:#fff;    
	 	    	font-family:"楷体_GB2312";    
	 	    	font-size:20px;    
	 	    	text-shadow:-8px 6px 2px #333;    
 	    	}    
 	    	.title {        
 	    		ont-size: 18px;        
 	    		color: #60C;        
 	    		height: 30px;        
 	    		width: 200px;        
 	    		border-top: 3px solid #CCCCCC;        
 	    		border-left: 3px solid #CCCCCC;        
 	    		border-bottom: 3px solid #000000;        
 	    		border-right: 3px solid #000000;    
    		}    
			</style> 
	</head> 
	<body> 
		<table>
			<tr>  
				<td>HTML 从入门到精通</td>  
			</tr> 
			<tr>  
				<td>CSS 从入门到精通</td> 
			</tr> 
			<tr>  
				<td>JavaScript 从入门到精通</td> 
			</tr> 
		</table>
	</body> 
</html>
  • 4.4 使用内联样式

    • 将样式内联定义到具体的HTML元素
    • 每批CSS样式值空时单个HTML元素
    • 用于精确控制一个HTML元素的表现
    • 几乎所有的HTML元素都增加了一个style通用属性,该属性值是一个或者多个CSS样式定义,多个CSS样式定义之间以英文分号隔开
<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
			<title>内联样式</title>    
	</head> 
	<body> 
		<div style="font-size: 18px;  
			color: #60C;  
			height: 30px; 
			 width: 200px;  
			 border-top: 3px solid #CCCCCC;  
			 border-left: 3px solid #CCCCCC;  
			 border-bottom: 3px solid #000000;  
			 border-right: 3px solid #000000;">  
			 前端: 
		 </div><hr /> 
		 <table style="background-color:#003366;
		 	width: 400px;">  
		 	<tr>   
		 		<td style=" background-color:#fff; 
		 			font-family:' 楷体_GB2312'; 
		 			font-size:20px; 
		 			text-shadow:-8px 6px 2px #333;">HTML 从入门到精通</td>  
 			</tr>  
 			<tr>   
 				<td style=" background-color:#fff; 
 					font-family:' 楷体_GB2312'; 
 					font-size:20px; 
 					text-shadow:-8px 6px 2px #333;">CSS 从入门到精通</td>
			</tr>  
			<tr>   
				<td style=" background-color:#fff; 
					font-family:' 楷体_GB2312'; 
					font-size:20px; 
					text-shadow:-8px 6px 2px #333;">JavaScript 从入门到精通</td>  
			</tr> 
		 </table> 
	</body> 
</html>

5. CSS选择器

  • 5.1 元素选择器

在样式中写元素名称

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>元素选择器</title>
		<style type="text/css">
			div{
				background-color: plum;
				font:initial normal bold 14pt normal "微软雅黑";
			}
			p{
				background-color: powderblue;
				color: darkorchid;
				font: normal bold 22pt normal "楷体";
			}
		</style>
	</head>
	<body>
		<div>
			div啊
		</div>
		<p>
			p啊
		</p>
	</body>
</html>
  • 5.2 属性选择器

元素选择器是属性选择器的特例

  • 当多个CSS样式定义都可以对某个HTML元素起作用时,该HTML元素的显示外观将是多个CSS样式定义"迭加"作用的效果。如果多个CSS样式定义之间有冲突时,则冲突属性以优先级更高的CSS样式取胜。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>属性选择器</title>
		<style type="text/css">
			div{
				width: 300px;            
				height: 30px;            
				background-color: #eee;            
				border: 1px solid black;            
				padding: 10px; 
			}
			div[id]{
				background-color: darkgrey;
			}
			div[id^=xx]{
				background-color: chartreuse
			}
			div[id=xx]{
				background-color: salmon
			}
		</style>
	</head>
	<body>
		<div>没有任何属性的div元素</div>    
		<div id="a">带id属性的div元素</div>    
		<div id="zzxx">id属性值包含xx⼦子字符串串的div元素</div>    
		<div id="xxyy">id属性值以xx开头的div元素</div>    
		<div id="xx">id属性值等于xx的div元素</div> 
	</body>
</html>
  • 5.3 ID选择器

指定CSS样式将会对具有指定id属性值的HTML元素起作用

在同一个html页面中,id属性值必须是唯一的,不能重复。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>ID选择器</title>
		<style type="text/css">  
		div {   
			width: 200px;   
			height: 30px;   
			background-color: #ddd;   
			padding: 3px;   }  
			/*只对指定元素起作用*/
			#xx {   
				border:2px dotted black;   
				background-color: #888;  
				} 
		</style>
	</head>
	<body>
		<div> 没有任何属性的div元素</div> 
		<div id="xx">id 属性值为xx的div元素</div>
	</body>
</html>
  • 5.4 class选择器

指定CSS样式对具有指定class属性的元素起作用

  • 几乎所有的HTML元素都可指定class属性,该属性唯一的作用是让class选择器起作用。
  • 在同一个HTML页面中多个标签是可以指定同名的class属性
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>class选择器</title>
		<style type="text/css">  
		.myclass {   
			width: 240px;   
			height: 40px;   
			background-color: #dddddd;  
		}  
		div.myclass {   
			border:2px dotted black; 
			background-color: #888888;  
		} 
		</style>
	</head>
	<body>
		<p class="myclass">class 属性为myclass的P元素</p> 
		<!--两个CSS样式叠加效果-,class选择器优先级更高->
		<div class="myclass">class 属性为myclass的div元素</div> 
	</body>
</html>

优先级:id选择器 > class选择器 > 标签选择器


  • 5.5 包含选择器

指定目标选择器必须处于某个选择器对应的元素内部

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>包含选择器</title>
		<style type="text/css">
			div{
				width: 300px;            
				height: 60px;            
				background-color: #eee;            
				border: 5px solid black;            
			}
			div.a{
				width: 200px;            
				height: 40px;            
				background-color:darkmagenta;            
				border: 2px dotted black;            
			}
		</style>
	</head>
	<body>
		<div> 没有任何属性的div元素</div> 
		<div>  
			<p class="a"> 处于div内部且class属性为a的元素</p> 
		</div> 
		<p class="a"> 处于div之外,但class属性为a的元素</p> 
	</body>
</html>
  • 5.6 子选择器

指定目标选择器必须是某个选择器对应元素的子元素

  • 类似于包含选择器,区别:
    • 对于包含选择器,只要目标选择器位于外部选择器对应的元素内部就行。即, " 孙子元素 " 也可以;
    • 对于子选择器,目标选择器必须作为外部选择器对应元素的直接子元素。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>子选择器</title>
		<style type="text/css">
			div{
				width: 300px;            
				height: 60px;            
				background-color: #eee;            
				border: 5px solid black;            
			}
			div.a{
				width: 200px;            
				height: 40px;            
				background-color:darkmagenta;            
				border: 2px dotted black;            
			}
		</style>
	</head>
	<body>
		<div> 没有任何属性的div元素</div> 
		<div>  
			<p class="a"> 处于div内部且class属性为a的元素,并且为直接子元素</p> 
		</div> 
		<div>  
			<section>
				<p class="a"> 处于div内部且class属性为a的元素,并且为孙子元素 </p>
			</section> 
		</div>
	</body>
</html>

6. CSS样式

  • 6.1 CSS背景

CSS允许以纯色为背景,也允许使用图片为背景。

  • 6.1.1 背景颜色
    • 使用background-color设置背景颜色,不能继承,默认值transparent(透明)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body{background-color: paleturquoise;}
			h1{background-color: hotpink}
			p{background-color:mediumpurple;padding: 20px;}/*设置内边距*/
		</style>
	</head>
	<body>
		<h1>标题1</h1>
		<h2>标题2</h2>
		<p>段落</p>
	</body>
</html>
  • 6.1.2 背景图片
    • 使用background-image设置背景图片,不能继承,必须设置一个url值,可以应用于段落、超链接等
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body{background-image: url(img/海景1.jpg);}
			p{background-image: url(img/5.jpg); padding: 20px;}/*设置内边距*/
			a.radio{background-image: url(img/3.jpg);  }
		</style>
	</head>
	<body>
		<p>有背景图片的段落</p>
		<a href="#" class="radio">我是一个带有背景图片的超链接啊</a>
	</body>
</html>
  • 6.1.3 背景重复
    • 使用background-image设置背景是否重复(默认第一个元素在左上角),4个属性表示平复方式:
      • repeat(默认):在整个页面上平铺
      • repeat-x:只在水平方向上重复
      • repeat-y:只在垂直方向上平铺
      • no-repeat:不在任何方向上平铺
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body{background-image: url(img/海景1.jpg); background-repeat: repeat-x;}
		</style>
	</head>
	<body>
	</body>
</html>
  • 6.1.4 背景定位

使用background-image设置背景在浏览器中的位置,设置的关键字:top、bottom、left、right、center

body{background-image: url(img/海景1.jpg); 
     /*
      * 两个关键字,一个对应水平方向,一个对应垂直方向
      * 若只有一个关键字,则默认另一个关键字是center
      */
     background-position: top center; 
     /*
      * 也可以用百分数值和长度值来标记位置
      */
     /*background-position: 0% 50%;
       图像的左上角将在元素内边距区左上角向右50像素、向下100像素的位置
     background-position: 50px 10px; */
}
  • 6.1.5 背景关联

使用 background-attachment 设置背景图片是否随着文档滚动,两个值:fixed(不随文档滚动),scroll(默认,随文档滚动)

body{background-image: url(img/海景1.jpg); 
	background-attachment: fixed;
}
  • 6.2 CSS文本

可以定义文本的外观

  • 6.2.1 缩进文本

使用 text-indent 使所有元素的第一行缩进一个给定的长度

/*使所有段落的首行缩进5em*/
p {text-indent: 5em;}

/*首行悬挂缩进,为了避免某些文本会超出浏览器窗口的左边界,设置外边距或内边距*/
p {text-indent: -5em; padding-left: 5em;}

/*用百分值表示缩进值,缩进值是⽗元素的 20%,即 100 个像素*/
div {width: 500px;} 
p {text-indent: 20%;}

  • 6.2.2 水平对齐

使用 text-align 来设置文本行相互之间的对齐方式,值 left、right 和 center 使文本分别左对齐、右对齐和居中。 

<CENTER>既影响文本,又将整个元素居中; text-align 不控制元素对其,只影响内部内容。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平对齐</title>
		<style>
			p#id{text-align: center;}
		</style>
	</head>
	<body>
		<p>段落</p>
		<p id="id">另一个段落</p>
	</body>
</html>
  • 6.2.3 字间隔

使用word-spacing 来改变字(单词)之间的标准间隔,默认值normal(显示同值为0).

若提供一个正长度值,字间隔会增加;提供一个负长度值,拉近字间隔。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>字间隔</title>
		<style>
			p.tight{word-spacing: 30px;}
			p.spread{word-spacing: -0.5em;}
		</style>
	</head>
	<body>
		<p class="spread">bonjour,mon ami!</p>
		<p class="tight">c'est la vie!'</p>
	</body>
</html>
  • 6.2.4 字母间隔

使用 letter-spacing 来改变字符之间的间隔,类似于word-spacing

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>字母间隔</title>
		<style>
			p.tight{letter-spacing: 30px;}
			p.spread{letter-spacing: -0.1em;}
		</style>
	</head>
	<body>
		<p class="spread">bonjour,mon ami!</p>
		<p class="tight">c'est la vie!'</p>
	</body>
</html>
  • 6.2.4 字符转换

使用 text-transform 属性处理文本的大小写

  • 四个值:none(原样)、uppercase(全大写)、lowercase(全小写)、capitalize(首字母大写)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>字符转换</title>
		<style type="text/css">
			h1{text-transform: uppercase;}
		</style>
	</head>
	<body>
		<h1>bonjour,mon ami!</h1>
		<h2>c'est la vie!'</h2>
	</body>
</html>
  • 6.2.5 文本装饰

使用 text-decoration 来标记下划线等

  • 5个值:
    • none:关闭所有装饰(超链接默认会有下划线,可以使用该值去掉)
    • underline:加下划线
    • overline:加上划线
    • line-through:加中划线
    • blink:文本闪烁
  • 6.2.6  CSS链接

用于向某些选择器添加特殊的效果

  • 锚伪类
    • 链接的不同状态可以用不同的样式显示,有四种状态:
      • 活动状态:active
      • 未被访问:link
      • 已被访问:visited
      • 鼠标悬停状态:hover
    • a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的
    • a:active 必须被置于 a:hover 之后,才是有效的
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>CSS伪类</title>
		<style>
			/*link状态*/
			a:link{
			/*文本修饰*/
			text-decoration: none;
			color: #F00;
			}
			/*visited状态*/
			a:visited{
				color: #CCC;
				font-size: 26px;
			}
			/*hover状态*/
			a:hover{ 
				color: #00F;
				/*文本修饰*/
				text-decoration: underline;
				font-size: 20px;
			}
			/*active状态*/
			a:active{
				color: #0F0;
				/*文本修饰*/
				text-decoration: none;
				font-size: 24px;
			}
		</style>
	</head>
	<body>
		<a href="目标页面.html">超链接</a>	
	</body>		
</html>
  • 6.3 CSS字体

定义字体系列

  • 6.3.1 指定字体系列

使用 font-family 定义文本的字体系列

  • 在 CSS 中,有两种不同类型的字体系列名称:
    • 通用字体系列 - 拥有相似外观的字体系统组合(比如 "Serif" 或 "Monospace")
    • 特定字体系列 - 具体的字体系列(比如 "Times" 或 "Courier")
  • 除了了各种特定的字体系列外,CSS 定义了 5 种通用字体系列:
    • Serif 字体
    • Sans-serif 字体
    • Monospace 字体
    • Cursive 字体
    • Fantasy 字体
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>字体系列</title>
		<style type="text/css">
			h1{font-family: georgia,serif;}
		</style>
	</head>
	<body>
		<h1>bonjour,mon ami!</h1>
		<p>c'est la vie!'</p>
	</body>
</html>
  • 6.3.2 字体风格

使用 font-style 设置斜体等

  • 三个值:
    • normal:文本正常显示
    • italic:文本斜体显示(是一种字体风格)
    • oblique:文本倾斜显示(比斜体倾斜角度更大)
  • 6.3.3 字体加粗

使用font-weight 设置文本的粗细,使用bold关键字设置为粗体。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			p.normal{font-weight: normal;}
			p.thick{font-weight: bold;}
			p.thicker{font-weight: 900;}
		</style>
	</head>
	<body>
		<p class="normal">bonjour,mon ami!</p>
		<p class="thick">c'est la vie!</p>
		<p class="thicker">amour</p>
	</body>
</html>
  • 6.3.4 字体大小

使用 font-size 设置文本的大小

  • 值可以使相对的,也可以是绝对的。
    • 绝对:将文本设置为指定的大小,用户无法在浏览器中改变文本的大小
    • 相对:相较于周围的元素设置大小,用户可以在浏览器中改变文本的大小(默认16px)
  • 1em等于当前字体尺寸,em与px的关系需要通过父元素的font-size确定。
    • 浏览器中默认的文本大小是 16px。因此 1em 的默认尺寸是 16px。
    • 假设父元素的font-size是20px,则1em=20px
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			h1{font-size: 60px;}
			h2{font-size: 2.5em;} /*40px*/
			h3{font-size: 0.875em;} /*14px*/
		</style>
	</head>
	<body>
		<h1 class="normal">bonjour,mon ami!</h1>
		<h2 class="thick">c'est la vie!</h2>
		<p class="thicker">amour</p>
	</body>
</html>
  • 6.4 CSS列表

可以设置、改变列表项标志

  • 6.4.1 列表样式

使用 list-style-type 设置列表项的样式

  • 6.4.2 列表项图像

使用 list-style-image 设置图像为列表项标志

  • 6.4.3 列表位置

使用 list-style-position 设置列表中列表项标志的位置

ul.2{
	/*自定义一个列表标记*/
	/*列表样式类型*/
	list-style-type:upper-roman;
	list-style-position: initial;
}
ul.1{
	list-style-type: square;
}
ul.0{
	/*将指定图片设置为列表标记*/
	list-style-image: url(img/key.jpg);
}
  • 6.5 CSS表格

  • 6.5.1表格边框

使用border设置表格边框

  • 6.5.2 折叠边框

使用border-collapse设置是否将表格边框折叠为单一边框

  • 6.5.3 表格的宽度和高度

使用width和height设置表格的宽度和高度

  • 6.5.4 表格文本对齐

使用text-align和vertical-align分别设置水平对齐方式和垂直对齐方式

  • 6.5.5 表格内边距

使用 padding 设置表格中内容与边框的距离

  • 6.5.6 表格的边框样式

使用border-style设置边框样式(solid:单实线  double:双实线  dotted:点  dashed:虚线)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>表格属性</title>
		<style type="text/css">
			table{
				/*边框线的合并*/
				border-collapse: collapse;
				height:40px;
			}
			th{
				/*边框样式的简写属性:border:边框宽度 边框样式 边框颜色*/
				border: 1px solid blueviolet;
				width: 100px;
				height:50px;
				vertical-align: bottom; /*垂直对齐模式*/
				border-top-style: dotted; /*设置上边框样式为虚线*/
				border-left-style: dashed;/*设置左边框样式为虚线*/
			}
			td{
				text-align: center; /*水平对齐模式*/
				padding: 15px; /*设置内边距*/
			}
		</style>
	</head>
	<body>
		<table border="1" align="center" width="300px" height="100px">
			<thread>
				<tr>
					<th>姓名</th>
					<th>性别</th>
					<th>年龄</th>
				</tr>
			</thread>
			<tbody>
				<tr>
					<td>lila</td>
					<td>女</td>
					<td>21</td>
				</tr>
				<tr>
					<td>ronnie</td>
					<td>男</td>
					<td>21</td>
				</tr>
				<tr>
					<td>nina</td>
					<td>女</td>
					<td>20</td>
				</tr>
			</tbody>
		</table>
	</body>
</html>
  • 6.6 CSS浮动

使用 float 设置浮动,使用clear设置不浮动

  • 设置浮动的标签会脱离当前文档流,遇到边框停止。后面依次排队的元素就会默认的填充当前文档流(流式布局—随着浏览器的显示大小而改变位置)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>CSS浮动</title>
		<style>
			#dl1{
				width: 200px;
				height: 200px;
				background-color: lightblue;
				border: 1px solid #000;
				/*设置浮动属性*/
				float: right;
			}
			#dl2{
				width: 200px;
				height: 200px;
				background-color:pink;
				border: 1px solid #000;
			}
			#dl3{
				width: 200px;
				height: 200px;
				background-color: plum;
				border: 1px solid #000;
			}	
			#clear{
				/*清除浮动:左右两边都不浮动*/
				clear: both;
			}
		</style>
	</head>
	<body>
		<div id="dl1">div1</div>
		<div id="clear">div</div>
		<div id="dl2">div2</div>
		<div id="dl3">div3</div>
	</body>
</html>
  • 6.7 CSS定位

使用position设置定位

  • 三种定位方式

    • 相对定位 relative:相对于原来元素的位置进行移动

    • 绝对定位 absolute:相对于父标签(body或其他标签)的位置进行移动

    • 固定定位 fixed:不会随着滚动条而滚动,应用于某些网站中的广告(必须使用点击关闭)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>CSS定位</title>
		<style>
			div{
				width: 200px;
				height: 200px;
				
				border: 1px solid #00F;
			}
			#dl1{
				background-color: plum;
			}
			#dl2{
				background-color:paleturquoise;
			}
			#dl3{
				background-color: lightpink;
				/*相对定位*/
				position: relative;
				/*position:absolute;*/
				top:10px;
				left: 20px;
			}
			#adv{
				background-color: peachpuff;
				/*固定定位*/
				position: fixed;
				top:200px;
				left: 250px;
			}
		</style>
	</head>
	<body>
		<div id="dl1">div1</div>
		<div id="dl2">div2</div>
		<div id="dl3">div3</div>
	</body>
</html>

7. CSS盒子模型

盒子模型 Box Model规定了元素框处理元素内容、内边距、边框和外边距的方式。

  • 7.1 概述

元素框的最内部是内容,直接包围内容的是内边距。内边距的边缘是边框,边框外是外边距,外边距默认为透明的。

  • 背景应用的范围:内容+内边距+边框
  • 内边距(padding)、边框(border)和外边距(margin)默认值为0;增加这些影响的不是内容区域的尺寸,而是增加元素框的总尺寸。
  • width和height修饰内容区域的宽度和高度
  • 7.2 内边距

内边距是边框和内容之间的空间,padding属性可以控制该区域。

  • 7.2.1 padding属性

定义元素的内边距。可以使用长度值或百分比值设置padding,但不可使用负值。

  • 可以按照上右下左的顺序分别设置各边的内边距
  • 如果设置的是百分比值,则根据其父元素的width计算。
    • 注:上下内边距的百分数会想对于父元素宽度设置,而不是相对于高度
h1 {
  padding-top: 10px;
  padding-right: 0.25em;
  padding-bottom: 2ex;
  padding-left: 20%;
}

//等同于
h1 {padding: 10px 0.25em 2ex 20%;}
  • 7.3 边框

围绕元素内容和内边距的一条或多条线。border属性可以规定元素边框的样式、宽度及颜色。

  • 元素的背景包括边框。当边框为虚线时,可见部分应该出现背景。
  • 边框的样式控制着边框的显示,当设置 border-style:outset;该边框在视觉上是突出的效果。
  • 可以为一个边框定义多个样式,依照上右下左的顺序。
  • 可以使用border-width设置边框宽度,可以定义单边宽度,也可以定义多边宽度
    • 设置方式
      • 指定长度值  eg:2px
      • 3个关键字
        • thin、medium、thick
  • 若将border-style设置为none,则边框不存在。即使设置了别的属性,也无法展示出来。
  • 可以使用border-color设置边框颜色
    • 可以一次设置多个边,若颜色值小于四个,则采用值复制(上下同色,左右同色)
    • 当设置边框颜色值为transparent时,边框是透明的,即不可见。

7.4 外边距

围绕在元素边框的空⽩白区域是外边距。

  • 7.4.1 margin属性

设置外边距,可以使用任何长度单位、百分比值以及负值设置margin。

  • margin可以设置为auto,默认值是0。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>margin属性</title>
		<style type="text/css">
			h1{margin:auto}
			h2{margin: 0.25in;} /*每个边0.25英尺的空白*/
			h3{margin:10px 0px 15px 20px} /*四个边定义不同的外边距:上右下左*/
			p{margin:20%}/*相对于父元素计算*/
		</style>
	</head>
	<body>
		<h1 class="normal">bonjour,mon ami!</h1>
		<h2 class="thick">c'est la vie!</h2>
		<h3 class="thicker">amour</h3>
		<p class="thicker">belle</p>
	</body>
</html>
  • 7.4.2 值复制

CSS允许为外边距指定少于4个值,少左同右,少下同上,少右同上。

  • 因此,我们只用指定必要的值,而不需要全部指定。
h1 {margin: 0.25em 1em 0.5em;} /* 等价于 0.25em 1em 0.5em 1em */ 
h2 {margin: 0.5em 1em;}  /* 等价于 0.5em 1em 0.5em 1em */ 
p {margin: 1px;}   /* 等价于 1px 1px 1px 1px */
  • 7.4.3 单边外边距属性

若想要控制元素单边上的外边距,使用单边外边距属性。

  • 可以使用任何一个属性来只设置对应的单边外边距,而不会直接影响所有其他外边距:
    margin-top 、margin-right 、margin-bottom 、margin-left

h2 {
  margin-top: 20px;
  margin-right: 30px;
  margin-bottom: 30px;
  margin-left: 20px;  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值