1.CSS的引入
【1】为什么要学习CSS?
如果只用HEML画页面的话--->这个页面就是页面上需要的元素罗列起来,但是页面效果很差,不好看,为了让页面好看,为了修饰页面。所以我们需要用到CSS。
CSS的作用:修饰HTML页面
有了CSS之后,样式和元素本身做到了分离的效果。---->降低了代码的耦合性
【2】HTML和CSS的关系?
先有HTML,先有页面,修饰页面--->CSS
【3】CSS名字:
CSS:cascading style sheets(层叠样式表)
层叠:样式的叠加
样式表:各种各样样式的集合
2.CSS的三种书写方式
【1】行内样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 书写方式:行内样式 在这个标签中加入一个style属性,CSS的样式作为属性值 多个属性值之间用分号进行拼接 --> <h1 style="color: aqua;font-family: 'Adobe 宋体 Std L'">这是一个h1标题</h1> </body> </html>
【2】内部样式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 书写方式:内部样式: head标签中加入一个style标签,在里面定位到你需要修饰的元素,然后在{}中加入你要修饰的样式。 --> <style> h1{ color: greenyellow; font-family: "Agency FB"; } </style> </head> <body> <h1>这是一个标题</h1> </body> </html>
【3】外部样式:
首先要创建一个css文件,css文件的后缀是.css
然后再创建html页面:
【4】实际开发中三种书写方式用的最多的是:
第三种:外部样式:因为这种方式真正做到了 元素页面和样式分离
【5】三种书写方式他的优先级是什么样子的?
就近原则,行内>内部>外部
3.选择器
3.1基本选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 【1】基本选择器:元素选择器: 通过元素的名字定位,它会获取页面上的所有这个元素,无论藏的多深,都可以获取到 格式: 元素名字{ css格式; } */ h1{ color: red; } /* 【2】基本选择器:类选择器 应用场合:不同类型的标签使用相同的类型 格式: .class的名字{ css样式; } */ .mycls{ color: greenyellow; } /* 【3】基本选择器:id选择器 应用场合:可以定位到一个唯一的元素 不同的标签确实可以使用相同的id,但是我们一般会进行人为的控制,让id可以唯一定位到一个元素 格式: #id的名字{ css样式; } */ #myid{ color: yellow; } </style> </head> <body> <h1>标题</h1> <h1 class="mycls">标题</h1> <h1 id="myid">标题</h1> <h1>标题</h1> <h2 class="mycls">h2标题</h2> </body> </html>
优先级别:
不用记,自己试一下就行
id选择器>class选择器>元素选择器
3.2关系选择器
div和span 结合css用于页面的布局。div+css用于页面布局。
【2】关系选择器:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 关系选择器: 后代选择器:只要是这个元素的后代,样式都会发生变化 div下面所有h1标签样式都会改变 */ /*div h1{ color: red; }*/ /* 关系选择器: 子代选择器: 只改变子标签的样式 */ div>h1{ color: red; } span>h1{ color: red; } </style> </head> <body> <div> <h1>这是一个标题</h1> <h1>这是一个标题</h1> <h1>这是一个标题</h1> <span> <h1>这是一个标题</h1> <h1>这是一个标题</h1> </span> </div> </body> </html>
3.3属性选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 属性选择器: */ input[type="text"]{ background-color: red; } </style> </head> <body> <form> 用户名:<input type="text"> 密 码:<input type="password"> <input type="submit" value="登录"> </form> </body> </html>
3.4伪类选择器
伪类选择器 向某些选择器添加特殊效果。
一般伪类选择器都用在超链接上:
3.5练习:百度导航栏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> ul{ list-style-type:none;/*将无序列表前的图标取消*/ } li{ float: left;/*向左浮动*/ margin-left: 30px;/*设置间隔30px*/ } a{ text-decoration: none;/*去掉下划线*/ font-size: 14px;/*字号*/ color: black;/*字体颜色*/ } a:hover{ color: blue; } </style> </head> <body> <ul> <li> <a href="aaaa">新闻</a> </li> <li> <a href="aaaa">hao123</a> </li> <li> <a href="aaaa">地图</a> </li> <li> <a href="aaaa">视频</a> </li> </ul> </body> </html>
4.浮动
【2】利用代码加深浮动的印象
效果:(没有浮动效果)
先给绿色div加上浮动:
代码:
效果:
再给橙色div添加浮动:
效果:
最后再给黄色div添加浮动:
效果:底下的div,因为没有东西填充,没有东西支撑,也没有定义宽和高,所以缩没了。
【3】消除浮动影响:
方式1:
给浮动的父节点加入一个属性:overflow:hidden
方式2:
给父节点加一个高度,让粉色div有个撑起来的效果
方式3:
操作被影响的元素,给它加入一个属性:
5.定位
5.1如何定位
5.2静态定位(static)
5.3相对定位 (relative)
<div style="width: 100px;height: 100px;background-color: red;position: relative;bottom: 10px;right: 20px"></div>
相对定位的应用场合:
(1)元素在小范围移动的时候
(2)结合结对定位使用
再说一个属性:z-index
设置堆叠顺序,设置元素谁在上谁在下。
注意:z-index属性要设置在定位的元素上
5.4绝对定位 (absolute)
代码:
效果:
暂时来说看到的效果:蓝色div相对body产生的位移,相对body进行位置的改变,然后蓝色div发生位移以后,原位置得到了释放。橙色div移动上去了。
实际开发中,我们往往让蓝色div在粉丝div中发生位移效果:
配合定位来使用:
效果:
总结:
当给一个元素设置了绝对定位的时候,它相对谁变化呢?它会向上一层一层的找父级节点是否有定位,如果直到找到body了也没有定位,那么就相对body进行变换,如果父级节点有定位,这个定位可以是绝对定位,相对定位,固定定位,但是一般我们会配合使用父级为相对定位,当前元素为绝对定位,这样这个元素就会相对父级位置产生。无论是上面的哪一种,都会释放原来的位置,其他元素会占用这个位置。开发中建议使用父级节点relative定位,子级使用绝对定位。
5.5固定定位 (fixed)
应用场合:在页面过长的时候,将某个元素固定在浏览器的某个位置上,当拉动滚动条的时候,这个元素位置不动。
代码:
6.盒子模型
6.1生活案例入手
蛋糕距离装蛋糕的盒子的上下左右是多大,盒子距离周围物体的上下左右又是多大,这是整个蛋糕所占的区域,那么这个蓝色区域我们可以理解为一个盒子模型。
页面上也有很多元素,元素之间的布局依靠盒子模型:
6.2盒子模型代码演示
写代码感受盒子模型:
效果:
6.3盒子模型练习题
实现效果: