CSS入门学习笔记
一、CSS简介
1、什么是CSS?
2、为什么使用CSS?
3、CSS的作用
二、CSS语法
1、CSS基础语法
2、CSS注释语法
3、CSS应用方法
三、CSS选择器
1、元素选择器
2、类选择器
3、ID选择器
4、组合选择器
5、后代选择器
6、子元素选择器
7、兄弟选择器
8、全局选择器
9、伪类选择器
10、选择器优先级
四、CSS常用属性
1、字体属性
2、文本属性
3、列表属性
4、表格属性
5、背景属性
6、对齐方式
7、盒子模型
五、CSS定位
1、`static`定位
2、`fixed` 定位
3、`relative` 定位
4、`absolute` 定位
5、`sticky` 定位
6、重叠的元素
六、CSS浮动
1、什么是 CSS Float(浮动)?
2、元素怎样浮动
3、彼此相邻的浮动元素
4、清除浮动 - 使用 clear
七、CSS网页布局
1、网页布局
2、头部区域
3、菜单导航区域
4、内容区域
5、底部区域
6、响应式网页布局

一、CSS简介

1、什么是CSS?

  • CSS 指的是层叠样式表 (Cascading Style Sheets)
  • CSS 描述了如何在屏幕、纸张或其他媒体上显示 HTML 元素

2、为什么使用CSS?

  • 层叠样式复用,便于后期维护和修改
  • 可控制内容与样式的布局,让页面更精美

3、CSS的作用

  • 对网页的布局、颜色、背景、宽度、高度、字体进行控制
  • 用于布局和定位,设置页面的外观样式,让页面更精美

二、CSS语法

1、CSS基础语法

CSS由选择器和声明块组成:

h1.class1 {
text-align: center;
color: red;
}

  • 语法如下:

<head>
<style>
选择器{
属性名:属性值;
属性名:属性值;
}
</style>
</head>

  • 实例:所有<p>元素都将居中对齐,并带有红色文本颜色:

<head>
<style>
p {
color: red;
text-align: center;
}
</style>
</head>

  • color 是属性,red 是属性值
  • text-align 是属性,center是属性值
  • p 是 CSS 中的选择器(它指向要设置样式的 HTML 元素:<p>

2、CSS注释语法

CSS注释:/* 注释内容 */

  • 实例:

/* body定义 */
body{ text-align:center; margin:0 auto;}

  • CSS注释:对代码进行解释说明,便于后期维护和修改

3、CSS应用方法

    • 内嵌样式:
      在页面头部通过style标签定义,对当前页面中所有符合样式选择器的标签都起作用

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS语法</title>
<style>
p{
font-size:12px; /*字号*/
color:blue; /*文字颜色*/
font-weight:bold; /*加粗*/
}
</style>
</head>
<body>
<p>天使投资指早期投资,尤其指个人早期投资。</p>
<p>VC,Venture Capital,所谓风险投资、创业投资,是相对靠前的非公开市场股权投资。</p>
<p>PE, Private Equity,所谓私募资本、非公开市场资本,既是私募股权投资的统称,又特指相对靠后的股权投资。</p>
</body>
</html>

    • 行内样式:
      在HTML标签内定义style属性,只对设置style属性的标签起作用

<!DOCTYPE HTML>
<html>

<head>
<meta charset="UTF-8">
<title>行内样式</title>
</head>

<body>
<!-- 行内样式,仅对当前p元素起作用 -->
<p style="font-size:12px;color:blue;font-weight:bold;">
天使投资指早期投资,尤其指个人早期投资。
</p>
<!--下面p元素不受影响 -->
<p>VC,Venture Capital,所谓风险投资、创业投资,是相对靠前的非公开市场股权投资。</p>
</body>

</html>

    • 外部样式
      单独定义一个.CSS 文件,然后在页面中使用 link标签 或 @import指令 导入html文件里面
    • 使用link标签 链接外部样式

<link rel="stylesheet" href="CSS文件路径" type="text/css" />

  • 使用@import 指令 导入外部样式

<style>
@import "CSS文件路径";
@import url(CSS文件路径);
</style>

三、CSS选择器

1、元素选择器

  • 使用HTML标签作为选择器的名称,也称为标签选择器

<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
p {
font-size: 16px;
color: red;
}

h1 {
font-size: 20px;
color: blue;
}
</style>
</head>

<body>
<h1>标题</h1>
<p>正文的段落</p>
</body>

</html>

2、类选择器

  • 使用自定义的名称,以 号作为前缀,通过HTML标签的class属性调用类选择器

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.big {
font-size: 40px;
}
.color {
color: blue;
}
</style>
</head>

<body>
<p class="big">HTML</p>
<p>超文本标记语言</p>
<p class="big color">CSS</p>
<p>层叠样式表</p>
</body>

</html>

  • 类选择器名称不能以 数字 开头
  • 调用时不能添加.
  • 同时调用多个类选择器时,以 空格 分隔

3、ID选择器

  • 使用自定义名称,以#作为前缀,通过HTML标签的id属性进行名称匹配

<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>id选择器</title>
<style type="text/css">
#center {
text-align: center;
}
#left {
text-align: left;
}
</style>
</head>

<body>
<div id="center">
<p>前端技术构成</p>
</div>
<div id="left">
<p>前端技术构成</p>
</div>
</body>

</html>

4、组合选择器

  • 将多个具有相同样式的选择器放在一起声明,使用逗号隔开
  • 注意:使用空格时不区分父子还是后代,使用CSS3中新增的 > 时必须是父子关系

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>派生选择器</title>
<style type="text/css">
h1,p {
color: blue;
}
</style>
</head>
<body>
<h1>Web前端技术</h1>
<p>HTML</p>
<p>CSS</p>
</body>
</html>

5、后代选择器

  • 在某个选择器内部再设置选择器,通过空格隔开
  • 下面为实例,当p和strong嵌套使用时起样式效果

<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>后代选择器</title>
<style>
p strong {
color: blue;
}
</style>
</head>

<body>
<!-- “天使投资”蓝色显示 -->
<p><strong>天使投资</strong>是投资方式的一种</p>
<!-- “投资”蓝色显示 -->
<p><em>天使<strong>投资</strong></em>是投资方式的一种</p>
<em>em是定义强调文本的标签</em>
<!-- em 斜体强调 -->
</body>

</html>

6、子元素选择器

  • 注意:使用CSS3中新增的 > 时必须是父子关系
  • 下面为实例,p的直接子元素strong被设置

<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>子元素选择器</title>
<style>
/*子元素选择器:p的直接子元素strong被设置*/
p>strong {
color: blue;
}
</style>
</head>

<body>
<!-- “天使投资”蓝色显示 -->
<p><strong>天使投资</strong>是投资方式的一种</p>
<!-- “投资”黑色显示 -->
<p><em>天使<strong>投资</strong></em>是投资方式的一种</p>
</body>

</html>

7、兄弟选择器

  • 元素1+元素2
  • 下面为实例,当h2p标签一起使用时 起样式效果

<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
h2+p {
font-weight: bold;
}
</style>
</head>

<body>
<article>
<h1>Web前端开发</h1>
<h2>HTML</h2>

<p>超文本标记语言</p> <!-- 粗体显示 -->
<p>用于构建网页结构,添加页面内容。</p>
<h2>CSS</h2>
<p>层叠样式表</p><!-- 粗体显示 -->
<p>用于构建网页样式,美化页面。</p>
<h2>JS</h2>
<p>Javascript</p><!-- 粗体显示 -->
<!-- 当h2和p标签一起使用时 起样式效果 -->
<p> 用于构建网页行为,使用户获得更好的体验。</p>
</article>
</body>

</html>

8、全局选择器

  • 当以*作为选择器,对全局标签都起样式效果

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style type="text/css">
* {
color:dodgerblue
}
</style>
</head>
<body>
<h1>前端技术构成</h1>
<p>HTML</p>
<p>CSS</p>
</body>
</html>

9、伪类选择器

  • 根据不同的状态显示不同的样式,常用于标签
状态 说明
:link 选择所有未访问的链接
:visited 选择所有已访问的链接
:hover 把鼠标放在链接上的状态
:active 选择正在活动链接

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>伪类选择器</title>
<style>
a:link,a:visited{
color:#d82727;
font-size: 13px;
text-decoration: none;
}
a:hover,a:active{
color:#ff7300;
text-decoration: underline;
}
/*普通的标签也可以使用伪类选择器*/
p:hover{
color:red;
}
p:active{
color:blue;
}
</style>
</head>
<body>
<a href="伪类选择器.html">伪类选择器.html</a>
<p>CSS从入门到精通!</p>
</body>
</html>

10、选择器优先级

1、行内样式 > ID选择器 > 类选择器 > 标签选择器
2、同一优先级时,后加载的会覆盖先加载的同名样式,所以离的越近
越优先
3、可以用 !important 定义最高优先级

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
.p1{
color:blue;/*<span style="font-family:";">1</span>没加important 显示为红色 */
}

.p2{
color:blue;
color:red!important;/*2加上了important属性优先级高 显示为红色 */
}
</style>

</head>
<body>
<p class="p1">1没加important</p>
<p class="p2">2加了important属性</p>
</body>
</html>

四、CSS常用属性

1、字体属性

属性 作用
font-size 设置文本的大小
font-weight 设置文本的粗细
font-family 设置文本的字体
font-style 指定文本的字体样式
font 在一个声明中设置所有的字体属性

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div{
font-size: 30px;
}
p{
/*font-size: 20px;*/
font-size: 80%;
}
.hello{
font-size: 2em;
}
body{
font-size: 62.5%;
}
ul li{
/*font-size: 30px;
font-weight: bold;
font-family: 华文行楷,宋体,黑体;
font-style: italic;*/
font: italic bold 30px 微软雅黑;
}
</style>
</head>
<body>
<p>
CSS从入门到精通
<span>CSS笔记</span>
</p>
<span>CSS笔记</span>
<hr>

<div>
我的DIV
<p>
CSS从入门到精通
<span>CSS笔记</span>
</p>
</div>
<hr>

<span class="hello">CSS笔记</span>
<hr>

<ul>
<li>
前端笔记
</li>
</ul>
</body>
</html>

2、文本属性

属性 作用

作用
color 设置文本颜色
direction  设置文本方向
letter-spacing  设置字符间距
line-height  设置行高
text-align  对齐元素中的文本
text-decoration  向文本添加修饰
text-indent 缩进元素中文本的首行
white-space  设置元素中空白的处理方式
word-spacing  设置字间距

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
p{
color: red;
/*background-color: #ccc;*/
/*background-color: rgba(0,255,0,0.5);*/
background-color: rgba(197, 15, 234, 0.5);
line-height: 50px;
text-align: center;
}
img{
vertical-align: middle;
}
div{
text-indent: 30px;
}
span{
font-size: 30px;
text-decoration: underline;
text-transform: capitalize;
letter-spacing: 10px;
world-spacing:;
}
h3{
width: 300px;
height: 200px;
background-color:#ccc;
white-space: nowrap;
overflow:hidden;
}
</style>
</head>
<body>
<p>welcome to css!</p>
<p>welcome to css!</p>
<p>welcome to css!</p>
<hr>

<img src="css.png" alt="" width="15%">
HTML和CSS笔记
<hr>

<div>&nbsp;&nbsp;这里是web前端开发课程的课程网站,这个网站主要包括课程的视频、幻灯片、源代码以及一些练习与练习答案。</div>
<hr>
<div>这里是web前端开发课程的课程网站,这个网站主要包括课程的视频、幻灯片、源代码以及一些练习与练习答案。</div>
<hr>

<span>hello world</span>
<hr>

<h3>这里是web前端开发课程的课程网站,这个网站主要包括课程的视频、幻灯片、源代码以及一些练习与练习答案。</h3>
<hr>
</body>
</html>

3、列表属性

属性 作用
list-style-type 设置列表项标志的类型
list-style-image 将图像设置为列表项标志
list-style-position 设置列表中列表项标志的位置
list-style 简写

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style type="text/css">
#othernews {
text-align:left;
font-size:14px;
line-height:1.5em;
list-style-image:url(images/bullet1.gif);
}
a:link {
color: #09f;/*浅蓝*/
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #930;/*红*/
}
a:hover {
text-decoration: underline;
color: #03c;/*深蓝*/
}
a:active {
text-decoration: none;
color: #03c;/*深蓝*/
}
</style>
</head>

<body>
<div id = "othernews">
相关阅读:
<ul>
<li><a href="#" >迪拜华商财富缩水 瞻望前景信心犹豫</a></li>
<li><a href="#" >全球华商总资产恢复增至3.9万亿美元</a></li>
<li><a href="#" >华商基金胡宇权:行业不平衡将带来投资机会</a></li>
</ul>
</div>
</body>
</html>

4、表格属性

  • border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开
  • Width和height属性定义表格的宽度和高度
  • text-align属性设置水平对齐方式,向左,右,或中心

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body {
font: 14px/2em "宋体";
}

table {
width: 300px;
margin: 0 auto;
/*表格在article里面居中*/
border-collapse: collapse;
/*表格边框重合*/
font-size: 12px;
border: 1px solid;
}

caption {
letter-spacing: 3px;
/*表格标题字符间距*/
}

tbody tr:nth-child(odd) {

/*表格主体的奇数行背景为浅蓝色*/
background-color: lightblue;
}

td,
th {
/* border: 1px solid; */
text-align: center;
}
</style>
</head>

<body>
<table>
<!-- 表格开始 -->
<caption>名词解释</caption> <!-- 标题 -->
<thead>
<!-- 表头 -->

<tr>
<!-- 行 -->
<th> 名词 </th> <!-- 表头单元格 -->
<th> 解释 </th>
</tr>
</thead>
<tbody>
<!-- 表体 -->
<tr>
<!-- 第一行 -->
<td>HTML</td> <!-- 数据单元格 -->
<td>HyperText Markup Language超文本标记语言</td>

</tr>
<tr>
<!-- 第二行 -->
<td>CSS</td>
<td>Cascading Style Sheets层叠样式表</td>
</tr>
<tr>
<!-- 第三行 -->
<td>JS</td>
<td>JavaScript语言</td>
</tr>
</tbody>
</table>

</body>

</html>

5、背景属性

属性

作用
background 简写
background-attachment  背景图像是否固定或者随着页面的其余部分滚动
background-color  设置元素的背景颜色
background-image  把图像设置为背景
background-position 设置背景图像的起始位置
background-repeat  设置背景图像是否及如何重复
  • index.css文件

body{
background-color: #E0E0E0;
}
h1{
background-color: #33CC66;
}
p{
background-color: #FFFFFF;
}

  • html文件

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>CSS学习</title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<h1>Web前端开发</h1>
<p>段落背景为白色</p>
<p>段落背景为白色</p>
<p>段落背景为白色</p>
</body>
</html>

6、对齐方式

1、text-align——文本对齐

  • 规定元素中的文本的水平对齐方式
属性值 描述
left 默认值,文本排列到左边
right 文本排列到右边
center 文本排列到中间
justify 文本两端对齐

实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS</title>
<style>
.center {
text-align: center;
border: 3px solid green;
}
</style>
</head>
<body>

<h2>文本居中对齐</h2>

<div class="center">
<p>文本居中对齐。</p>
</div>

</body>

2、margin: auto; —— 元素居中对齐

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS</title>
<style>
.center {
margin: auto;
width: 60%;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>

<h2>元素居中对齐</h2>
<p>水平居中块级元素 (如 div), 可以使用 margin: auto;</p>

<div class="center">
<p><b>注意: </b>使用 margin:auto 无法兼容 IE8, 除非 !DOCTYPE 已经声明。</p>
</div>

</body>
</html>

3、position —— 左右对齐

<!DOCTYPE html>
<html>
<head>
<style>
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>

<h2>右对齐</h2>
<p>以下实例演示了如何使用 position 来实现右对齐:</p>

<div class="right">
<p>菜鸟教程 -- 学的不仅是技术,更是梦想!!</p>
</div>

</body>
</html>

4、float——左右对齐

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS</title>
<style>
.right {
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>

<h2>右对齐</h2>
<p>以下实例演示了使用 float 属性来实现右对齐:</p>

<div class="right">
<p>我老爹在小时候给我的一些人生建议,我现在还记忆深刻。</p>
</div>

</body>
</html>

7、盒子模型
盒子模型是网页布局的基础,将页面中所有元素都看作是一个盒子,盒子都包含以下几个属性:

width 宽度
height 高度
border 边框——围绕在内边距和内容外的边框
padding 内边距——清除内容周围的区域,内边距是透明的
margin 外边距——清除边框外的区域,外边距是透明的
content 内容——盒子的内容,显示文本和图像

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS入门</title>
<style>
div {
background-color: lightgrey;
width: 300px;
border: 25px solid green;
padding: 25px;
margin: 25px;
}
</style>
</head>
<body>

<h2>盒子模型演示</h2>

<p>CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。</p>

<div>这里是盒子内的实际内容。有 25px 内间距,25px 外间距、25px 绿色边框。</div>

</body>
</html>

五、CSS定位

position 属性指定了元素的定位类型。
position 属性的五个值:

    • static
    • relative
    • fixed
    • absolute
    • sticky
      元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。

1、static定位

  • HTML 元素的默认值,即没有定位,遵循正常的文档流对象
  • 静态定位的元素不会受到 top, bottom, left, right影响

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
<style>
div.static {
position: static;
border: 3px solid #73AD21;
}
</style>
</head>
<body>

<h2>position: static;</h2>

<p>使用 position: static; 定位的元素,无特殊定位,遵循正常的文档流对象:</p>

<div class="static">
该元素使用了 position: static;
</div>

2、fixed 定位

  • 元素的位置相对于浏览器窗口是固定位置
  • 即使窗口是滚动的它也不会移动:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
<style>
p.pos_fixed
{
position:fixed;
top:30px;
right:5px;
}
</style>
</head>
<body>

<p class="pos_fixed">Some more text</p>
<p><b>注意:</b> IE7 和 IE8 支持只有一个 !DOCTYPE 指定固定值.</p>
<p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p>
</body>
</html>

3、relative 定位

  • 相对定位元素的定位是相对其正常位置

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css教程</title>
<style>
h2.pos_left
{
position:relative;
left:-20px;
}

h2.pos_right
{
position:relative;
left:20px;
}
</style>
</head>

<body>
<h2>这是位于正常位置的标题</h2>
<h2 class="pos_left">这个标题相对于其正常位置向左移动</h2>
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
<p>相对定位会按照元素的原始位置对该元素进行移动。</p>
<p>样式 "left:-20px" 从元素的原始左侧位置减去 20 像素。</p>
<p>样式 "left:20px" 向元素的原始左侧位置增加 20 像素。</p>
</body>

</html>

  • 移动相对定位元素,但它原本所占的空间不会改变。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css教程</title>
<style>
h2.pos_top
{
position:relative;
top:-50px;
}
</style>
</head>

<body>
<h2>这是一个没有定位的标题</h2>
<h2 class="pos_top">这个标题是根据其正常位置向上移动</h2>
<p><b>注意:</b> 即使相对定位元素的内容是移动,预留空间的元素仍保存在正常流动。</p>
</body>

</html>

4、absolute 定位

  • 绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css教程</title>
<style>
h2
{
position:absolute;
left:100px;
top:150px;
}
</style>
</head>

<body>
<h2>这是一个绝对定位了的标题</h2>
<p>用绝对定位,一个元素可以放在页面上的任何位置。标题下面放置距离左边的页面100 px和距离页面的顶部150 px的元素。.</p>
</body>

</html>

5、sticky 定位

  • sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位
  • position: sticky; 基于用户的滚动位置来定位
  • 粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换
  • 它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置
  • 元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位
  • 这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS教程</title>
<style>
div.sticky {
position: -webkit-sticky;
position: sticky;
top: 0;
padding: 5px;
background-color: #cae8ca;
border: 2px solid #4CAF50;
}
</style>
</head>
<body>

<p>尝试滚动页面。</p>
<p>注意: IE/Edge 15 及更早 IE 版本不支持 sticky 属性。</p>

<div class="sticky">我是粘性定位!</div>

<div style="padding-bottom:2000px">
<p>滚动我</p>
<p>来回滚动我</p>
<p>滚动我</p>
<p>来回滚动我</p>
<p>滚动我</p>
<p>来回滚动我</p>
</div>

</body>
</html>

6、重叠的元素

  • 元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素
  • z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)
  • 一个元素可以有正数或负数的堆叠顺序:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS教程</title>
<style>
img
{
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
</style>
</head>

<body>
<h1>This is a heading</h1>
<img src="w3css.gif" width="100" height="140" />
<p>因为图像元素设置了 z-index 属性值为 -1, 所以它会显示在文字之后。</p>
</body>
</html>

六、CSS浮动

1、什么是 CSS Float(浮动)?

  • CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列
  • Float(浮动),往往是用于图像,但它在布局时一样非常有用

2、元素怎样浮动

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。

一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

浮动元素之后的元素将围绕它。

浮动元素之前的元素将不会受到影响。

如果图像是右浮动,下面的文本流将环绕在它左边:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS教程</title>
<style>
img
{
float:right;
}
</style>
</head>

<body>
<p>在下面的段落中,我们添加了一个 <b>float:right</b> 的图片。导致图片将会浮动在段落的右边。</p>
<p>
<img src="logocss.gif" width="95" height="84" />
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
这是一些文本。这是一些文本。这是一些文本。
</p>
</body>

</html>

3、彼此相邻的浮动元素

如果你把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。

在这里,我们对图片廊使用 float 属性:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS教程</title>
<style>
.thumbnail
{
float:left;
width:110px;
height:90px;
margin:5px;
}
</style>
</head>

<body>
<h3>图片库</h3>
<p>试着调整窗口,看看当图片没有足够的空间会发生什么。</p>
<img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90">
<img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80">
<img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90">
<img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90">
<img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90">
<img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80">
<img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90">
<img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90">
</body>
</html>

4、清除浮动 - 使用 clear

元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。

clear 属性指定元素两侧不能出现浮动元素。

使用 clear 属性往文本中添加图片廊:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS教程</title>
<style>
.thumbnail
{
float:left;
width:110px;
height:90px;
margin:5px;
}
.text_line
{
clear:both;
margin-bottom:2px;
}
</style>
</head>

<body>
<h3>图片库</h3>
<p>试着调整窗口,看看当图片没有足够的空间会发生什么。.</p>
<img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90">
<img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80">
<img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90">
<img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90">
<h3 class="text_line">第二行</h3>
<img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90">
<img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80">
<img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90">
<img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90">
</body>
</html>

七、CSS网页布局

1、网页布局

  • 网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域。
头部区域
 菜单导航区域
内容区域 容区域 容区域
底部区域

2、头部区域

  • 头部区域位于整个网页的顶部,一般用于设置网页的标题或者网页的 logo:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 网页布局 </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0;
}

/* 头部样式 */
.header {
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>

<div class="header">
<h1>头部区域</h1>
</div>

</body>
</html>

3、菜单导航区域

  • 菜单导航条包含了一些链接,可以引导用户浏览其他页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 网页布局 </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}

body {
margin: 0;
}

/* 头部样式 */
.header {
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}

/* 导航条 */
.topnav {
overflow: hidden;
background-color: #333;
}

/* 导航链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

/* 链接 - 修改颜色 */
.topnav a:hover {
background-color: #ddd;
color: black;
}
</style>
</head>
<body>

<div class="header">
<h1>头部区域</h1>
</div>

<div class="topnav">
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#">链接</a>
</div>

</body>
</html>

4、内容区域

  • 1 列:一般用于移动端
  • 2 列:一般用于平板设备
  • 3 列:一般用于 PC 桌面设备

我们将创建一个 3 列布局,在小的屏幕上将会变成 1 列布局(响应式):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 网页布局 </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}

body {
margin: 0;
}

/* 头部样式 */
.header {
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}

/* 导航条 */
.topnav {
overflow: hidden;
background-color: #333;
}

/* 导航链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

/* 链接 - 修改颜色 */
.topnav a:hover {
background-color: #ddd;
color: black;
}

/* 创建三个相等的列 */
.column {
float: left;
width: 33.33%;
}

/* 列后清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}

/* 响应式布局 - 小于 600 px 时改为上下布局 */
@media screen and (max-width: 600px) {
.column {
width: 100%;
}
}
</style>
</head>
<body>

<div class="header">
<h1>头部区域</h1>
<p>重置浏览器大小查看效果。</p>
</div>

<div class="topnav">
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#">链接</a>
</div>

<div class="row">
<div class="column">
<h2>第一列</h2>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!</p>
</div>

<div class="column">
<h2>第二列</h2>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!</div>

<div class="column">
<h2>第三列</h2>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!</div>
</div>

</body>
</html>

5、底部区域

  • 底部区域在网页的最下方,一般包含版权信息和联系方式等

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 网页布局 </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}

body {
margin: 0;
}

/* 头部样式 */
.header {
background-color: #f1f1f1;
padding: 20px;
text-align: center;
}

/* 导航条 */
.topnav {
overflow: hidden;
background-color: #333;
}

/* 导航链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

/* 链接 - 修改颜色 */
.topnav a:hover {
background-color: #ddd;
color: black;
}

/* 创建三个相等的列 */
.column {
float: left;
padding: 10px;
}

/* 左右两侧宽度 */
.column.side {
width: 25%;
}

/* 中间区域宽度 */
.column.middle {
width: 50%;
}

/* 列后面清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}

/* 响应式布局 - 宽度小于600px时设置上下布局 */
@media screen and (max-width: 600px) {
.column.side, .column.middle {
width: 100%;
}
}

/* 底部样式 */
.footer {
background-color: #f1f1f1;
padding: 10px;
text-align: center;
}
</style>
</head>
<body>

<div class="header">
<h1>头部区域</h1>
<p>重置浏览器大小查看效果。</p>
</div>

<div class="topnav">
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#">链接</a>
</div>

<div class="row">
<div class="column side">
<h2>左侧栏</h2>
<p>学的不仅是技术,更是梦想!</p>
</div>

<div class="column middle">
<h2>主区域内容</h2>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!</p>
</div>

<div class="column side">
<h2>右侧栏</h2>
<p>的不仅是技术,更是梦想!</p>
</div>
</div>

<div class="footer">
<p>底部区域</p>
</div>

</body>
</html>

---------下面是-------

CSS网响应式网页布局代码演示图

---------如下图所示------

 

CSS图片演示代码如下:响应式网页布局

-------------------------下列代码可复制粘贴运行-------------------

6、响应式网页布局

通过以上等学习我们来创建一个响应式等页面,页面的布局会根据屏幕的大小来调整:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS 网页布局</title>
<style>
* {
box-sizing: border-box;
}

body {
font-family: Arial;
padding: 10px;
background: #f1f1f1;
}

/* 头部标题 */
.header {
padding: 30px;
text-align: center;
background: white;
}

.header h1 {
font-size: 50px;
}

/* 导航条 */
.topnav {
overflow: hidden;
background-color: #333;
}

/* 导航条链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

/* 链接颜色修改 */
.topnav a:hover {
background-color: #ddd;
color: black;
}

/* 创建两列 */
/* Left column */
.leftcolumn {
float: left;
width: 75%;
}

/* 右侧栏 */
.rightcolumn {
float: left;
width: 25%;
background-color: #f1f1f1;
padding-left: 20px;
}

/* 图像部分 */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}

/* 文章卡片效果 */
.card {
background-color: white;
padding: 20px;
margin-top: 20px;
}

/* 列后面清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}

/* 底部 */
.footer {
padding: 20px;
text-align: center;
background: #ddd;
margin-top: 20px;
}

/* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
@media screen and (max-width: 800px) {
.leftcolumn, .rightcolumn {
width: 100%;
padding: 0;
}
}

/* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */
@media screen and (max-width: 400px) {
.topnav a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>

<div class="header">
<h1>我的网页</h1>
<p>重置浏览器大小查看效果。</p>
</div>

<div class="topnav">
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#" style="float:right">链接</a>
</div>

<div class="row">
<div class="leftcolumn">
<div class="card">
<h2>文章标题</h2>
<h5>2019 年 4 月 17日</h5>
<div class="fakeimg" style="height:200px;">图片</div>
<p>一些文本...</p>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想! </p>
</div>
<div class="card">
<h2>文章标题</h2>
<h5>2019 年 4 月 17日</h5>
<div class="fakeimg" style="height:200px;">图片</div>
<p>一些文本...</p>
<p>学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!学的不仅是技术,更是梦想!</p>
</div>
</div>
<div class="rightcolumn">
<div class="card">
<h2>关于我</h2>
<div class="fakeimg" style="height:100px;">图片</div>
<p>关于我的一些信息..</p>
</div>
<div class="card">
<h3>热门文章</h3>
<div class="fakeimg"><p>图片</p></div>
<div class="fakeimg"><p>图片</p></div>
<div class="fakeimg"><p>图片</p></div>
</div>
<div class="card">
<h3>关注我</h3>
<p>一些文本...</p>
</div>
</div>
</div>

<div class="footer">
<h2>底部区域</h2>
</div>

</body>
</html>

-------------------------感谢你的观看-----------------------------

最新文章

  1. 【转载】在HTML中插入swf文件(转)
  2. Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
  3. c++ basic 整理1
  4. c++ IO的继承结构
  5. 认识Agile,Scrum和DevOps
  6. V​M​W​a​r​e​里​安​装​6​4​位​L​i​n​u​x​ ​的​方​法
  7. MySQL 主主同步配置和主从配置步骤
  8. javasript生成 uuid的几种算法分享
  9. 查看oracle数据库下面的所有的表,执行某个sql脚本:
  10. angular.js升序降序过滤器
  11. 14.7.1.2 MySQL创建用户句法
  12. SAS︱数据索引、数据集常用操作(set、where、merge、append)
  13. Hibernate学习——持久化类的学习
  14. eclipse中运行出错:无法初始化主类的解决办法
  15. TensorFlow 常用函数与方法
  16. 如何在OneNote for Mac 中插入文件附件?
  17. MyBatis中调用存储过程和函数
  18. poj2965 【枚举】
  19. Html.DropDownList()的用法
  20. Removing Docker Containers and Images

热门文章

  1. leaflet动态加载/手动绘制(圆、多边形)demo
  2. Flutter:学习 StatelessWidget 和 StatefulWidget
  3. Net Core 网关 Ocelot 简单案例
  4. 从源码MessageSource的三个实现出发实战spring&#183;i18n国际化
  5. Vue进度条组件
  6. 第六周作业-N67044-张铭扬
  7. MyCat2 分表分库
  8. SQL Server查看端口号及修改端口号
  9. Dependency Analyzer
  10. 沁恒蓝牙系列芯片USB烧录故障排查