- 浏览器市场份额-国内统计
- 浏览器市场份额-国外统计
不同的浏览器
有不同的浏览器内核
, 浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容,从而导致了浏览器兼容性问题出现
我们是如何通过浏览器查看网页上的内容的?
1.打开IE缓存文件夹
C:\Users\Jonathan_Lee\AppData\Local\Microsoft\Windows\Temporary Internet Files
Jonathan_Lee
为个人电脑用户名名称4.发现文件夹下多了很多文件(.html、.css、.js、.png等), 仔细观察不难发现其实这些文件都是被访问网页上的内容
5.结论
真实的、物理的文件传输的
不是一个文件
,而是一堆文件
组成的缓存
到了本地1.按下回车时浏览器根据输入的URL地址发送请求报文
2.服务器接收到请求报文,会对请求报文
进行处理
3.服务器将处理完的结果通过响应报文
返回给浏览器
请求过程验证
1.我们在浏览器的地址栏中输入的地址其实就是URL
2.URL格式:
3.URL拆分
4.URL拆分后每一部分的作用
4.1服务器IP地址 和 服务器端口号它们两的作用:
4.2资源名称它的作用:
4.3资源名称
5.补充
1.HTTP是Hypertext Transfer Protocol的缩写, 超文本传输协议
2.什么是协议?
3.沟通问题?
4.HTTP协议是用来规范/约束哪一类事物?
在Windows系统中如何查看文件的扩展名
电脑上的一个文件是可以"同时"被多个软件打开的, 不同的软件打开可能会有不同的效果
什么是纯文本文件?
能够被记事本打开, 并且能够正常显示
的文件都是纯文本文件
.html的文件可以被记事本打开
, 并且能够正常显示,所以.html文件是一个纯文本文件
郑伊健
郑伊健,1967年10月4日出生于中国香港,籍贯广东恩平,香港影视演员、流行男歌手。1988年参加新秀歌唱大赛加入无线电视,因拍摄“阳光柠檬茶”广告而入行,拜罗文为师。[1]
1991年加盟BMG唱片公司以歌手身份出道。1995年开始,凭借在《古惑仔》系列电影中饰演陈浩南一角走红。1996年凭借《古惑仔》主题曲《友情岁月》获得十大中文金曲奖。1996年至1997年连续两次获得”台湾十大偶像”奖。
2.打开之后发现显示的格式不对, 不对的原因是因为在纯文本文件中所有文字都是同级别的, 浏览器不知道哪些文字代表什么意思. 也就是浏览器不知道哪些文字是标题, 哪些文字是段落…, 所以导致了显示的格式不正确
3.正是因为如此, 所以HTML应用而生. HTML就只有一个作用, 它是专门用来描述文本的语义的
. 也就是说我们可以利用HTML来告诉浏览器哪些是标题, 哪些是段落.
标签
. 并且这些用于描述文本语义的标签将来在浏览器中是不会被显示出来
的"超文本"
, 而这些文本又叫做标签
, 所以HTML被称之为"超文本标记语言"
<h1>郑伊健h1>
<p>郑伊健,1967年10月4日出生于中国香港,籍贯广东恩平,香港影视演员、流行男歌手。1988年参加新秀歌唱大赛加入无线电视,因拍摄“阳光柠檬茶”广告而入行,拜罗文为师。[1] p>
<p>1991年加盟BMG唱片公司以歌手身份出道。1995年开始,凭借在《古惑仔》系列电影中饰演陈浩南一角走红。1996年凭借《古惑仔》主题曲《友情岁月》获得十大中文金曲奖。1996年至1997年连续两次获得”台湾十大偶像”奖。p>
注意事项:
HTML只有一个作用
, 它是专门用来给文本添加语义
的, 而不是用来修改文本的样式的H1标签它的作用是什么?
添加标题语义
的敬爱的江哥:
您好!
正文正文正文正文正文正文正文正文正文正文正文正文
正文正文正文正文正文正文正文正文正文正文正文正文
此致
敬礼!
你的朋友 伊健
2066年6月6日
3.编写网页的步骤:
3.1.新建一个文本文档
3.2.利用记事本打开
3.3.编写THML代码
3.4.保存并且修改纯文本文档的扩展名为.html
3.5.利用浏览器打开编写好的文件
4.网页基本结构:
<html>
<head>
<title>title>
head>
<body>
body>
html>
1.为什么会有乱码现象?
2.如何解决乱码现象?
, 指定字符集3.什么是字符集
4.GBK(GB2312)和UTF-8区别
5.那么在企业开发中我们应该使用GBK(GB2312)还是UTF-8呢?
6.注意点:
<meta charset="UTF-8" />
<html>
html>
<head>
head>
<body>
body>
<head>
<meta charset="UTF-8" />
<title>百度一下,你就知道123title>
head>
什么是DTD文档声明?
用哪一个版本的HTML规范来编写的
. 浏览器只要知道了我们是用哪一个版本的规范来编写之后, 它就能够正确的编译/解析/渲染我们的网页DTD文档声明格式:
注意事项:
声明
必须是 HTML 文档的第一行,位于 标签之前 声明
不是 HTML 标签 声明
没有结束标签 声明
对大小写不敏感之前
有2大种规范
, 每种规范中又有3小种规范
大规范 | 小规范 |
---|---|
HTML | Strict (严格的) |
HTML | Transitional(过度的,普通的,宽松的) |
HTML | Frameset(带有框架的页面) |
XHTML | Strict (严格的) |
XHTML | Transitional(过度的,普通的,宽松的) |
XHTML | Frameset(带有框架的页面) |
HTML的DTD文档声明和XHTML的DTD文档声明有何区别?
Strict表示严格的
, 这种模式里面的要求更为严格.这种严格主要体现在有一些标签不能使用
Transitional表示普通的
, 这种模式是没有一些别的要求
Frameset表示框架
, 在框架的页面使用
常见的DOCTYPE有如下几种
HTML4.01:
XHTML 1.0
HTML5:
过去
企业级开发中用的比较多的大部分都是Transitional类型
的文档声明HTML5的时代已经到来
,以上6中规范仅仅作为了解, 以后都用HTML5类型的文档声明
, HTML5向下兼容(求此刻WC3心里阴影面积)在HTML的早期发展中,大部分标准都是所谓的retro-spec,即先有实现后有标准
。在这种情况下,HTML标准不是很规范
,浏览器也对HTML页面中的错误相当宽容
。这反过来又导致了HTML开发者写出了大量含有错误的HTML页面
html语言本身有一些缺陷
(例如: 内容和形式不能分离;标签单一;数据不能复用等等),随着xml的兴起人们希望xml来弥补html的不足
,但是目前有成千上万的网页都是用html编写的,所以完全使用xml来替代html还为时过早
,于是W3C在2000年推出了xhtml1.0, 建立xhtml的目的就是实现从html向xml的过度
为了规范HTML
,W3C结合XML制定了XHTML 1.0标准
,这个标准没有增加任何新的标签,只是按照XML的要求来规范HTML,并定义了一个新的MIME type application/xhtml+xml。W3C的初衷
是要求浏览器对这个MIME type实行强错误检查
,如果页面有HTML错误,就要显示错误信息
。但是由于已有的web页面中已经有了大量的错误,很多开发者拒绝使用新的MIME type
。W3C不得已
,在XHTML 1.0的标准之后增加了一个附录C
,允许
开发者使用XHTML语法来写页面,同时使用旧的MIME type,application/html
,来分发页面
W3C随后在XHTML 1.1中取消了附录C
,即使用XHTML 1.1标准的页面必须用新的MIME type来分发。于是这个标准并没有很多人采用
有了XHTML的教训,W3C在制定下一代HTML标准时(HTML5),就将向后兼容作为了一个很重要的原则
。HTML5确实引入了许多新的特性,但是它最重要的一个特性是,不会break已有的网页
。你可以将任何已有的网页的第一行改成,它就成也一个HTML5页面
,并且可以照样在浏览器里正常的展示。
简而言之
长度为3的后缀名
,所以是htm最高级高发工具
**来编写网页最牛逼最高级
**的高发工具WebStorm
WebStorm常见快捷键
如何在WebStorm中利用快捷键创建一个新的.html的文件
如何在WebStorm中让光标移动到当前行的末尾
如何在WebStorm中让光标移动到当前行的最前面
如何在WebStorm中让光标在多行中闪烁
如何在WebStorm中快速的复制光标所在的那一行
如何在WebStorm中快速的删除光标所在的那一行
如何在WebStorm中让标签包裹一段内容, 也就是自动在一段内容前后加上标签
作用:
格式:
xxxxxx
注意点:
作用:
格式:
xxxxxxxx
注意点:
作用:
格式:
注意点:
什么是注释?
为什么要使用注释?
注释格式
-->
ctrl + /
作用: 在网页上插入一张图片
格式: [图片上传失败...(image-fd0503-1522164219949)]
标签的属性
属性名称 | 作用 |
---|---|
src(source) | 告诉浏览器需要插入 的图片路径, 以便于浏览器到该路径下找到需要插入的图片 |
alt(alternate) | 规定图像的替代文本, 只有 在src指定的路径下找不到图片 ,才会显示alt指定的文本 |
title | 悬停文本(介绍这张图片, 只有在鼠标移动到图片上时才会显示) |
height | 设置图片显示的高度 |
width | 设置图片显示的宽度 |
作用:
格式:
注意点:
图片路径分为两种, 一种是绝对路径, 一种是相对路径, 我们重点学习相对路径
, 因为在企业级开发中没有人使用绝对路径
绝对路径
[图片上传失败...(image-272290-1522164219949)]
相对路径
[图片上传失败...(image-2aceec-1522164219949)]
为什么没人使用绝对路径?
什么是可移植性?
为什么绝对路径可移植性差?
F:/lnj
目录下, html文件中用到的图片放在F:/lnj/images
目录下, 我给src指定的绝对路为F:/lnj/images/girl.png
. 那么将来我将整个lnj文件夹拷贝给你
, 如果你将lnj文件夹放在非F盘下, 那么将无法显示图片C:/lnj/images/girl.png
, 而src会去F盘找, 所以不会显示lnj
文件夹存放在F盘根目录下时图片才会正常运行, 这就叫做可移植性不好为什么相对路径可移植性好?
images/girl.png
, 那么无论你拷贝到那个盘, 哪个文件夹. 系统都只会在当前文件夹中的images下去查找图片
, 不会受到盘符和存储位置的影响, 只要保证页面和图片位置的相对关系不变就不会影响到图片的显示相对路径几种查找方式
girl.png
./girl.png
./girl.png
代表在当前目录下查找abc/girl.png
./abc/girl.png
abc/bbb/ccc/ddd/girl.png
或./abc/bbb/ccc/ddd/girl.png
../girl.png
注意事项:
aaa/../bbb/girl.png
格式: 江哥博客
作用: 用于从一个页面链接到另一个页面
注意事项:
超级链接
或超链接
a标签的属性
属性名称 | 作用 |
---|---|
href(hypertext reference) | 指定跳转的目标地址 |
target | 告诉浏览器是否保留原始界面, _blank保留, _self不保留 |
title | 悬停文本(介绍这个链接, 只有在鼠标移动到超链接上时才会显示) |
base标签和a标签结合使用
注意事项:
a标签其它用法
不分先后
<h4>选择居住城市(CN)h4>
<ul>
<li>北京li>
<li>上海li>
<li>广州li>
<li>铁岭li>
ul>
ul应用场景:
注意事项:
先导符号
但是一定一定千万千万要记住, ul的作用并不是
给文字添加小圆点, 而是
增加无序列表的语义
先导符号
的样式, 取值有disc、square、circle几种组标签
, 一定是一坨一坨的出现, 也就是说li标签不能单独存在, 必须包裹在ul里面<ul>
<li>
好吃的
<ul>
<li>牛奶li>
<li>面包li>
ul>
li>
<li>
日用的
<ul>
<li>毛巾li>
<li>牙膏li>
ul>
li>
ul>
有先后之分
<h4>中国房价排行h4>
<ol>
<li>北京li>
<li>上海li>
<li>广州li>
<li>铁岭li>
ol>
ol应用场景:
注意事项:
先导符号
的样式和序号dt
罗列出列表的条目, 然后再通过dd
给每个条目进行相应的描述 <dl>
<dt>北京dt>
<dd>国家的首都, 看升国旗的地方dd>
<dt>上海dt>
<dd>魔都, 遍地是黄金的地方dd>
dl>
注意事项:
组标签
, 一定是一坨一坨的出现, 也就是说dt和dd标签不能单独存在, 必须包裹在dl里面
<table>
<tr>
<td>td>
<td>td>
tr>
<tr>
<td>td>
<td>td>
tr>
table>
border: 默认情况下表格的边框宽度为0看不到, 通过border属性给表格指定边框宽度
width: 默认情况下表格的宽度是由内容自动计算出来的, 可以通过width属性指定表格的宽度
height:默认情况下表格的高度是由内容自动计算出来的, 可以通过height属性指定表格的高度
cellspacing: 外边距. 默认情况下单元格之间有2个像素的间隙, 可以通过cellpadding指定表格之间的间隙
cellpadding: 内边距. 默认情况下单元格边缘距离内容有1个像素的内边距, 可以通过cellpadding属性指定单元格边缘和内容之间的内边距
align: 规定表格相对周围元素的对齐方式, 它的取值有center、left、right
浏览器
中居左/居右/居中所有内容
居左/居右/居中所有内容
居左/居右/居中valign: 规定表格相对周围元素的对齐方式, 它的取值有center、left、right
所有内容
居上/居中/居下所有内容
居上/居中/居下bgcolor:规定表格的背景颜色
表单中有两种类型的单元格, 一种是标准单元格td, 一种是表头单元格th
th标签: 给每一列设置标题, 单元格中的内容会自动加粗,居中
caption标签:给整个表格设置标题
<table bgcolor="black" cellspacing="1px" width="800px" align="center">
<caption>
<h2>今日小说排行榜h2>
caption>
<tr bgcolor="#a9a9a9">
<th>排名th>
<th>关键词th>
<th>趋势th>
<th>今日搜索th>
<th>最近七日th>
<th>相关链接th>
tr>
<tr bgcolor="white" align="center">
<td>1td>
<td align="left">暴走大事件td>
<td>
![](images/up.jpg)
td>
<td>623557td>
<td>4088311td>
<td>
<a href="#">贴吧a>
<a href="#">图片a>
<a href="#">百科a>
td>
tr>
table>
thead标签:用来存放当前列的表头, 如果没有加css页面默认将表头中的高度设置变小
tbody标签:一般用来存放页面中的主体数据, 如果不写会自动加上
tfoot标签:用来存放表格的页脚(脚注或表注), 如果没有加css页面默认将表头中的高度设置变小, 一般不会出现
<table>
<caption>表格的标题caption>
<thead>
<tr>
<th>每一列的标题th>
tr>
thead>
<tbody>
<tr>
<td>数据td>
tr>
tbody>
<tfoot>
<tr>
<td>数据td>
tr>
tfoot>
table>
<form>
所有的表单内容,都要写在form标签里面
form>
注意事项:
action
和method
, 但就现目前大家的知识储备而言暂时无法理解, 所以放到后面的课程中讲解如果说td是表格最核心的标签, 那么input就是表单最核心的标签. nput标签有一个type属性, 这个属性有很多类型的取值, 取值的不同就决定了input标签的功能和外观不同
明文输入框
账号:
暗文输入框
密码:
给输入框设置默认值
账号:
密码:
规定输入字段中的字符的最大长度
单选框(radio)
相同的name属性
<input type="radio" name="xingbie" /> 男
<input type="radio" name="xingbie" /> 女
<input type="radio" name="xingbie" /> 妖
<input type="checkbox" name="aihao"/> 篮球
<input type="checkbox" name="aihao"/> 足球
<input type="checkbox" name="aihao"/> 棒球
<input type="radio" name="xingbie" checked="checked"/> 男
<input type="radio" name="xingbie" /> 女
<input type="radio" name="xingbie" /> 妖
<input type="checkbox" name="aihao" checked="checked"/> 篮球
<input type="checkbox" name="aihao" checked="checked"/> 足球
<input type="checkbox" name="aihao"/> 棒球
不会向用户呈现任何特殊效果
。不过,它为鼠标用户改进了可用性
<label for="account">账号:label>
<input type="text" id="account" />
<input type="radio" name="sex" id="man" /> <label for="man">男label>
<input type="checkbox" id="basketball" />
<label for="basketball">篮球label>
按钮
图片按钮
重置按钮
注意事项:
提交按钮
隐藏域
取色器
日期选择器
作用: 给输入框绑定待选项
格式:
datalist>
<option>待选项内容option>
datalist>
请输入你的车型: <input type="text" list="cars">
<datalist id="cars">
<option>奔驰option>
<option>宝马option>
<option>奥迪option>
<option>路虎option>
<option>宾利option>
datalist>
<textarea cols="30" rows="10">默认textarea>
<style type="text/css">
textarea{
resize: none;
}
style>
选择籍贯:
<select>
<option>北京option>
<option>河北option>
<option>河南option>
<option>山东option>
<option>山西option>
<option>湖北option>
<option>贵州option>
select>
<select>
<option>北京option>
<option>河北option>
<option>河南option>
<option>山东option>
<option>山西option>
<option>湖北option>
<option selected="selected">贵州option>
select>
<select>
<optgroup label="北京市">
<option>海淀区option>
<option>昌平区option>
<option>朝阳区option>
optgroup>
<optgroup label="广州市">
<option>天河区option>
<option>白云区option>
optgroup>
<option selected="selected">贵州option>
select>
作用: 播放视频
格式1:
<video src="">
video>
video标签的属性
格式2
<video>
<source src="" type="">source>
<source src="" type="">source>
video>
第二种格式存在的意义
注意点:
作用: 播放音频
格式:
<audio src="">
audio>
<audio>
<source src="" type="">
audio>
作用:利用summary标签来描述概要信息, 利用details标签来描述详情信息
默认情况下是折叠展示, 想看见详情必须点击
格式:
<details>
<summary>概要信息summary>
详情信息
details>
格式:
<marquee>内容marquee>
属性:
注意点:
– 由于HTML现在只负责语义而不负责样式.但是HTML一开始有一部分标签连样式也包揽了, 所以这部分标签都被废弃了
- b、u、i、s
- 以上标签自己带有样式, 有浓厚的样式作用, 今后一般都只作为CSS钩子使用
- 原则: 不到万不得已,切记不要使用如上标签. 大家可以到BAT的网站查看源代码, 几乎看不到以上标签
b(Bold)作用: 将文本字体加粗
将文本字体加粗
u(Underlined)作用: 为文本添加下划线
为文本添加下划线
i(Italic)作用: 显示斜体文本效果
显示斜体文本效果
s(Strikethrough)作用: 为文本添加删除线
为文本添加删除线
为了弥补 b、u、i、s标签的不足, W3C又推出了一组新的标签, 这些标签在显示上
看似和buis没什么区别
, 但是在语义上却有重大区别
我们想在页面上输出这些字符,但是HTML认为这是一个标签, 所以如果需要输出一些特殊的字符需要通过字符实体来实现
lt是英语less than 小于的意思, <
可以在页面上输出一个小于符号
gt是英语greater than 大于的意思, >
可以在页面上输出一个大于符号
html中对空格,缩进,换行不敏感,如果同时出现多个空格缩进或者执行,页面只会把它们当作一个空格来解析。所以想要在html中输出空格必须使用来实现, 一个
就代表一个空格
是英语non-breaking spacing, 翻译为不打断空格的意思显示结果 | 描述 | 实体名称 |
---|---|---|
空格 |
|
|
< | 小于号 | < |
> | 大于号 | > |
© | 版权 | © |
® | 注册商标 | ® |
™ | 商标 | ™ |
& | 和号 | & |
" | 引号 | " |
’ | 撇号 | ' |
¢ | 分 | ¢ |
£ | 镑 | £ |
¥ | 日圆 | ¥ |
€ | 欧元 | € |
§ | 小节 | § |
× | 乘号 | × |
÷ | 除号 | ÷ |
作用: 告诉搜索引擎当前网页的作业, 写给网络爬虫看的内容
格式:
常见组合
:可以抓取本页,而且可以顺着本页继续索引别的链接
:不许抓取本页,但是可以顺着本页抓取索引别的链接
:可以抓取本页,但是不许顺着本页抓取索引别的链接
:不许抓取本页,也不许顺着本页抓取索引别的链接。
注意事项
:
- 迫于压力,html开始出现, ,
等标签。但是html是一种描述结构的语言,也开始描述外在表现了。几年之后这种随便的做法暴露出严重的问题:1:由于html既写结构又写样式,导致页面缺乏结构性,降低了网页的可访问性。2:页面维护越来越困难
Css支持更丰富的文档外观,Css可以为任何元素的文本和背景设置颜色;允许在任何元素外围设置边框;允许改变文本的大小,装饰(如下划线),间隔,甚至可以确定是否显示文本
。<h1 align="center">
<font face="微软雅黑" color="red">成功法则font>
h1>
<p align="center">
<font face="微软雅黑" color="blue" size="5">迟到毁一生font>
p>
<p align="center">
<font face="微软雅黑" color="blue" size="5">早退穷三代font>
p>
<p align="center">
<font face="微软雅黑" color="blue" size="5">按时上下班font>
p>
<p align="center">
<font face="微软雅黑" color="blue" size="5">必成高富帅font>
p>
成功法则
迟到毁一生
早退穷三代
按时上下班
必成高富帅
<style type="text/css">
标签名称{
属性名称: 属性对应的值;
...
}
style>
注意点:
style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系)
style标签中的type属性其实可以不用写, 默认就是type=“text/css”
设置样式时必须按照固定的格式来设置. key: value;
其中:不能省略, 分号大多数情况下也不能省略(当有多个属性时, 最后一个可以省略)
CSS怎么学?
CSS的学习一共分为两大部分, 一个是CSS的属性, 另一个是CSS选择器. 也就是说着两部分学完CSS就没有别的东西了
-
如果设置的字体不存在, 那么系统会使用默认的字体来显示
默认一般使用宋体
如果设置的字体不存在, 而我们又不想用默认的字体来显示怎么办?
可以给字体设置备选方案
格式:font-family:“字体1”, “备选方案1”, …;
如果想给中文和英文分别单独设置字体, 怎么办?
但凡是中文字体, 里面都包含了英文
但凡是英文字体, 里面都没有包含中文
也就是说中文字体可以处理英文, 而英文字体不能处理中文
注意点: 如果想给界面中的英文单独设置字体, 那么英文的字体必须写在中文的前面
补充在企业开发中最常见的字体有以下几个
中文: 宋体/黑体/微软雅黑
英文: “Times New Roman”/Arial
还需要知道一点, 就是并不是名称是英文就一定是英文字体,因为中文字体其实都有自己的英文名称, 所以是不是中文字体主要看能不能处理中文
宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
font: style weight size family;
font:italic bold 10px "楷体";
在CSS中如何通过color属性来修改文字颜色
格式: color: 值;
取值:
英文单词
一般情况下常见的颜色都有对应的英文单词, 但是英文单词能够表达的颜色是有限制的, 也就是说不是所有的颜色都能够通过英文单词来表达
rgb
rgb其实就是三原色, 其中r(red 红色) g(green 绿色) b(blue 蓝色)
格式: rgb(0,0,0)
第一个数字就是用来设置三原色的光源元件红色显示的亮度
第二个数字就是用来设置三原色的光源元件绿色显示的亮度
第三个数字就是用来设置三原色的光源元件蓝色显示的亮度
这其中的每一个数字它的取值是0-255之前, 0代表不发光, 255代表发光, 值越大就越亮
红色: rgb(255,0,0);
绿色: rgb(0,255,0);
蓝色: rgb(0,0,255);
黑色: rgb(0,0,0);
白色: rgb(255,255,255);
灰色: rgb(200,200,200);
只要让红色/绿色/蓝色的值都一样就是灰色
-
color: rgba(255,0,0,0.2);
-
十六进制
通过十六进制来表示颜色其实本质就是RGB
十六进制中是通过每两位表示一个颜色
例如: #FFEE00 FF表示R EE表示G 00表示B
什么是十六进制?
十六进制和十进制一样都是一种计数的方式
在十进制中取值范围0-9, 逢十进一
在十六进制中取值范围0-F, 逢十六进一
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
-
15 == 1*16 + 5 = 21
12 == 1*16 + 2 = 18
FF == F*16 + F == 15*16 + 15 == 240 + 15 = 255
00 == 0*16 + 0 = 0
-
#FFEE00 == #FE0
#123456;
#122334
什么是标签选择器?
作用: 根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性
格式:
标签名称{
属性:值;
}
什么是id选择器?
作用: 根据指定的id名称找到对应的标签, 然后设置属性
格式:
#id名称{
属性:值;
}
什么是类选择器?
作用: 根据指定的类名称找到对应的标签, 然后设置属性
格式:
.类名{
属性:值;
}
格式:
<标签名称 class="类名1 类名2 ...">
错误的写法:
<p class="para1" class="para2">
id和class的区别?
1.1
id相当于人的身份证不可以重复
class相当于人的名称可以重复
1.2
一个HTML标签只能绑定一个id名称
一个HTML标签可以绑定多个class名称
id选择器和class选择器区别?
id选择器是以#开头
class选择器是以.开头
在企业开发中到底用id选择器还是用class选择器?
id一般情况下是给js使用的, 所以除非特殊情况, 否则不要使用id去设置样式
在企业开发中一个开发人员对类的使用可以看出这个开发人员的技术水平
一般情况下在企业开发中要注重冗余代码的抽取, 可以将一些公共的代码抽取到一个类选择器中, 然后让标签和这个类选择器绑定即可
什么是后代选择器?
作用: 找到指定标签的所有特定的后代标签, 设置属性
格式:
标签名称1 标签名称2{
属性:值;
}
先找到所有名称叫做"标签名称1"的标签, 然后再在这个标签下面去查找所有名称叫做"标签名称2"的标签, 然后在设置属性
注意点:
后代选择器必须用空格隔开
后代不仅仅是儿子, 也包括孙子/重孙子, 只要最终是放到指定标签中的都是后代
后代选择器不仅仅可以使用标签名称, 还可以使用其它选择器
后代选择器可以通过空格一直延续下去
什么是子元素选择器?
作用: 找到指定标签中所有特定的直接子元素, 然后设置属性
格式:
标签名称1>标签名称2{
属性:值;
}
先找到所有名称叫做"标签名称1"的标签, 然后在这个标签中查找所有直接子元素名称叫做"标签名称2"的元素
注意点:
子元素选择器只会查找儿子, 不会查找其他被嵌套的标签
子元素选择器之间需要用>符号连接, 并且不能有空格
子元素选择器不仅仅可以使用标签名称, 还可以使用其它选择器
子元素选择器可以通过>符号一直延续下去
后代选择器和子元素选择器之间的区别?
1.1
后代选择器使用空格作为连接符号
子元素选择器使用>作为连接符号
1.2
后代选择器会选中指定标签中, 所有的特定后代标签, 也就是会选中儿子/孙子…, 只要是被放到指定标签中的特定标签都会被选中
子元素选择器只会选中指定标签中, 所有的特定的直接标签, 也就是只会选中特定的儿子标签
后代选择器和子元素选择器之间的共同点
2.1
后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器
2.2
后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去
选择器1>选择器2>选择器3>选择器4{}
在企业开发中如何选择
如果想选中指定标签中的所有特定的标签, 那么就使用后代选择器
如果只想选中指定标签中的所有特定儿子标签, 那么就使用子元素选择器
什么是交集选择器?
作用: 给所有选择器选中的标签中, 相交的那部分标签设置属性
格式:
选择器1选择器2{
属性: 值;
}
什么是并集选择器?
作用: 给所有选择器选中的标签设置属性
格式:
选择器1,选择器2{
属性:值;
}
什么是相邻兄弟选择器 CSS2
作用: 给指定标签后面紧跟的那个标签设置属性
格式:
选择器1+选择器2{
属性:值;
}
什么是通用兄弟选择器 CSS3
作用: 给指定选择器后面的所有选择器选中的所有标签设置属性
格式:
选择器1~选择器2{
属性:值;
}
序选择器是CSS3中新增的选择器最具代表性的就是序选择器
什么是序选择器?
作用: 选中指定的任意标签然后设置属性
格式:
1.同级别的第几个
:first-child 选中同级别中的第一个标签
:last-child 选中同级别中的最后一个标签
:nth-child(n) 选中同级别中的第n个标签
:nth-last-child(n) 选中同级别中的倒数第n个标签
:only-child 选中父元素中唯一的标签
注意点: 不区分类型
2.同级同类型的第几个
:first-of-type 选中同级别中同类型的第一个标签
:last-of-type 选中同级别中同类型的最后一个标签
:nth-of-type(n) 选中同级别中同类型的第n个标签
:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签
:only-of-type 选中父元素中唯一类型的某个标签
3.其它用法
:nth-child(odd) 选中同级别中的所有奇数
:nth-child(even) 选中同级别中的所有偶数
:nth-child(xn+y)
x和y是用户自定义的, 而n是一个计数器, 从0开始递增
:nth-of-type(odd) 选中同级别中同类型的所有奇数
:nth-of-type(even) 选中同级别中同类型的所有偶数
:nth-of-type(xn+y)
x和y是用户自定义的, 而n是一个计数器, 从0开始递增
什么是属性选择器?
作用: 根据指定的属性名称找到对应的标签, 然后设置属性
格式:
[attribute]
-作用:根据指定的属性名称找到对应的标签, 然后设置属性
[attribute=value]
-作用: 找到有指定属性, 并且属性的取值等于value的标签, 然后设置属性
-最常见的应用场景, 就是用于区分input属性
input[type=password]{}
<input type="text" name="" id="">
<input type="password" name="" id="">
属性的取值是以什么开头的
[attribute|=value] CSS2
[attribute^=value] CSS3
两者之间的区别:
CSS2中的只能找到value开头,并且value是被-和其它内容隔开的
CSS3中的只要是以value开头的都可以找到, 无论有没有被-隔开
属性的取值是以什么结尾的
[attribute$=value] CSS3
属性的取值是否包含某个特定的值得
[attribute~=value] CSS2
[attribute*=value] CSS3
两者之间的区别:
CSS2中的只能找到独立的单词, 也就是包含value,并且value是被空格隔开的
CSS3中的只要包含value就可以找到, 无论有没有被隔开
什么是通配符选择器?
作用: 给当前界面上所有的标签设置属性
格式:
*{
属性:值;
}
什么是继承性?
作用: 给父元素设置一些属性, 子元素也可以使用, 这个我们就称之为继承性
示例代码:
<style>
div{
color: red;
}
style>
<div>
<ul>
<li>
<p>我是段落p>
li>
ul>
div>
我是大标题
body{
font-size: 30px;
font-family: "微软雅黑"
color: #666;
}
CSS全称 Cascading StyleSheet (层叠式样式表), 其中的层叠就是指层叠性
什么是层叠性?
作用: 层叠性就是CSS处理冲突的一种能力
示例代码
我是段落
什么是优先级?
作用:当多个选择器选中同一个标签, 并且给同一个标签设置相同的属性时, 如何层叠就由优先级来确定
优先级判断的三种方式
间接选中就是指继承
如果是间接选中, 那么就是谁离目标标签比较近就听谁的
<style>
li{
color: blue;
}
ul{
color: red;
}
style>
<ul>
<li>
<p id="identity" class="para">我是段落p>
li>
ul>
<style>
p{
color: blue;
}
p{
color: red;
}
style>
<ul>
<li>
<p id="identity" class="para">我是段落p>
li>
ul>
<style>
#identity{
color: purple;
}
.para{
color: pink;
}
p{
color: green;
}
*{
color: blue;
}
li{
color: red;
}
style>
<ul>
<li>
<p id="identity" class="para">我是段落p>
li>
ul>
什么是优先级的权重?
作用: 当多个选择器混合在一起使用时, 我们可以通过计算权重来判断谁的优先级最高
权重的计算规则
首先先计算选择器中有多少个id, id多的选择器优先级最高
如果id的个数一样, 那么再看类名的个数, 类名个数多的优先级最高
如果类名的个数一样, 那么再看标签名称的个数, 标签名称个数多的优先级最高
如果id个数一样, 类名个数也一样, 标签名称个数也一样, 那么就不会继续往下计算了, 那么此时谁写在后面听谁的
示例代码
-
我是段落
-
我是段落
-
我是段落
-
我是段落
####!important
什么是!important
- 作用: 用于提升某个直接选中标签的选择器中的某个属性的优先级的, 可以将被指定的属性的优先级提升为最高
示例代码
-
我是段落
<style>
.header{
width: 980px;
height: 100px;
background: red;
margin: auto;
margin-bottom: 10px;
}
.content{
width: 980px;
height: 500px;
background: green;
margin: auto;
margin-bottom: 10px;
}
.footer{
width: 980px;
height: 100px;
background: blue;
margin: auto;
}
.logo{
width: 200px;
height: 50px;
background: pink;
float: left;
margin: 20px;
}
.nav{
width: 600px;
height: 50px;
background: yellow;
float: right;
margin: 20px;
}
.aside{
width: 250px;
height: 460px;
background: purple;
float: left;
margin: 20px;
}
.article{
width: 650px;
height: 460px;
background: deepskyblue;
float: right;
margin: 20px;
}
style>
<div class="header">
<div class="logo">div>
<div class="nav">div>
div>
<div class="content">
<div class="aside">div>
<div class="article">div>
div>
<div class="footer">div>
<style>
span{
color: red;
}
style>
<p>努力到<span>无能为力span>, 拼搏到<span>感动自己span>p>
div和span有什么区别?
1.div会单独的占领一行,而span不会单独占领一行
2.div是一个容器级的标签, 而span是一个文本级的标签
容器级的标签和文本级的标签的区别?
容器级的标签中可以嵌套其它所有的标签
常见容器级的标签: div h ul ol dl li dt dd …
文本级的标签中只能嵌套文字/图片/超链接
常见文本级的标签:span p buis strong em ins del …
注意点:
- 不用刻意去记忆哪些标签是文本级的哪些标签是容器级, 在企业开发中一般情况下要嵌套都是嵌套在div中, 或者按照组标签来嵌套(ul>li, ol>li , dl>dt+dd)
在HTML中HTML将所有的标签分为两类, 分别是容器级和文本级
在CSS中CSS也将所有的标签分为两类, 分别是块级元素和行内元素(其实还有一类, 行内块级)
什么是块级元素, 什么是行内元素?
块级元素会独占一行
行内元素不会独占一行
常见容器级的标签: div h ul ol dl li dt dd …
常见文本级的标签:span p buis stong em ins del …
常见块级元素: p
div h ul ol dl li dt dd
常见行内元素: span buis strong em ins del
块级元素和行内元素的区别?
块级元素
独占一行
如果没有设置宽度, 那么默认和父元素一样宽
如果设置了宽高, 那么就按照设置的来显示
行内元素
不会独占一行
如果没有设置宽度, 那么默认和内容一样宽
行内元素是不可以设置宽度和高度的
行内块级元素
为了能够让元素既能够不独占一行, 又可以设置宽度和高度, 那么就出现了行内块级元素
不独占一行, 并且可以设置宽高
如何转换CSS元素的显示模式?
设置元素的display属性
display取值
block 块级
inline 行内
inline-block 行内块级
快捷键
di display: inline;
db display: block;
dib display: inline-block;
什么边框?
边框就是环绕在标签宽度和高度周围的线条
边框属性的格式
连写(同时设置四条边)
border: 边框的宽度 边框的样式 边框的颜色;
示例代码
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
border: 5px solid blue;
/*border: 5px solid;*/
/*border: 5px blue;*/
/*border: solid blue;*/
}
style>
- 快捷键:
- bd+ border: 1px solid #000;
注意点:
连写格式中颜色属性可以省略, 省略之后默认就是黑色
连写格式中样式不能省略, 省略之后就看不到边框了
连写格式中宽度可以省略, 省略之后还是可以看到边框
按方向连写(分别设置四条边)
border-top: 边框的宽度 边框的样式 边框的颜色;
border-right: 边框的宽度 边框的样式 边框的颜色;
border-bottom: 边框的宽度 边框的样式 边框的颜色;
border-left: 边框的宽度 边框的样式 边框的颜色;
示例代码
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
border-top:5px solid blue;
border-right:10px dashed green;
border-bottom:15px dotted purple;
border-left:20px double pink;
}
style>
快捷键:
bt+ border-top: 1px solid #000;
br+ border-right: 1px solid #000;
bb+ border-bottom: 1px solid #000;
bl+ border-left: 1px solid #000;
按要素连写(分别设置四条边)
border-width: 上 右 下 左;
border-style: 上 右 下 左;
border-color: 上 右 下 左;
示例代码
<style>
.box{
width: 500px;
height: 500px;
background-color: red;
border-width: 5px 10px 15px 20px;
border-style: solid dashed dotted double;
border-color: blue green purple pink;
/*border-color: blue green purple;*/
/*border-color: blue green;*/
/*border-color: blue;*/
}
style>
注意点:
这三个属性的取值是按照顺时针来赋值, 也就是按照上右下左来赋值, 而不是按照日常生活中的上下左右
这三个属性的取值省略时的规律
上 右 下 左 > 上 右 下 > 左边的取值和右边的一样
上 右 下 左 > 上 右 > 左边的取值和右边的一样 下边的取值和上边一样
上 右 下 左 > 上 > 右下左边取值和上边一样
非连写(方向+要素)
- border-top-width: ;
- border-top-style:;
- border-top-color:;
- border-right-width:;
- border-right-style:;
- border-right-color:;
- border-bottom-width:;
- border-bottom-style: ;
- border-bottom-color:;
- border-left-width:;
- border-left-style:;
- border-left-color:;
- 示例代码
<style>
.box{
width: 500px;
height: 500px;
background-color: red;
border-top-width: 5px;
border-top-style: solid;
border-top-color: blue;
border-right-width: 10px;
border-right-style: dashed;
border-right-color: green;
border-bottom-width: 15px;
border-bottom-style: dotted;
border-bottom-color: purple;
border-left-width: 20px;
border-left-style: double;
border-left-color: pink;
}
style>
.box3{
border: 5px solid red;
border-right:5px dashed red;
}
```
### 内边距属性
- 什么是内边距?
边框和内容之间的距离就是内边距
- 格式
- 单独设置四条边
- padding-top: ;
- padding-right: ;
- padding-bottom: ;
- padding-left: ;
- 示例代码
```html
<style>
div{
width: 98px;
height: 90px;
border: 1px solid #000;
background-color: red;
}
.box1{
padding-top: 20px;
padding-right:40px;
padding-bottom:80px;
padding-left:160px;
}
style>
同时设置四条边
padding: 上 右 下 左;
示例代码
<style>
div{
width: 98px;
height: 90px;
border: 1px solid #000;
background-color: red;
}
.box1{
/*padding:20px 40px 80px 160px;*/
/*padding:20px 40px 80px;*/
/*padding:20px 40px;*/
padding:20px;
}
style>
宽度和高度会发生变化
内边距也会有背景颜色
什么是外边距?
标签和标签之间的距离就是外边距
格式
单独设置四条边
margin-top: ;
margin-right: ;
margin-bottom: ;
margin-left: ;
示例代码
<style>
.box1{
margin-top:20px;
margin-right:40px;
margin-bottom:80px;
margin-left:160px;
}
style>
同时设置四条边
margin: 上 右 下 左;
示例代码
<style>
.box1{
margin:20px 40px 80px 160px;
/*margin:20px 40px 80px;*/
/*margin:20px 40px;*/
/*margin:20px;*/
}
style>
注意点:
- 这三个属性的取值省略时的规律
外边距的那一部分是没有背景颜色的
外边距合并现象
默认布局的垂直方向上外边距是不会叠加的, 会出现合并现象, 谁的外边距比较大就听谁的
示例代码
外边距合并现象
我是span我是span
我是div
我是div
margin-top问题
如果两个盒子是嵌套关系, 那么设置了里面一个盒子顶部的外边距, 外面一个盒子也会被顶下来
如果外面的盒子不想被一起定下来,那么可以给外面的盒子添加一个边框属性
在企业开发中, 一般情况下如果需要控制嵌套关系盒子之间的距离, 应该首先考虑padding, 其次再考虑margin(margin本质上是用于控制兄弟关系之间的间隙的)
示例代码
<style>
.big{
width: 500px;
height: 500px;
background-color: red;
/*不设置边框, big也会被small的顶部外边距顶下去*/
border: 5px solid #000;
}
.small{
width: 200px;
height: 200px;
background-color: blue;
margin-top:150px;
margin-left:150px;
}
style>
text-align:center;和margin:0 auto;区别
text-align: center; 是设置盒子中存储的文字/图片水平居中
margin:0 auto;是让盒子自己水平居中
示例代码
<html lang="en">
<head>
<meta charset="UTF-8">
<title>53-盒子居中和内容居中title>
<style>
.father{
width: 800px;
height: 500px;
background-color: red;
/*文字图片会居中*/
/*text-align: center;*/
/*盒子自身会居中*/
margin:0 auto;
}
.son{
width: 100px;
height: 100px;
background-color: blue;
}
style>
head>
<body>
<div class="father">
我是文字<br/>
![](images/girl.jpg)
<div class="son">div>
div>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>48-CSS盒子模型title>
<style>
span,a,b,strong{
display: inline-block;
width: 100px;
height: 100px;
border: 6px solid #000;
padding: 20px;
margin: 20px;
}
style>
head>
<body>
<span>我是spanspan>
<a href="#">我是超链接a>
<b>我是加粗b>
<strong>我是强调strong>
body>
html>
盒模型宽度和高度
内容的宽度和高度
就是通过width/height属性设置的宽度和高度
元素的宽度和高度
宽度 = 左边框 + 左内边距 + width + 右内边距 + 右边框
高度 同理可证
规律
增加了padding/border之后元素的宽高也会发生变化
- 如果增加了padding/border之后还想保持元素的宽高, 那么就必须减去内容的宽高
元素空间的宽度和高度
宽度 = 左外边距 + 左边框 + 左内边距 + width + 右内边距 + 右边框 + 右外边距
高度 同理可证
CSS3中新增了一个box-sizing属性, 这个属性可以保证我们给盒子新增padding和border之后, 盒子元素的宽度和高度不变
box-sizing取值
content-box
元素的宽高 = 边框 + 内边距 + 内容宽高
border-box
元素的宽高 = width/height的宽高
增加padding和border之后要想保证盒子元素的宽高不变, 系统会自动减去一部分内容的宽度和高度
示例代码
<style>
.box1{
width: 200px;
height: 200px;
background-color: blue;
float: right;
border: 20px solid #000;
padding: 20px;
}
style>
<style>
.box1{
box-sizing: border-box;
width: 200px;
height: 200px;
background-color: blue;
float: right;
border: 20px solid #000;
padding: 20px;
}
style>
什么是网页的布局方式?
标准流(文档流/普通流)排版方式
浮动流排版方式
注意点:
特点:
定位流排版方式
<style>
.box1{
float: left;
width: 50px;
height: 50px;
background-color: red;
}
.box2{
float: left;
width: 100px;
height: 100px;
background-color: pink;
}
.box3{
float: left;
width: 150px;
height: 150px;
background-color: yellow;
}
style>
<style>
.box1{
float: left;
width: 50px;
height: 50px;
background-color: red;
}
.box2{
float: right;
width: 100px;
height: 100px;
background-color: pink;
}
.box3{
float: left;
width: 150px;
height: 150px;
background-color: yellow;
}
.box4{
float: right;
width: 200px;
height: 200px;
background-color: tomato;
}
style>
<style>
.box1{
float: left;
width: 50px;
height: 50px;
background-color: red;
}
.box2{
width: 100px;
height: 100px;
background-color: pink;
}
.box3{
float: left;
width: 150px;
height: 150px;
background-color: yellow;
}
.box4{
float: left;
width: 200px;
height: 200px;
background-color: tomato;
}
style>
###浮动元素贴靠现象
- 如果贴靠了前面所有浮动元素之后都不能显示, 最终会贴靠到父元素的左边或者右边
-
div{
float: left;
width: 100px;
height: 100px;
/*background-color: red;*/
border: 1px solid #000;
}
p{
width: 500px;
height: 500px;
background-color: yellow;
}
<style>
div{
background-color: red;
}
p{
width: 200px;
height: 100px;
background-color: blue;
}
style>
<div>
<p>p>
div>
<style>
div{
background-color: red;
}
p{
float: left;
width: 200px;
height: 100px;
background-color: blue;
}
style>
<div>
<p>p>
div>
给前面的父盒子添加高度
示例代码:
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
/*这里*/
height: 50px;
}
.box2{
background-color: purple;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
ul li{
float: left;
}
style>
<div class="box1">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
利用clear:both;属性清除前面浮动元素对我的影响
示例代码:
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
}
.box2{
background-color: purple;
/*这里*/
clear: both;
/*margin无效*/
margin-top: 30px;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
ul li{
float: left;
}
style>
<div class="box1">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
在两个有浮动子元素的盒子之间添加一个额外的块级元素
示例代码:
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
}
.box2{
background-color: purple;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
ul li{
float: left;
}
/*这里*/
.wall{
clear: both;
}
.h20{
/*利用额外块级元素实现margin*/
height: 20px;
background-color: deepskyblue;
}
style>
<div class="box1">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="wall h20">div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
在前面一个盒子的最后添加一个额外的块级元素
示例代码
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
}
.box2{
background-color: purple;
/*margin有效*/
margin-top: 20px;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
ul li{
float: left;
}
/*这里*/
.wall{
clear: both;
}
style>
<div class="box1">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
<div class="wall">div>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
什么是overflow:hidden?
示例代码
.test{
width: 100px;
height: 100px;
border: 1px solid #000;
background-color: red;
overflow: hidden;
}
<div class="test">我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字div>
如何利用overflow:hidden;清除浮动
示例代码
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
/*这里*/
overflow: hidden;
*zoom:1;
}
.box2{
background-color: purple;
/*margin有效*/
margin-top: 20px;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
ul li{
float: left;
}
style>
<div class="box1">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
添加overflow:hidden;前
添加overflow:hidden;后
注意点:
*zoom:1;和_zoom:1的区别
给前面的盒子添加伪元素来清除浮动
示例代码
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
}
.box2{
background-color: purple;
/*margin有效*/
margin-top: 20px;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
li{
float: left;
}
/*这里*/
.clearfix:after {
/*生成内容作为最后一个元素*/
content: "";
/*使生成的元素以块级元素显示,占满剩余空间*/
display: block;
/*避免生成内容破坏原有布局的高度*/
height: 0;
/*使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互*/
visibility: hidden;
/*重点是这一句*/
clear: both;
}
.clearfix {
/*用于兼容IE, 触发IE hasLayout*/
*zoom:1;
}
style>
<div class="box1 clearfix">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
添加伪元素前
添加伪元素后
注意点:
给前面的盒子添加双伪元素来清除浮动
示例代码
<style>
*{
margin: 0;
padding: 0;
}
.box1{
background-color: red;
}
.box2{
background-color: purple;
/*margin有效*/
margin-top: 20px;
}
ul{
list-style: none;
}
.ul01 li{
background-color: blue;
}
.ul02 li{
background-color: green;
}
li{
float: left;
}
/*这里*/
.cf:before,.cf:after {
content:"";
display:table;
/*重点是这一句*/
clear:both;
}
.cf {
zoom:1;
}
style>
<div class="box1 clearfix">
<ul class="ul01">
<li>大娃li>
<li>二娃li>
<li>三娃li>
ul>
div>
<div class="box2">
<ul class="ul02">
<li>李南江li>
<li>极客江南li>
<li>江哥li>
ul>
div>
添加双伪元素前
添加双伪元素后
注意点:
什么是相对定位?
格式:
position: relative;
示例程序
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
}
.box1{
background-color: red;
}
.box2{
background-color: green;
position: relative;
top: 20px;
left: 20px;
}
.box3{
background-color: blue;
}
<style>
<div class="box1">div>
<div class="box2">div>
<div class="box3">div>
相对定位注意点:
相对定位应用场景:
用于对元素进行微调
input{
width: 200px;
height: 50px;
}
img{
width: 100px;
height: 50px;
position: relative;
top: 20px;
}
- ![](https://imgconvert.csdnimg.cn/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzY0Nzk4Mi1mYWYyYTRjMjk1NDg4ZWQ5LnBuZw?x-oss-process=image/format,png)
- ![](https://imgconvert.csdnimg.cn/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzY0Nzk4Mi1mOWZjMDBlMDgzZjAxY2I4LnBuZw?x-oss-process=image/format,png)
配合后面学习的绝对定位来使用
什么是绝对定位?
格式:
position: absolute;
示例代码
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
}
.box1{
background-color: red;
}
.box2{
background-color: green;
position: absolute;
left: 0;
top: 0;
}
.box3{
background-color: blue;
}
style>
<div class="box1">div>
<div class="box2">div>
<div class="box3">div>
<style>
*{
margin: 0;
padding: 0;
}
.box1{
width: 300px;
height: 300px;
background-color: red;
border: 10px solid #000;
padding: 30px;
position: relative;
box-sizing: border-box;
}
.box2{
width: 100px;
height: 100px;
background-color: green;
position: absolute;
left: 0;
top: 0;
}
style>
<div class="box1">
<div class="box2">div>
div>
<style>
*{
margin: 0;
padding: 0;
}
.box1{
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.box2{
width: 200px;
height: 200px;
background-color: green;
}
.box3{
width: 100px;
height: 100px;
background-color: blue;
position: absolute;
left: 0;
bottom: 0;
}
style>
<div class="box1">
<div class="box2">
<div class="box3">div>
div>
div>
<style>
*{
margin: 0;
padding: 0;
}
.box1{
width: 300px;
height: 300px;
background-color: red;
position: relative;
}
.box2{
width: 200px;
height: 200px;
background-color: green;
position: relative;
}
.box3{
width: 100px;
height: 100px;
background-color: blue;
position: absolute;
left: 0;
bottom: 0;
}
style>
<div class="box1">
<div class="box2">
<div class="box3">div>
div>
div>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>74-绝对定位水平居中title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 400px;
height: 50px;
background-color: red;
position: absolute;
/*无效*/
/*margin: 0 auto;*/
/*有效*/
left: 50%;
margin-left:-200px;
}
style>
head>
<body>
<div>div>
body>
html>
企业开发中一般相对定位和绝对定位都是一起出现, 很少单独使用
为什么要子绝父相?
<html lang="en">
<head>
<meta charset="UTF-8">
<title>71-子绝父相title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
width: 800px;
height: 50px;
background-color: red;
list-style: none;
margin: 0px auto;
margin-top: 100px;
}
li{
width: 100px;
/*height: 50px;*/
line-height: 50px;
float: left;
background-color: gray;
text-align: center;
}
.li03{
background-color: darkgray;
position: relative;
}
ul li img{
/*
缺点以前的位置仍然被占用, 不能让文字居中对齐
*/
/*position: relative;
left: -35px;
top: -15px;*/
/* 浏览器调整之后位置会发生变化*/
/* position: absolute;
top: 95px;
left: 535px;*/
position: absolute;
left: 37px;
top: -5px;
}
style>
head>
<body>
<ul>
<li>服装城li>
<li>美妆馆li>
<li>京东超市li>
<li class="li03">全球购![](hot.png)li>
<li>闪购li>
<li>团购li>
<li>拍卖li>
<li>江哥li>
ul>
body>
html>
什么是固定定位?
格式:
position: fixed;
示例代码
<html lang="en">
<head>
<meta charset="UTF-8">
<title>74-固定定位title>
<style>
*{
margin: 0;
padding: 0;
}
p{
width: 100px;
}
a{
width: 50px;
height: 50px;
background-color: rgba(0, 0, 0, 0.3);
border-radius: 25px;
text-decoration: none;
text-align: center;
color: #000;
position: fixed;
right: 10px;
bottom: 10px;
}
style>
head>
<body>
<p>我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字p>
<a href="#">^<br>顶部a>
body>
html>
固定定位注意点:
固定定位应用场景:
什么是静态定位?
静态定位应用场景:
什么是z-index值?
定位元素的覆盖关系: