*****CSS 指层叠样式表 (Cascading Style Sheets)定义如何显示控制 HTML 元素,从而实现美化HTML网页。
为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁****
一.CSS基本语法
1.CSS页面引入方法一:嵌入式
通过style标签,在网页上创建嵌入的样式表
代码实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
div {
border: 1px solid red;
width: 700px;
height: 200px
}
</style>
</head>
<body>
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
如图添加了1px的红色实线边框:
2.CSS页面引入方法一:外联式
通过link标签,链接到外部样式表到页面中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--外联式:通过link标签,链接到外部样式表到页面中。-->
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
#main.css文件内容
div {
border: 1px solid red;
width: 700px;
height: 200px
二.常用CSS样式
color 设置文字的颜色,如: color:red;
font-size 设置文字的大小,如:font-size:12px;
font-family 设置文字的字体,如:font-family:‘微软雅黑’;
font-style 设置字体是否倾斜,如:font-style:‘normal’; 设置不倾斜,font-style:‘italic’;设置文字倾斜
font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写:
font:是否加粗 字号/行高 字体;如: font:normal 12px/36px ‘微软雅黑’;
line-height 设置文字的行高,如:line-height:24px;
text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中
css颜色值主要有三种表示方法:
1、颜色名表示,比如:red 红色,gold 金色
2、rgb表示,比如:rgb(255,0,0)表示红色
3、16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00
三.CSS选择器
1.标签选择器
标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中
2.id选择器
通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
/*id选择器的设置样式, #id名称*/
#box{
border: 1px solid blue;
width: 900px;
}
#mybox{
border: 1px solid green;
width: 900px;
}
</style>
</head>
<body>
<!--设置div标签的id信息为“box”-->
<div id="box">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
<div id="mybox">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
3.类选择器
通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.odd{
/*类选择器*/
background-color: lightgray;
}
</style>
</head>
<body>
<table>
<caption id="table-header">表格标签</caption>
<tr>
<td>1-1</td>
<td>1-2</td>
</tr>
<tr class="odd">
<td>1-1</td>
<td>1-2</td>
</tr>
<tr>
<td>1-1</td>
<td>1-2</td>
</tr>
<tr class="odd">
<td>1-1</td>
<td>1-2</td>
</tr>
</table>
</body>
</html>
4.层级选择器
主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.odd span{
color: aqua;
}
.odd li{
color: green;
}
</style>
</head>
<body>
<div class="odd">
<span>这是一个列表</span>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</body>
</html>
可以看到span标签和li标签被设置成了不同的颜色
5.组选择器
多个选择器,如果有同样的样式设置,可以使用组选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box1, .box2, .box3 {
/*
组选择器:(逗号分隔)
多个选择器,如果有同样的样式设置,可以使用组选择器。举例:
*/
width: 100px;
height: 100px;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="box1">
div1
</div>
<div class="box2">
div1
</div>
<div class="box3">
div1
</div>
</body>
</html>
6.伪类及伪元素选择器
常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box1:hover {
font-size: 150%;
}
.box2:before, .box3:before {
/*before: 所有选择的标签前面添加信息*/
content: "行首文字";
}
.box3:after {
/*after: 所有选择的标签后面添加信息*/
content: "行tail文字";
}
</style>
</head>
<body>
<div class="box1">
div1
</div>
<div class="box2">
div1
</div>
<div class="box3">
div1
</div>
</body>
</html>
三.盒子模型
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用.
Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。
用代码实现一个如下所示的盒子模型:
代码实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box{
/*设置内边距25px*/
padding: 50px;
/*设置外边距*/
margin: 40px auto;
/*设置边框宽度25px*/
border: 25px green solid;
/*指定盒子的宽度*/
width: 400px;
/*文本剧中*/
text-align: center;
}
</style>
</head>
<body>
<div class="box">
盒子模型
</div>
</body>
</html>
四.CSS浮动
什么是 CSS Float(浮动)?
CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
元素怎样浮动?
元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。
一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动元素之后的元素将围绕它。
浮动元素之前的元素将不会受到影响。
如果图像是右浮动,下面的文本流将环绕在它左边:
代码实现CSS浮动:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box, img {
width: 126px;
}
.box {
/*指定边框的宽度, 样式, 颜色 */
border: 1px gray solid;
/*让所有的div标签向左浮动, 排列在同一行*/
float: left;
/*设置外边距*/
margin: 5px;
padding-bottom: 10px;
}
.detail {
font-size: 10px;
/*设置内边距为5PX*/
padding: 8px;
height: 20px;
/*内容会被修剪,并且其余内容是不可见的*/
/*overflow: hidden;*/
/*如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。*/
overflow: auto;
}
.clear {
/*指定段落的左侧或右侧不允许浮动的元素:float:right; float:both;*/
clear: left;
}
</style>
</head>
<body>
<div class="box">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
<div class="box">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;
而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
<div class="box">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
<div class="box">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
<div class="box clear">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
<div class="box">
<div class="taobao-image">
<img src="img/timg.jpg">
</div>
<div class="detail">
天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸,灵珠投胎为人,助周伐纣时可堪大用;而魔丸则会诞出魔王,为祸人间。元始天尊启动了天劫咒语,3年后天雷将会降临,摧毁魔丸。
</div>
</div>
</body>
</html>