CSS的使用
- CSS与html结合使用 根据定义CSS的位置不同,分为行内样式、内部样式和外部样式
行内样式
- 也称为内联样式 直接在标签中编写样式,通过使用标签内部的style属性;弊端:只能对当前的标签生效,没有做到内容和样式相分离,耦合度太高。
语法:
<html标签 style="样式1:值1;样式2:值2;....样式N:值N;">hello my css</html标签> 案例:
<div style="color: red;">hello my css</div>
内部样式
- 定义在head标签内,通过style标签,该标签内容就是CSS代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>内部样式</title>
<style>
div{
color: red;
}
</style>
</head>
<body>
<div>hello my css</div>
</body>
</html>
外部样式
- 提前定义css资源文件,在head标签内,定义link标签引入外部样式文件
lina.css文件,放在与html页面同级的css文件夹中:
div {
color: red;
}
html页面中的引入
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>外部样式</title>
<link rel="stylesheet" href="css/lina.css" />
</head>
<body>
<div>hello my css</div>
</body>
</html>
区别
- 作用域的范围:外部样式表>内部样式表>行内样式表
- 优先级:外部样式表<内部样式表<行内样式表;
- 同样的样式作用在同一个标签身上:就近原则。
- 不同样式作用在同一个标签身上,叠加生效。
CSS语法
基本格式由两个主要的部分构成:
- 选择器
- 一条或多条声明
选择器 {
属性1:值1;
属性2:值2;
...
}
选择器:筛选具有相似特征的元素 属性和属性值之间用冒号分割,不同的属性之间用分号隔开。
基本选择器
1. id选择器
- 选择具有相同id属性值的元素,建议html页面中的id值唯一
- id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。 HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。 PS: ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
虽然多个元素可以使用同一个id选择器控制样式,但是不推荐。如果需要同样的样式对多个标签生效, 使用class选择器。
class选择器
- 选择具有相同的class属性值的元素。
class 选择器用于描述一组元素的样式,class 选择器有别于id选择器。 class可以在多个元素中使用。 class 选择器在HTML中以class属性表示, 在 CSS 中,类选择器以一个点"."号显示
元素选择器/标签选择器
-
选择具有相同标签名称的元素。
定义选择器语法:标签名称{};PS:标签名称必须是html提供好的标签。
使用标签选择器:自动使用在所有的同名的标签上
优先级
- 选择器的优先级 ID选择器 > 类选择器 > 标签选择器 当多个选择器作用在同一个标签上的时候,如果属性冲突,看优先级;如果不冲突,样式叠加生效
- 样式表的优先级 行内样式 > 内部样式 >外部样式
- 同样,三个样式表中都有内容作用在同一个html标签的时候,如果属性冲突,看优先级;如果不冲突, 样式叠加生效
width height:宽高
- PS:只有块状元素可以设置宽高,行级元素设置不生效
- 取值方式有2种: 数值 绝对数字 单位是像素PX 百分比:占据父元素的比例
背景样式
文本样式
列表样式
边框样式
HTML&CSS调试利器
- 以谷歌浏览器为例说明。 快捷键F12或者工具条中的开发者工具调出以下内容。 在elements中可以看到当前页面的所有标签,在styles中可以看到html元素对应的样式。
盒子模型
概念
- 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素
盒子模型说明图
模型例子
盒子的宽度和高度
元素的实际宽度和高度: 当我们计算一个元素实际在页面占有的总宽度计算公式是这样的:
> 总元素宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
> 元素的总高度最终计算公式是这样的: 总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
如果想要设置的宽度直接就是元素的实际宽度,通过box-sizing 属性
其他常用样式
- float 浮动
CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
后代选择器
交集选择器
条件:交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点。
语法:h3.class{ color:red; }
其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,例如div.list。
交集选择器是并且的意思。 即…又…的意思
例如: table.bg 选择的是: 类名为 .bg 的 表格标签,但用的相对来说比较少。
后代选择器
概念 后代选择器又称为包含选择器。
作用 用来选择元素或元素组的子孙后代
其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔,先写父亲爷爷,再写儿子孙子。
格式:
父级 子级{属性:属性值;属性:属性值;}
语法:.class h3{color:red;font-size:16px;}
当标签发生嵌套时,内层标签就成为外层标签的后代。 子孙后代都可以这么选择。 或者说,它能选择任何包含在内 的标签。
子元素选择器
作用:子元素选择器只能选择作为某元素子元素(亲儿子)的元素。 其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接。
语法:.class>h3{color:red;font-size:14px;}
比如:
.demo > h3 {color: red;}
说明 h3 一定是demo 亲儿子。 demo 元素包含着h3
选择器实现代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>复合选择器</title>
<style>
/*全局选择器: 一般去掉标签的一些默认效果的时候使用,或者整站通用效果时使用。但是不推荐*/
*{
color: #333;/*定义全局文字颜色,统一色彩基调*/
}
/*并集选择器:通常用于集体声明
替换全局选择器;
*/
div,p,dldt,dd{
/*去掉浏览器的默认样式*/
margin: 0;
padding: 0;
color: #333;/*定义全局文字颜色,统一色彩基调*/
}
/*交集选择器*/
li.myli{
color: red;
}
/*后代选择器*/
ul li{
font-size: 28px;
}
.myUL li{
font-family: "微软雅黑";
}
.myUL li a{
text-decoration: line-through;
}
/*子元素选择器*/
.demo>h3{
color: red;
}
</style>
</head>
<body>
<ul>
<li>li11111111111</li>
<li class="myli">li22222222222</li>
<li>li33333333333</li>
<li>li44444444444<a href="">点击我试试</a></li> <li class="myUL">
<ul>
<li>li11111111111</li>
<li class="myli">li22222222222</li>
<li>li33333333333</li>
<li>li44444444444
<a href="">点击我试试</a>
</li>
</ul>
</li>
</ul>
<ol>
<li>li11111111111</li>
<li>li22222222222</li>
<li>li33333333333</li>
<li>li44444444444</li>
</ol>
<div class="demo">
div1
<h3>静夜思</h3>
<ul>
<li><h3>静夜思----li</h3></li>
</ul>
</div>
</body>
</html>