html css 笔记

01_浏览器相关知识

五大主流浏览器:

Chrome Safari IE Firefox Opera (拥有自己的内核)

四大内核:

webkit Trident Gecko blink.

02_网页相关知识

构成

网址 网站 网页

网页标准:

结构 表现 行为 分别对应 HTML CSS JavaScript

03_HTML简介

HTML是什么

译为:标记语言

超文本:比普通的文本信息含量更多

04_HTML初体验

保存:Ctrl+S

后缀:.html

程序员写的叫源代码

滚动效果标签:

<marquee> </marquee>

效果:

滚动

05_HTML标签

标签又称元素

<>起始标签 < />结束标签 中间为标签体

输入框<input>(单标签)

标签可以嵌套

可以使用tab键缩进

输入框效果:

06_HTML初体验

属性名+属性值

不同标签能写的属性不同

标签里不要出现同名属性

一个标签里的属性不能重复

有些特殊属性没有属性名只有属性值 如:<input disabled>

效果:


其他标签属性演示:

滚动一次

07_HTML基本结构

基本结构如下

	<html> 
			<head></head>
			<body>
			</body>
	</html>

标题<title></title>

08_HTML注释

注释作用

为了让自己或者同事以后能看懂代码

解释说明代码

增加代码可读性

注释代码

<!-- -->

注:注释不能嵌套

注释的额外功能

使某些代码暂时不运行

注释快捷键

ctrl+/

09_HTML文档声明

文档声明的作用

告诉网页用的什么版本的语言

不同版本有不同的文档声明写法

旧的文档声明写法去W3C官网查(了解即可)

HTML5的文档声明写法

<!DOCTYPE html>
h5文档声明必须放在第一行且放在html标签的外侧

010_HTML字符编码

编码与解码

编码:将文本对应字符集转换成机器语言

解码:将机器语言对应字符集转换回文本

编码一般默认为UTF-8编码

为了防止浏览器出现问题可加入

<head>  
    <meta charset="UTF-8"/>
</head>
编码
ASCLL编码

包含 大写字母 小写字母 数字 一些符号 共计128个

ISO 8859-1

在ASCLL基础上扩充一些希腊字符 共计256个

GB2312

GB:国标

继续扩充 收录6763个常用汉字 682个字符

GBK

K:扩充

收录汉字符号共计20000+ 支持繁体中文

UTF-8

万国码

包含世界上所有语言的 所有文字与符号
很常用

编码原则
原则1

存储时 务必采用合适的字符编码

否则 无法存储 数据会丢失

原则2

存储时采用的哪种方式编码 读取时就必须采用相同方式解码

否则数据能呈现 但数据错乱(乱码)

011_HTML设置语言

主要作用

让浏览器显示对应的翻译提示

有利于搜索引擎优化

具体写法

<html> lang="zh-CN"

扩展:

第一种写法:语言-国家/地区

第二种写法:语言-具体种类(不推荐使用)

012_HTML标准结构

结构快捷键

英文!+enter

剪切快捷键

ctrl+shift+k 快速剪切

配置网页图标后缀

.ico

013_HTML开发者文档

优质网站

W3c

W3school

MDN (最常用)

014_HTML排版标签

标题标签

<h1></h1>一级标题 标题共6级
一级标题最好只写一个
h1到h6不能互相嵌套

段落标签

<p></p>
p标签不能嵌套 h标签 p标签 div

套入盒子

<div></div>

不打断文本回车快捷键

ctrl+enter

015_HTML语义化标签

概念

特定的标签表达特定的含义

原则

标签默认的效果不重要语义最重要

语义化的好处

代码的可读性强

有利于SEO(搜索引擎优化)

方便设备解析(屏幕阅读器,盲人阅读器)

016_HTML块级元素与行级元素

快速向下复制快捷键

alt+shift+↓

块级元素

独占一行的元素

行内元素

只占自己一小部分地方的元素

规则

  1. 块级元素中几乎什么都能写(块级元素,行级元素)
  2. 行内元素里能写行内元素 但不能写块级元素
  3. h1到h6不能嵌套
  4. p标签中不能写块级元素

marquee标签废除的原因

设计初衷是想要动画效果 但是如今已经有css可以实现动画效果 所以过时了

017_HTML常用的文本标签

  1. 用于包裹词汇 短语等
  2. 通常写在排版标签里面
  3. 排版标签更宏观(大段的文字),文本标签更微观(词汇,短语)[[]]
  4. 文本标签通常都是行内元素

常用的

  • em 要着重阅读的内容 双标签
  • strong 十分重要的内容(语气比em要强) 双标签
  • span 没有语义,用于包裹短语的通用容器 双标签

018_HTML不常用的文本标签

  • cite 作品标题 双
  • dfn 特殊术语或专属名词 双
  • del与ins 删除的文本与插入的文字 双
  • sub与sup 下标文字与上标文字 双
  • code 一段代码 双
  • samp 从正常的上下午中,将某些内容提取出来,例如:标识设备输出 双
  • kbd 键盘文本,表示文本是通过键盘输入的,经常在与计算机相关的手册中 双
  • abbr 缩写,最好配合上title属性 双
  • bdo 更改文本方向,要配合dir属性,可选值:ltr(默认值),rtl 双
  • var 标记变量,可以与code标签一起使用 双
  • small 附属细则,例如:包括版权,法律文本,------很少使用 双
  • b 摘要中的关键字,评论中的产品名称------很少使用 双
  • i 本意是:任务的思想活动,所说的话等等。现在多用于:呈现字体图标 双
  • u 与正常内容有反差文本,例如:错的单词,不合适的描述等------很少使用 双
  • q 短引用------很少使用 双
  • blockquote 长引用------很少使用 双 块级元素
  • address 地址信息 双 块级元素
  • br 分行 单
  • hr 分割线 单

HTML标签太多了! 记住重要的 语义感强的就行

019_HTML图片标签

基本使用

img 图片 单
常用属性

arc:图片路径

alt图片描述

width:图片宽度

height:图片高度

单位:px

尽量不同时修改图片宽高,可能会导致失真


alt属性作用:

  • 搜索引擎通过alt属性,得知图片内容------最主要的作用
  • 当图片无法显示的时候,有些浏览器会呈现alt属性的值
  • 盲人阅读器会阅读alt属性的值

020_HTML相对路径与绝对路径

相对路径

写下程序不能随便改文件位置,否则位置发生变化,程序运行失败


./ 当前位置

上一级加 . ./

下一级加/

绝对路径

本地绝对路径(几乎不用)

最大特点:从盘符出发

盘符名后加":"

最大缺点:不方便他人使用代码 不能换设备

网络绝对路径

网址对应的必须是一个图片

防盗链:不允许他人使用他的图片

整个界面快捷键

ctrl+shift+"+" 整个界面放大

021_常见图片格式

jpg格式:
  • 概述:扩展名为.jpg或.jpeg,是一种有损的压缩格式(把肉眼不容易观察出来的细节丢弃了)。
  • 主要特点:支持的颜色丰富、占用空间较小、不支持透明背景、不支持动态图.
  • 使用场景:对图片细节没有极高要求的场景,例如:网站的产品宣传图等。--该格式网页中很常见。
png格式:
  • 概述:扩展名为.png,是一种无损的压缩格式,能够更高质量的保存图片。
  • 主要特点:支持的颜色丰富 、占用空间略大、支持透明背景、不支持动态图。
  • 使用场景:①想让图片有透明背景;②想更高质量的呈现图片;例如:公司logo图、重要配图等。
bmp格式:
  • 概述:扩展名为.bmp,不进行压缩的一种格式,在最大程度上保留图片更多的细节。
  • 主要特点:支持的颜色丰富、保留的细节更多、占用空间极大、不支持透明背景、不支持动态图。
  • 使用场景:对图片细节要求极高的场景,例如:一些大型游戏中的图片。(网页中很少使用)
gif格式
  • 概述:扩展名为.gif,仅支持256种颜色,色彩呈现不是很完整。
  • 主要特点:支持的颜色较少、支持简单透明背景、支持动态图。
  • 使用场景:网页中的动态图片。
webp格式
  • 概述:扩展名为.webp,谷歌推出的一种格式,专门用来在网页中呈现图片。
  • 主要特点:具备上述几种格式的优点,但兼容性不太好,一旦使用务必要解决兼容性问题。
  • 使用场景:网页中的各种图片。
base64格式
  • 1.本质:一串特殊的文本,要通过浏览器打开,传统看图应用通常无法打开。
  • 2.原理:把图片进行base64编码,形成一串文本。
  • 3.如何生成:靠一些工具或网站。
  • 4.如何使用:直接作为img标签的src属性的值即可,并且不受文件位置的影响。
  • 5.使用场景:一些较小的图片,或者需要和网页一起加载的图片。

022_超链接_跳转页面

主要作用:

从当前页面进行跳转

超链接基本知识

标签名

`

常用属性

href: 要跳转到的具体位置

target:跳转时如何打开页面,常用值如下;
_self:在本页签中打开
_blank:在新页签中打开

跳转到页面

<!-- 跳转其他网页-->
<a href="https://www.jd.com/" target="_blank">去京东</a>
<!--跳转本地网页-->
<a href="./10_HTML排版标签,html"target="_self">去看排版标签</a>

注意:

1.代码中的多个空格、多个回车,都会被浏览器解析成一个空格!

2.虽然a是行内元素,但a元素可以包裹除它自身外的任何元素!

023_超链接_跳转文件

跳转到文件

<!-- 浏览器能直接打开的文件-->
<a 
  href="./resource/自拍,jpg">看自拍
</a>
<a href="./resource/小电影.mp4">看小电   影
</a>
<a href="./resource/小姐姐,gif">看小    姐姐
</a>
<a href="./resource/如何一夜暴富.pdf">   点我一夜暴富
</a>
<!--浏览器不能打开的文件,会自动触发下载-->
<a 
  href="./resource/内部资源.zip">内部   资源
</a>
<!--强制触发下载-->
<a href="./resource/小电影.mp4"         download="电影片段,mp4">下载小电影
</a>

注意1:若浏览器无法打开文件,则会引导用户下载。

注意2:若想强制触发下载,请使用download属性,属性值即为下载文件的名称。

024_超链接_跳转锚点

什么是锚点

网页中的标记点

具体使用方式

第一步:设置锚点

<!-- 第一种方式:a标签配合name属性-->
<a name="test1"></a>
<!-- 第二种方式:其他标签配合id属性-->
<h2 id="test2">我是一个位置</h2>

注意点:

  1. 具有href 属性的a标签是超链接,具有name属性的a标签是锚点。
  2. name和id都是区分大小写的,且id 最好别是数字开头。

第二步:跳转锚点

<!--跳转到test1锚点-->
<a href="#test1">去test1锚点</a>
<!-- 跳到本页面顶部 -->
<a href="#">回到顶部</a>
<!-- 跳转到其他页面锚点-->
<a href="demo.html#test1">去demo.html页面的test1锚点</a>
<!-- 刷新本页面-->
<a href="">刷新本页面</a>
<!-- 执行一段js,如果还不知道执行什么,可以留空,javascript:;-->
<a href="javascript:alert(1);">点我弹窗</a>

025_超链接_跳转锚点

通过a标签可以换起应用程序

<!-- 唤起设备拨号-->
<a href="tel:10010">电话联系</a>
<!-- 唤起设备发送邮件-->
<a href="mailto:10@10@qq.com">邮件联系</a>
<!--唤起设备发送短信-->
<a href="sms:10086">短信联系</a>

026_超文本的真正含义

超文本:是一种组织信息的方式,通过超链接将不同空间的文字、图片、等各种信息组织在一起,能从当前阅读的内容,跳转到超链接所指向的内容。


内容:页面 文件 锚点 应用、

027_列表

有序列表(Ordered list) <ol>

无序列表(Unordered list) <ul>

自定义列表(Definition List) <dI>


  1. 有序
  2. 有序

  • 无序
  • 无序

028_列表_注意事项

有序列表

概念:有顺序或侧重顺序的列表

<h2>要把大象放冰箱总共分几步</h2>
<ol>
    <li>把冰箱门打开</li>
    <li>把大象放进去</li>
    <li>把冰箱门关上</li>
</0l>

无序列表

概念:无顺序或不侧重顺序的列表

<h2>我想去的几个城市</h2>
<ul>
    <li>成都</li>
    <li>上海</li>
    <li>西安</li>
    <li>武汉</li>
</ul>

列表嵌套

概念:列表中的某项内容,又包含一个列表(注意:嵌套时,请务必把解构写完整)。

<h2>我想去的几个城市</h2>
<ul>
 <li>成都</li>
  <li>
     <span>上海</span>
    <ul>
        <li>外滩</li>
        <li>杜莎夫人蜡像馆</li>
        <li><a href="https://www.opg.cn/">东方明珠              </a>
        </li>
        <li>迪士尼乐园</li>
    </ul>
 </li>
 <li>西安</li>
 <li>武汉</li>
</ul>

注意:li标签最好写在ul或ol中,不要单独使用。

自定义列表

1.概念:所谓自定义列表,就是一个包含术语名称以及术语描述的列表。

2.一个d1就是一个自定义列表,一个dt就是一个术语名称,一个dd就是术语描述(可以有多个)。

<h2>如何高效的学习?</h2>
    <dl>
        <dt>做好笔记</dt>
        <dd>笔记是我们以后复习的一个抓手         </dd>    
        <dd>笔记可以是电子版,也可以是纸         质版</dd> 
        <dt>多加练习</dt>
        <dd>只有敲出来的代码,才是自己的         </dd>
        <dt>别怕出错</dt>
        <dd>错很正常,改正后并记住,就是         经验</dd>
    </dl>

029_表格_基本结构

结构

一个完整的表格由:表格标题 表格头部 表格主体 表格脚注 四部分组成

涉及到的标签

table:表格

caption:表格标题

thead:表格头部

tbody:表格主体

tfoot:表格脚注

tr:每一行

tr,td:每一个单元格(备注: 表格头部中用th,表格主体 表格脚注中用:td

030_表格_常用属性

table

表格 双标签

  • width:设置表格宽度
  • height:设置表格最小高度,表格最终高度可能比设置的值大
  • border:设置表格边框的宽度
  • cellspacing:设置单元格之间的间距

thead

表格头部 双标签

  • height:设置表格头部高度
  • align:设置单元格的水平对齐方式,可选值如下
  1. left 左对齐
  2. center 中间对齐
  3. eight 右边对齐
  • valign:设置单元格的垂直对齐方式,可选值如下
  1. top 顶部对齐
  2. middle 中间对齐
  3. bottom 底部对齐

tbody

表格主体 双标签

常用属性与thead相同

tr

行 双标签

常用属性与thead相同

tfoot

表格脚注 双标签

常用属性与thead相同

td

普通单元格 双标签

  • width:设置单元格的宽度,同列所有单元格全都受影响
  • height:设置单元格的高度,同行所有单元格全都受影响
  • align:设置单元格的水平对齐方式
  • valign:设置单元格的垂直对齐方式
  • rowspan:指定要跨的行数
  • colspan:指定要跨的列数

th

表格单元格 双标签

常用属性与td相同


注意:

1.<table>元素的border 属性可以控制表格边框,但border值的大小,并不控制单元格边框的宽度。

2.给某个th或td设置了宽度之后,他们所在的那一列的宽度就确定了。

3.给某个th或td设置了高度之后,他们所在的那一行的高度就确定了。

031_表格_跨行与跨列

  • rowspan:指定要跨的行数
  • colspan:指定要跨的列数

032_补充几个常用的标签

br:换行 单标签

hr:分隔 单标签

pre:按原文显示(一般用于在页面内嵌入大段代码)双标签


注意:

1.不要用<br>来增加文本之间的行间隔,应使后面即将学到的CSS margin 属性。

2.<hr>的语义是分隔,如果不想要语义,只是想画一条水平线,那么应当使用CSS完成。

033_表单_基础结构

form

表单 双标签

  • acyion:用于指定表单的提交地址(需要与后端人员沟通后确定)
  • target:用于控制表单提交后,如何打开页面 常用值如下
  1. -self:在窗口打开_
  2. _blank:在新窗口打开_
  • method:用于控制表单的提交方式

input

输入框 单标签

  • type:设置输入框的类型,目前用到的值是text,表示普通文本
  • name:用于指定提交数据的名字,(需要与后端人员沟通后确定)

button

按钮 双标签


示例:

<form action="https://www.baidu.com/s"<input type="text" name="wd">
<button>去百度搜索</button>

034_表单_文本框与密码框

文本输入框

<input type="text">

常用属性如下:

  • name:数据的名称
  • value:输入框的默认输入值
  • maxlength:输入框最大可输入长度

密码输入框

<input type="password">

常用属性如下:

  • name数据的名称
  • value:输入框的默认输入值(一般不用,无意义)
  • maxlength:输入框最大可输入长度

单选框

<input type="radio" name="sex" value="female">女
<input type="radio" name="sex" value="male">男

常用属性如下:

  • name 属性:数据的名称,注意:想要单选效果,多个radio的name属性值要保持一致。
  • value 属性:提交的数据值。
  • checked属性:让该单选按钮默认选中。

复选框

<input type="checkbox" name="hobby" value="smoke">吸烟
<input type="checkbox" name="hobby" value="drink">喝酒
<input type="checkbox" name="hobby" value="perm">烫头

常用属性如下:

  • name 属性:数据的名称。
  • value 属性:提交的数据值。
  • checked 属性:让该复选框默认选中。

影藏域

<input type="hidfen" namr="tag" value="100">
  • 用户不可见的一个输入区域,
  • 作用是:提交表单的时候,携带一些固定的数据。
  • name属性:指定数据的名称。
  • value 属性:指定的是真正提交的数据。

提交按钮

<input type="submit"value="点我提交表单">
<button>点我提交表单</button>

注意:

  1. button 标签type属性的默认值是submit。
  2. button 不要指定name 属性
  3. input 标签编写的按钮,使用value 属性指定按钮文字。

重置按钮

<input type="reset"
value="点我重置"><button type="reset">点我重置</button>

注意:

  1. button 不要指定name 属性
  2. input 标签编写的按钮,使用value 属性指定按钮文字。

普通按钮

<input type="button"value="普通按钮">
<button type="button">普通按钮</button>

注意点:

普通按钮的type值为button,若不写type值是submit会引起表单的提交。

文本域

<textarea name="msg" rows="22"
cols="3">我是文本域</textarea>

常用值如下:

  • rows 属性:指定默认显示的行数,会影响文本域的高度。
  • cols 属性:指定默认显示的列数,会影响文本域的宽度。
  • 不能编写type属性,其他属性,与普通文本输入框一致。

下拉框

select name="from">
<option value="黑">黑龙江</option>   <option value="辽">辽宁</option><option value="吉">吉林</option><option value="粤"
selected>广东</option>
</select>

常用属性及注意事项:

  • name 属性:指定数据的名称。
  • option 标签设置value 属性,如果没有value属性,提交的数据是option中间的文字;如果设置了value 属性,提交的数据就是value的值(建议设置value属性)
  • option 标签设置了selected 属性,表示默认选中

禁用表单控件

  • 表单控件的标签设置disable既可禁用表单控件
  • input tsextarea button select option都可以设置disable属性

label标签

label标签可与表单控件相关联,关联之后点击文字,与之对应的表单控件就会获取焦点。


两种与label关联方式如下:

  1. 让label标签的for 属性的值等于表单控件的id。
  2. 把表单控件套在labe1标签的里面。

fieldset 与legend 的使用

fieldset 可以为表单控件分组、legend标签是分组的标题。

<fieldset>
  <legend>主要信息</legend>
  <label for="zhanghu">账户:</label>
  <input id="zhanghu" type="text"     name="account" maxlength="10"><br>
  <label>
    密码:
    <input id="mima"                    type="password"    name="pwd"       maxlength="6">
  </label>
  <br>
  性别:
  <input type="radio" name="gender"   value="male" id="nan">
  <label for="nan">男</label>
  <label>
    <input type="radio"                  name="gender"
  </label>
</fieldset>

035_框架标签

iframe

双标签

功能和语义:框架(在网页中嵌入其他文件)

属性:

  • name:框架名字 可以写target属性配合
  • width:框架的宽
  • height:框架的高度
  • frameborder:是否显示边框 值:0或1

iframe 标签的实际应用:

  1. 在网页中嵌入广告。
  2. 与超链接或表单的target配合,展示不同的内容。

036_HTML实体

在HTML中我们可以用一种特殊的形式的内容,来表示某个符号,这种特殊形式的内容,就是HTML实体。比如小于号<用于定义HTML标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在HTML 源码中插入字符实体。

字符实体由三部分组成:一个&和一个实体名称(或者一个#和一个实体编号),最后加上一个分号;

常用字符实体总结

  • 空格 &nbsp; &#160;
  • 小于号 &lt; &#60;
  • 大于号&gt; &#62;
  • 和号 &amp; &#38;
  • &yen; &#165;
  • 版权 &copy; &#169;
  • 乘号 &times &#215;
  • 除号 &divide; &#247;

037_HTML全局属性

常用的全局属性:

id

含义:

给标签指定唯一标识,注意:id是不能重复的。

作用:可以让label标签与表单控件相关联;也可以与CSS、JavaScript配合使用。

注意:不能在以下 HTML元素中使用:

<head>、<html>、<meta>、
<script>、<style>、<title>

class

含义:

给标签指定类名,随后通过CSS就可以给标签设置样式。

style

含义:

给标签设置css样式

dir

含义:

内容的方向,值:ltr、rtl。

注意:不能在以下 HTML元素中使用:

<head>、<html>、<meta>、
<script>、<style>、<title>。

title

含义:

给标签设置一个文字提示,一般超链接和图片用的比较多

lang

含义:

给标签指定语言,具体规范和可选值请参考【10.HTML设置语言】。

注意:不能在以下 HTML 元素中使用:

<head>、<html>、<meta>、
<script>、<style>、<title>

完整列表查看:MDN网站

038_meta元信息

举例

  1. 配置字符编码
    <meta charset="utf-8">
  2. 针对IE浏览器的兼容性配置。
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  3. 针对移动端的配置(移动端课程中会详细讲解)
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4. 配置网页关键字
    <meta name="keywords"content="8-12个以英文逗号隔开的单词/词语">
  5. 配置网页描述信息
    <meta name="description" content="80字以内的一段话,与网站内容相关">
  6. 针对搜索引擎爬虫配置:
    <meta name="robots" content="此处可选值见下表">
  7. 配置网页作者:
    <meta name="author" content="tony">
  8. 配置网页生成工具
    <meta name="generator" content="Visual Studio Code">
  9. 配置定义网页版权信息:
    <meta name="copyright"content="2023-2027e版权所有">
  10. 配置网页自动刷新
    <meta http-equiv="refresh" content="10;url=http://www.baidu.com">

index

允许搜索爬虫索引此页面

noindex

要求搜索爬虫不索引此页面

follow

允许搜索爬虫跟随此页面上的链接

nofollow

要求搜索爬虫不跟随此页面上的链接

all

与 index follow等价

none

与 noindex nofollow等价

noarchive

要求搜索引擎不缓存页面内容

nocache

noarchive的替代名称

040_CSS基础

  • css 的全称为:层叠样式表(Cascading StyleSbeets)。
  • css 也是一种标记语言,用于给HTML结构设置样式,例如:文字大小、颜色、元素宽高等。
  • 简单理解:CSS可以美化HTML,让HTML 更漂亮。
  • 核心思想:HTML 搭建结构,CSS 添加样式,实现了:结构与样式的分离。

041_CSS的编写位置

行内样式

  • 写在标签的sryle属性中。(又称:内嵌样式)
  • 语法:
    <h1 style="color:red;font-size:60px;">欢迎来到尚硅谷学习</h1>
  • 注意点:
  1. style 属性的值不能随便写,写要符合CSS 语法规范,是(名:值;)的形式。
  2. 行内样式表,只能控制当前标签的样式,对其他标签无效。
  • 存在的问题:
    书写繁琐、样式不能复用、并且没有体现:出结构与样式分离 的思想,不推荐大量使用,只有对当前元素添加简单样式时,才偶尔使用。

内部样式

  • 写在html页面内部,将所有的css代码提取出来,单独放在<style>标签中。

  • 语法:

    <style> h1 { color: red; font-size:40px; } </style>
  • 注意点:

  1. <style>标签理论上可以放在HTML文档的任何地方,但一般都放在<head>标签中。
  2. 此种写法:样式可以复用、代码结构清晰。
  • 存在的问题:
  1. 并没有实现:结构与样式完全分离。
  2. 多个HTML页面无法复用样式。

外部样式

  • 写在单独的,css文件中,随后在HTML文件中引入使用。
  • 语法:
  1. 新建一个扩展名为.css的样式文件,把所有CSS代码都放入此文件中。

    h1{
    color: red;
    font-size: 40px;
    }

  2. 在HTML文件中引入.css文件。

    <link rel="stylesheet" href=./xxx.css>
  • 注意点:
  1. <link>标签要写在<head>标签中。
  2. <link>标签属性说明:
  • href:引入的文档来自于哪里。
  • rel:(relation:关系)说明引入的文档与当前文档之间的关系。
  1. 外部样式的优势:样式可以复用、结构清晰、可触发浏览器的缓存机制,提高访问速度,实现了结构与样式的完全分离。
  2. 实际开发中,几乎都使用外部样式,这是最推荐的使用方式!

042_样式表的优先级

  • 优先级规则:行内样式>内部样式=外部样式
  1. 内部样式、外部样式,这二者的优先级相同,且:后面的会覆盖 前面的(简记:"后来者居上")。
  2. 同一个样式表中,优先级也和编写顺序有关,且:后面的 会覆盖 前面的(简记:"后来者居上")。

行内样式

优点: 优先级最高

缺点:

  1. 结构与样式未分离
  2. 代码结构混乱
  3. 样式不能复用
    使用频率:很低
    作用范围:当前标签

内部样式

优点:

  1. 样式可复用
  2. 代码结构清晰
    缺点:
  3. 结构与样式未彻底分离
  4. 样式不能多页面复用
    使用频率:一般
    作用范围:当前页面

外部样式

优点:

  1. 样式可多页面复用
  2. 代码结构清晰
  3. 可触发浏览器的缓存机制
  4. 结构与样式彻底分离
    缺点:需要引入才能使用
    使用频率:最高
    作用范围:多个页面

043_CSS语法规范

css语法由两部分组成:

  • 选择器:找到要添加样式的元素。

  • 声明块:设置具体的样式(声明块是由一个或多个声明组成的),声明的格式为:属性名:属性值;
    (备注1:最后一个声明后的分号理论上能省略,但最好还是写上。
    备注2:选择器与声明块之间,属性名与属性值之间,均有一个空格,理论上能省略,但最好还是写上。)

  • 注释的写法:

    /给h1元素添加样式/
    h1{
    /*设置文字颜色为红色 */
    color: red;
    /设置文字大小为48px/
    font-size:40px
    }

044_CSS代码风格

  • 展开风格------开发时推荐,便于维护和调试

    h1{
    color: red;
    font-size:40px;
    }

  • 紧凑风格------项目上线时推荐,可减小文件的体积。

    h1{color:red;font-size:40px;}

备注:项目上线时,我们会通过工具将【展开风格】的代码,变成【紧凑风格】,这样可以减小文件体积,节约网络流量,同时也能让用户打开网页时速度更快。

045_CSS基本选择器

基本选择器包括:

  1. 通配选择器
  2. 元素选择器
  3. 类选择器
  4. id选择器

通配选择器

  • 作用:可以选中所有的HTML元素。

  • 语法:

    *{
    属性名:属性值;
    }

  • 举例:

    *{
    /*选中所有元素 */color: orange;
    font-size:40px;
    }

备注:目前来看通配选择器貌似有点鸡肋,但后面清除样式时,会对我们有很大帮助,后面会详细讲。

元素选择器

  • 作用:为页面中 某种元素 统一设置样式。

  • 语法:

    标签名{
    属性名:属性值;
    }

  • 举例:

    /选中所有h1元素/
    h1{
    color:orange;
    font-size: 40px;
    }
    /选中所有p元素/
    p{
    color:
    blue;font-size:60px;
    }

备注:元素选择器无法实现差异化设置,例如上面的代码中,所有的p元素效果都一样。

类选择器

  • 作用:根据元素的class值,来选中某些元素。(class 翻译过来有:种类、类别的含义,所以class值,又称:类名。)

  • 语法:

    .类名{
    属性名:属性值;
    }

  • 举例:

    /选中所有class值为speak的元素/
    .speak{
    color: red;
    }
    /选中所有class值为answer的元素/
    .answer {
    color:blue;
    }

  • 注意点:

  1. 元素的class属性值不带,,但CSS的类选择器要带

  2. class值,是我们自定义的,按照标准:不要使用纯数字、不要使用中文、尽量使用英文与数字的组合,若由多个单词组成,使用一做连接,例如:left-menu,且命名要有意义,做到"见名知意"。

  3. 一个元素不能写多个class 属性,下面是错误示例:

    <!--该写法错误,元素的属性不能重复,后写的会失效-->

    你好啊

  4. 一个元素的class属性,能写多个值,要用空格隔开,例如:

    <!--该写法正确,class属性,能写多个值

    你好啊

ID选择器

  • 作用:根据元素的id属性值,来精准的选中某个元素。

  • 语法:

    #id值{
    属性名:属性值;
    }

  • 举例:

    /选中id值为earthy的那个元素/
    #earthy{
    color:red;
    font-size: 60px;
    }

  • 注意:

  • id属性值:尽量由字母、数字、下划线( _ )、短杠(-)组成,最好以字母开头、不要包含空格、区分大小写。

  • 一个元素只能拥有一个id 属性,多个元素的id 属性值不能相同。

  • 一个元素可以同时拥有id和class属性。

总结

  • 通配选择器:选中所有标签,一般用于清除样式。
  • 元素选择器:选中所有同种标签,但是不能差异化选择。
  • 类选择器:选中所有特定类名(class值)的元素----使用频率很高。
  • ID选择器:选中特定id值的那个元素(唯一的)。

046_ 交集选择器

  • 作用:选中同时符合多个条件的元素。(交集有并且的含义(通俗理解:即.........又......的意思),例如:年轻且长得帅。)

  • 语法:选择器1选择器2选择器3...选择器n {}

  • 举例:

    /选中:类名为beauty的p元素,为此种写法用的非常多!!!!/
    p.beauty{
    color:blue;
    }
    /*选中:类名包含rich和beauty的元素
    .rich.beauty {
    color: green;
    }

  • 注意:

  1. 有标签名,标签名必须写在前面。
  2. id选择器、理论上可以作为交集的条件,但实际应用中几乎不用----因为没有意义。
  3. 交集选择器中不可能出现两个元素选择器,因为一个元素,不可能即是p元素又是span元素。
  4. 用的最多的交集选择器是:元素选择器配合类名选择器,例如:p.beauty。

047_并集选择器

  • 作用:选中多个选择器对应的元素,又称:分组选择器。(所谓并集就是或者的含义(通俗理解:要么......要么......的意思),例如:给我转10万块钱或者我报警。)

  • 语法:选择器1,选择器2,选择器3,...选择器n {}
    (多个选择器通过,连接,此处,的含义就是:或。)

  • 举例:

    /*选中id为peiqi,或类名为rich,或类名为beauty的元素 */
    #peiqi,
    .rich,
    .beauty {
    font-size: 40px:
    background-color: skyblue;
    width:200px;
    }

  • 注意:

  1. 并集选择器,我们一般竖着写。
  2. 任何形式的选择器,都可以作为并集选择器的一部分。
  3. 并集选择器,通常用于集体声明,可以缩小样式表体积。

048_元素辈分关系

  • 父元素:
    包裹某个元素的元素,就是该元素的父元素。
  • 子元素:
    被父元素包含的元素(简记:儿子元素)。
  • 祖先元素:
    父亲的父亲....,一直往外找,都是祖先。
    (备注:父元素,也算是祖先元素的一种。
    例如:张三的父亲,也算是张三的祖先,但一般还是称呼:父亲。)
  • 后代元素:儿子的儿子...,一直往里找,都是后代。
    (备注:子元素,也算是后代元素的一种。
    例如:张三的儿子,也算是张三的后代,但一般还是称呼:儿子。)
  • 兄弟元素:具有相同父元素的元素,互为兄弟元素。

049_后代选择器

  • 作用:选中指定元素中,符合要求的后代元素。

  • ·语法:选择器1 选择器2 选择器3 ...... 选择器n {}
    (选择器之间,用空格隔开,空格可以理解为:"xxx中的",其实就是后代的意思。
    选择器1234...n,可以是我们之前学的任何一种选择器。)

  • 举例:

    /* 选中ul中的所有li*/
    ul li{
    color:red;
    }
    /选中ul中所有11中的a/
    ul l1 a{
    color:orange:
    }
    /选中类名为subject元素中的所有li/
    .subject li {
    color:blue;
    }
    /* 选中类名为subject元素中的所有类名为front-end的li*/
    .subject li.front-end {
    color: blue;
    }

  • 注意:

  1. 后代选择器,最终选择的是后代,不选中祖先。
  2. 儿子、孙子、重孙子,都算是后代。
  3. 结构一定要符合之前讲的 HTML 嵌套要求,例如:不能p中写h1~h6。

050_子代选择器

  • 作用:选中指定元素中,符合要求的子元素(儿子元素)。(先写父,再写子)
    (子代选择器又称:子元素选择器、子选择器。)

  • 语法:选择器1>选择器2>选择器3>......选择器n {} (选择器之间,用>隔开,>可以理解为:"xxx的子代",其实就是儿子的意思。选择器1234...n,可以是我们之前学的任何一种选择器。)

  • 举例:

    /* div中的子代a元素 */
    div>a {
    color: red;
    }
    /类名为person的元素中的子代a元素/
    .persons>a {
    color:red;
    }

  • 注意:

  1. 子代选择器,最终选择的是子代,不是父级。
  2. 子、孙子、重孙子、重重孙子 ...... 统称后代!子就是指儿子.

051_兄弟选择器

相邻兄弟选择器

  • 作用:选中指定元素后,符合条件的相邻兄弟元素。(所谓相邻,就是紧挨着他的下一个,简记:睡在我下铺的兄弟。)

  • 语法:选择器1+选择器2 {}

  • 示例:

    /* 选中div后相邻的兄弟p元素 */
    div+p{
    color:red;
    }

通用兄弟选择器

  • 作用:选中指定元素后,符合条件的所有兄弟元素。(简记:睡在我下铺的所有兄弟)

  • 语法:选择器1~选择器2 {}

  • 示例:

    /*选中div后的所有的兄弟p元素 */
    div~p{
    color:red;
    }

  • 注意:两种兄弟选择器,选择的是下面的兄弟。

052_属性选择器

  • 作用:选中属性值符合一定要求的元素。
  • 语法:
  1. [属性名]选中具有某个属性的元素。
  2. [属性名="值"] 选中包含某个属性,且属性值等于指定值的元素。
  3. [属性名^="值"] 选中包含某个属性,且属性值以指定的值开头的元素。
  4. [属性名$="值"]选中包含某个属性,且属值以指定的值结尾的元素。
  5. [属性名*="值"]选择包含某个属性,属性值包含
  • 举例:

    /选中具有title属性的元素/
    div[title]{color:red; }
    /*选中title属性值为atguigu的元素 */
    div[title="atguigu"]{color:red;}
    /选中title属性值以a开头的元素/
    div[title^="a"]{color:red;}
    /*选中title属性值以u结尾的元素 */
    div[titleS="u"]{color:red; }
    /*选中title属性值包含g的元素 /
    div[title
    ="g"]{color:red;}

053_伪类选择器

  • 作用:选中特殊状态的元素。
  1. 如何理解"伪"------虚假的,不是真的。
  2. 如何理解"伪类"?------像类(class),但不是类,是元素的一种特殊状态。

常用的伪类选择器

动态伪类

  1. :link 超链接未被访问的状态
  2. :visited 超链接访问过的状态
  3. :hover 鼠标悬停在元素上的状态
  4. :active 元素激活的状态
    (什么是激活?----按下鼠标不松开。
    注意点:遵循LVHA 的顺序,即:1ink、visited、hover、active)
  5. :focus 获取焦点的元素
    (表单类元素才能使用:focus伪类。
    当用户:点击元素、触摸元素、或通过键盘的"tab"键等方式,选择元素时,就是获得焦点。)

结构伪类

常用的

  1. :first-child 所有兄弟元素中的第一个
  2. :last-child 所有兄弟元素中的最后一个
  3. :nth-child(n) 所有兄弟元素中的第n个
  4. :first-of/type 所有同类型兄弟元素中的第一个
  5. :last-of-type 所有同类型兄弟元素中的最后一个
  6. :nth-of-type(n) 所有同类型兄弟元素中的第n个
  • 关于n的值:
  1. 0或不写:什么都选不中------几乎不用。
  2. n:选中所有子元素------几乎不用。
  3. 1~正无穷的整数:选中对应序号的子元素。
  4. 2n或even:选中序号为偶数的子元素。
  5. 2n+1或odd:选中序号为奇数的子元素。
  6. -n+3:选中的是前3个。

了解即可

  1. :nth-last-child(n) 所有兄弟元素中的倒数第n个
  2. :nth-last-of-type(n)所有同类型兄弟元素中的倒数第n个
  3. :only-child 选择没有兄弟的元素(独生子女)
  4. :only-of-type 选择没有同类型兄弟的元素
  5. :root 根元素
  6. :empty 内容为空元素(空格也算元素)

否定伪类

:int(选择器) 排除满足括号条件中的元素

UI伪类

  1. :checked 被选中的复选框或单选按钮
  2. :enable 可用的表单元素(没有disabled属性)
  3. :disable 不可用的表单元素(有disabled属性)

目标伪类(了解)

:target 选中锚点指向的元素

语言伪类(了解)

:lang() 根据指定的语言选择元素(本质是看lang属性的值)

054_伪元素选择器

  • 作用:选中元素中的一些特殊位置
  • 常用伪元素:
  1. ::first-letter 选中元素中的第一个文字
  2. ::first-line 选中元素中的第一行文字
  3. ::selection 选中被鼠标选中的内容
  4. ::placeholder 选中输入框中的提示文字
  5. ::before 在元素最开始的位置,创建一个子元素(必须用content属性指定内容)
  6. ::after 在元素最后的位置,创建一个子元素(必须用content属性指定内容)

055_选择器的优先级

通过不同的选择器,选中相同的元素,并且为相同的样式名设置不同的值时,就发生了样式的冲突。

到底应用哪个样式,此时就需要看优先级了。

简单描述:

行内样式>ID选择器>类选择器>元素选择器>通配选择器>继承过来的属性

详细描述

1. 计算方式:每个选择器,都可计算出一组权重,格式为:(a,b,c)
  • a:1D选择器的个数。
  • b:类、伪类、属性选择器的个数。
  • c:元素、伪元素 选择器的个数。
    例如:
    ul>li (0,0,2)
    div ul>li p a span (0,0,6)
    #atguigu .slogan(1,1,0)
    #atguigu .slogan a(1,1,1)
    #atguigu .slogan a:hover(1,2,1)
2. 比较规则

按照从左到右的顺序,依次比较大小,当前位胜出后,后面的不再对比,

例如:

  • (1,0,0)>(0,2,2)
  • (1,1,0)>(1,0,2)
  • (1,1,3)>(1,1,2)
特殊规则
  1. 行内样式权重大于所有选择器。
  2. !important的权重,大于行内样式,大于所有选择器,权重最高!

056_CSS三大特性

层属性

  • 概念:如果发生了样式冲突,那就会根据一定的规则(选择器优先级),进行样式的层叠(覆盖)。
  • 什么是样式冲突?------元素的同一个样式名,被设置了不同的值,这就是冲突。

继承性

  • 概念:元素会自动拥有其父元素、或其祖先元素上所设置的某些样式。
  • 规则:优先继承离得近的。
  • 常见的可继承属性: text-??,font-??,line-??,color...
  • 备注:参照MDN网站 可查询属性是否可被继承

优先级

  • 简单聊:
    !important >行内样式 >ID选择器 >类选择器 >元素选择器 >*>继承的样式。
  • 详细聊:需要计算权重。
    计算权重时需要注意:并集选择器的每一个部分是分开算的!

057_颜色的表示

方式一:颜色名

  • 编写方式:直接使用颜色对应的英文单词,编写比较简单,例如:
  1. 红色:red

  2. 绿色:green

  3. 蓝色:blue

  4. 紫色:purple

  5. 橙色:orange

  6. 灰色:gray

    1. 颜色名这种方式,表达的颜色比较单一,所以用的并不多。
    2. 具体颜色名参考MDN官方文档:
      https://developer.mozilla.org/en-US/docs/Web/CSS/named-color

方式二:rgb或rgba

  • 编写方式:使用 红、黄、蓝 这三种光的三原色进行组合。

  • r表示 红色

  • g表示 绿色

  • b表示 蓝色

  • a表示 透明度

  • 举例:

    /使用 0~255之间的数字表示一种颜色/
    color:rgb(255,0,0);/红色/
    color:rgb(0,255,0);/绿/
    color:rgb(0,0,255);/蓝色/
    color:rgb(0,0,0);/黑色/
    color: rgb(255,255,255);/* 白色 */

    /*混合出任意一种颜色 */
    color:rgb(138,43,226)/*紫罗兰色 */
    color:rgba(255,0,0,0.5);/*半透明的红色 */
    /也可以使用百分比表示一种颜色(用的少)/
    color:rgb(100%,0%,0%);/*红色 */
    color:rgba(100%,0%,0%,50%);/*半透明的红色 *

  • 小规律:

  1. 若三种颜色值相同,呈现的是灰色,值越大,灰色越浅。
  2. rgb(0,0,0)是黑色,rgb(255,255,255)是白色。
  3. 对于rbga来说,前三位的rgb形式要保持一致,要么都是0~255的数字,要么都是百分比。

方式三:HEX或HEXA

HEX的原理同与rgb一样,依然是通过:红、绿、蓝色 进行组合,只不过要用6个数字,分成3组 来表达

  • 格式为:#rrggbb
    (每一位数字的取值范围是:0~f,所以每一种光的最小值是:00,最大值是:ff)

    color:#ff0000;/*红色 */
    color:#00ff0O;/*绿色 */
    color:#0000ff;/*蓝色 */
    color:#000000;/*黑色 */
    color:#ffffff;/白色/
    /如果每种颜色的两位都是相同的,就可以简写/
    color:#ff9988;/*可简为:#f98 */
    /但要注意前三位简写了,那么透明度就也要简写/
    color:#ff998866;/*可简为:#f986 */

  • 注意点:IE浏览器不支持HEXA,但支持HEX。

方式四:HSL或HSLA

  • HSL是通过:色相、饱和度、亮度,来表示一个颜色的,格式为:hsl(色相,饱和度,亮度)
  • 色相:取值范围是0~360度,具体度数对应的颜色上网搜(从红色开始顺时针转)
  • 饱和度:取值范围是0%~100%。(向色相中对应颜色中添加灰色,0%全灰,100%没有灰)
  • 亮度:取值范围是0%~100%。(0%亮度没了,所以就是黑色。100%亮度太强,所以就是白色了)
  • HSLA其实就是在HSL的基础上,添加了透明度。

058_CSS字体属性

字体大小

  • 属性名:font-size

  • 语法:

    div{
    font-size
    font-size:40px;
    }

  • 注意点:

  1. Chrome 浏览器支持的最小文字为12px,默认的文字大小为16px,并且0px会自动消失。
  2. 不同浏览器默认的字体大小可能不一致,所以最好给一个明确的值,不要用默认大小。
  3. 通常以给body 设置font-size属性,这样body中的其他元素就都可以继承了。
  • 可借助控制台查看样式

字体族

  • 属性名:font-family

  • 语法:

    div{
    font-family: "STCaiyun","Microsoft YaHei",sans-serif
    }

  • 注意:

  1. 使用字体的英文名字兼容性会更好,具体的英文名可以自行查询,或在电脑的设置里去寻找。
  2. 如果字体名包含空格,必须使用引号包裹起来。
  3. 可以设置多个字体,按照从左到右的顺序逐个查找,找到就用,没有找到就使用后面的,且通常在最后写上serif(衬线字体)或sans-serif(非衬线字体)
  4. windows 系统中,默认的字体就是微软雅黑。

059_字体

字体风格

  • 属性名:font-style

  • 常用值:

    1. normal:正常(默认值)
    2. italic:斜体( 推荐 使用字体自带的斜体效果)
    3. oblique:斜体(强制倾斜产生的斜体效果)
  • 语法:

    div {
    font-style:italic;
    }

字体粗细

  • 属性名:font-weight

  • 常用值:

    • 关键词
    1. lighter: 细
    2. normal: 正常
    3. bold: 粗
    4. bolder: 很粗 (多数字体不支持)
    • 数值
  1. 100~1000旦无单位,数值越大,字体越粗(或一样粗,具体得看字体设计时的精确程度)。
  2. 100~300等同于lighter,400~500等同于normal,600及以上等同于bold。
  • 语法:

    div{
    font-weight: bold;
    }
    div{
    font-weight:600;
    }

字体的复合写法

  • 属性名:font,可以把上述字体合并成一个属性
  • 编写规则:
    1. 字体大小、字体族必须都写上。
    2. 字体族必须是最后一位、字体大小必须是倒数第二位。
    3. 各个属性间用空格隔开。
  • 实际开发中更推荐复合写法,但这也不是绝对的,比如只想设置字体大小,那就直接用font-size属性。

060_文本

文本颜色

  • 属性名:color

  • 可选值:

    1. 颜色名
    2. rgb&rgba(常用)
    3. HEX&HEXA(十六进制)(常用)
    4. HSL&HSLA
  • 举例:

    div {
    color:rgb(112,45,78);
    }

文本间距

  • 字母间距:letter-spacing
  • 单词间距:word-spacing(通过空格识别词)
  • 属性值为像素(px),正值让间距增大,负值让间距缩小

文本修饰

  • 属性名:text-decoration

  • 可选值:

    1. none:无装饰线(常用)
    2. underline:下划线(常用)
    3. overline:上划线
    4. line-through:删除线
      可搭配如下值使用:
    5. dotted:虚线
    6. wavy:波浪线
    7. 也可以指定颜色
  • 举例:

    a {
    text-decoration:none;
    }

文本缩进

  • 属性名:text-indent

  • 属性值:css中的长度单位 例如:px

  • 举例:

    div {
    text-indent:40px;
    }

文本对齐_水平

  • 属性名:text-align

  • 常用值:

    1. left:左对齐(默认值)
    2. right:右对齐
    3. center:居中对齐
  • 举例:

    div {
    text-align:center;
    }

行高

  • 属性值:line-height

  • 可选值:

    1. normal:由浏览器根据文字大小决定的一个默认值
    2. 像素(px)
    3. 数字:参考自身font-size的倍数(很常用)
    4. 百分比:参考自身font-size的百分比
  • 备注:由于字体设计问题,文字在一行中,并不是绝对垂直居中,若一行中都是文字,不会太影响观感

  • 举例:

    div {
    line-height:60px;
    line-height: 1.5;
    line-height:150%;
    }

  • 行高注意事项:

    1. line-height过小会怎样?----文字产生重叠,且最小值是0,不能为负数。
    2. line-height是可以继承的,且为了能更好的呈现文字,最好写数值。
    3. line-height和height是什么关系?
      • 设置了height,那么高度就是height的值。
      • 不设置height的时候,会根据line-height计算高度。
  • 应用场景:

    1. 对于多行文字:控制行与行之间的距离。
    2. 对于单行文字:让height等于line-height,可以实现文字垂直居中。
    • 备注:
      由于字体设计原因,靠上述办法实现的居中,并不是绝对的垂直居中,但如果一行中都是文字,不会太影响观感。

文本对齐_垂直

  1. 顶部:无需任何属性,在垂直方向上,默认就是顶部对齐。
  2. 居中:对于单行文字,让height=line-height即可。
  • 问题:多行文字垂直居中怎么办?---- 后面我们用定位去做。
  1. 底部:对于单行文字,目前一个临时的方式:让line-height =(height x2)-font-size-x。
  • 备注:×是根据字体族,动态决定的一个值。
  • 问题:垂直方向上的底部对齐,更好的解决办法是什么?----后面我们用定位去做。

vertical-align

  • 属性名:vertical-align
  • 作用:用于指定同一行元素之间,或表格单元格内文字垂直对齐方式
  • 常用值:
    1. baseline(默认值):使元素的基线与父元素的基线对齐。
    2. top:使元素的顶部与其所在行的顶部对齐。
    3. middle:使元素的中部与父元素的基线加上父元素字母×的一半对齐。
    4. bottom:使元素的底部与其所在行的底部对齐。
  • 特别注意:vertical-align不能控制块元素。

061_细说font-size

  1. 由于字体设计原因,文字最终呈现的大小,并不一定与font-size的值一致,可能大,也可能小。
  • 例如:font-size设为40px,最终呈现的文字,可能比40px大,也可能比40px小。
  1. 通常情况下,文字相对字体设计框,并不是垂直居中的,通常都靠下一些。

062_CSS列表属性

列表相关属性,可以作用在ul,ol,li元素上

list-style-type

  • 功能:设置列表符号
  • 常用值:
    1. none:不显示前面的标识(很常用!)
    2. square:实心方块
    3. disc:圆形
    4. decimal:数字
    5. lower-roman:小写罗马字
    6. upper-roman:大写罗马字
    7. lower-alpha:小写字母
    8. upper-alpha:大写字母

list-style-position

  • 功能:设置列表符号的位置
  • 常用值:
    1. inside:在li的里面
    2. outside:在li的外面

list-sryle-image

  • 功能:自定义列表符号
  • 属性值:
    1. url(图片地址)

list-style

  • 功能:符合属性
  • 属性值:
    1. 没有数量、顺序的要求

063_CSS表格属性

1.边框相关属性(其他元素也能用):

border-width

  • 功能:边框宽度
  • 属性值:CSS中可用的长度值

border-color

  • 功能:边框颜色
  • 属性值:CSS中可用的颜色值

border-style

  • 功能:边框风格
  • 属性值:
    1. none 默认值
    2. solid 实线
    3. dashed 虚线
    4. dotted 点线
    5. double 双实线

border

  • 功能:边框复合属性
  • 属性值:没有数量、顺序要求

注意:

  1. 以上4个边框相关的属性,其他元素也可以用,这是我们第一次遇见它们。
  2. 在后面的盒子模型中,我们会详细讲解边框相关的知识。

2.表格独有属性(只有table标签才能使用):

table-layout

  • 功能:设置列宽度
  • 属性值:
    1. auto:自动,列表根据内容计算(默认值)
    2. fixed:固定列宽,平均分

border-spacing

  • 功能:单元格间距
  • 属性值:
    1. CSS中可用的长度值
    2. 生效的前提:单元格边框不能合并

border-collapse

  • 功能:合并单元格边框
  • 属性值:
    1. collapse:合并
    2. separate:不合并

empty-cells

  • 功能:影藏没有内容的单元格
  • 属性值:
    1. show:显示(默认值)
    2. hide:影藏
    3. 生效前提:单元格不能合并

caption-side

  • 功能:设置表格标题位置
  • 属性值:
    1. top:上面(默认值)
    2. bottom:在表格下面

注意:

以上五个属性,只有表格才能使用,即:<table>标签

064_CSS背景属性

background-color

  • 功能:设置背景颜色
  • 属性值:
    1. 符合CSS中颜色规范的值。
    2. 默认背景颜色是transparent。

background-image

  • 功能:设置背景图片
  • 属性值:
    1. url(图片的地址)

background-repeat

  • 功能:设置背景重复方式
  • 属性值:
    1. repeat:重复,铺满整个元素,默认值。
    2. repeat-x:只在水平方向重复。
    3. repeat-y:只在垂直方向重复。
    4. no-repeat:不重复。

background-position

  • 功能:设置背景图位置
  • 属性值:
    1. 通过关键字设置位置:
      写两个值,用空格隔开
      水平:left、center、right
      垂直:top、center、bottom
      如果只写一个值,另一个方向的值取center
    2. 通过长度指定坐标位置:
      以元素左上角,为坐标原点,设置图片左上角的位置。
      两个值,分别是×坐标和y坐标。
      只写一个值,会被当做×坐标,y坐标取center

background

  • 功能:复合属性
  • 属性值:
    1. 没有数量和顺序要求

065_CSS鼠标属性

cursor

  • 功能:设置鼠标光标的样式
  • 属性值:
    1. pointer:小手
    2. move:移动图标
    3. text:文字选择器
    4. crosshair:十字架
    5. wait:等待
    6. help:帮助

扩展:自定义鼠标图标

/*自定义鼠标光标 */
cursor: url("./arrow.png"),pointer;

066_CSS盒子模型

1.CSS长度单位

  1. px:像素
  2. em:相对font-size的倍数
  3. rem:相对根字体大小,html标签就是根
  4. %:相对父元素计算
  • 注意:CSS中设置长度,必须加单位,否则样式无效!

2.元素的显示模式

块元素(block)

  • 又称:块级元素
  • 特点:
    1. 1.在页面中独占一行,不会与任何元素共用一行,是从上到下排列的。
    2. 默认宽度:撑满父元素。
    3. 默认高度:由内容撑开。
    4. 可以通过CSS设置宽高。

行内元素(inline)

  • 又称:内联元素
  • 特点:
    1. 在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排列。
    2. 默认宽度:由内容撑开。
    3. 默认高度:由内容撑开。
    4. 无法通过CSS设置宽高。

行内块元素(inline-block)

  • 又称:内联块元素
  • 特点:
    1. 1.在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排列。
    2. 默认宽度:由内容撑开。
    3. 默认高度:由内容撑开。
    4. 可以通过CSS设置宽高。
      注意:元素早期只分为:行内元素、块级元素,区分条件也只有一条:"是否独占一行",如果按照这种分类方式,行内块元素应该算作行内元素。

3.总结各元素的显示模式

块元素(block)

  1. 主题结构标签:<html>,<body>
  2. 排版标签:<h1>-<h6>,<hr>,<p>,<pre>,<div>
  3. 列表标签:<ul>,<ol>,<li>,<dl>,<dt>,<dd>
  4. 表格相关标签:<table>,<tbody>,<thead>,<tr>,<caption>
  5. <form><option>

行内元素(inline)

  1. 文本标签:<br>,<em>,<strong>,<sub>,<del>,<ins>
  2. <a><label>

行内块元素(inline-block)

  1. 图片:<img>
  2. 单元格:<td>,<th>
  3. 表单控件:<input>,<textarea>,<select>,<button>
  4. 框架标签:<iframe>

4.修改元素显示模式

通过CSS中的display属性可以修改元素的默认显示效果,常用值如下:

none
  • 描述:元素会被隐藏
block
  • 描述:元素会被作为块级元素展示
inline
  • 描述:元素会被作为行内(内联)元素展示
inline-block
  • 描述:元素会被作为行内块元素展示

5.盒子模型的组成

  • CSS会把所有的HTML元素都看做一个盒子,所有的样式也都基于这个盒子
  1. margin(外边距):盒子与外界的蹈离。
  2. border(边框):盒子的边框。
  3. padding(内边距):紧贴内容的补白区域。
  4. content(内容):元素中的文本或后代元素都是它的内容
  • 盒子的大小=content+左右padding+左右border
  • 注意:外边距margin不会影响盒子的大小,但会影响盒子的位置

6.盒子的内容区(content)

width

  • 功能:设置内容区域宽度

max-width

  • 功能:设置内容区域的最大宽度

min-width

  • 功能:设置内容区域的最小宽度

height

  • 功能:设置内容区域的高度

max-height

  • 功能:设置内容区域的最大高度

min-height

  • 功能:设置内容区域的最小高度

注意:

  • max-width、min-width 一般不与width一起使用。
  • max-height、min-height 一般不与height---起使用。

7.关于默认宽度

  • 所谓的默认宽度,就是不设置width属性时,元素所呈现出来的宽度。
  • 总宽度=父的content -自身的左右margin。
  • 内容区的宽度=父的content -自身的左右margin -自身的左右border -自身的左右padding。

8.盒子内边距(padding)

padding-top

  • 功能:上内边距
  • 属性值:长度

padding-right

  • 功能:右内边距
  • 属性值:长度

padding-bottom

  • 功能:下内边距
  • 属性值:长度

padding-left

  • 功能:左内边距
  • 属性值:长度

padding

  • 功能:复合属性
  • 属性值:长度

padding复合属性的使用规则:

  1. padding:18px;四个方向内边距都是10p×。
  2. padding: 10px 20px;上10p×,左右20px。(上下、左右)
  3. padding:10px20px30px;上10px,左右20px,下30px。(上、左右、下)
  4. padding:10px20px30px40px;上18px,右28px,下38px,左48px。(上、右、下、左)

注意点:

  1. padding的值不能为负数。
  2. 行内元素的左右内边距是没问题的,上下内边距不能完美的设置。
  3. 块级元素、行内块元素,四个方向内边距都可以完美设置。

9.盒子的边框(border)

border-style

  • 功能:边框线风格 复合了四个方向的边框风格
  • 属性值:
    1. none 默认值
    2. solid 实线
    3. dashed 虚线
    4. dotted 点线
    5. double 双实线
    6. ...

border-width

  • 功能:边框线宽度 复合了四个方向的边框宽度
  • 属性值:长度,默认3px

border-color

  • 功能:边框线颜色 复合了四个方向的边框颜色
  • 属性值:颜色,默认黑色

border

  • 功能:复合属性
  • 属性值:值没有顺序和数量的要求

分别设置各个方向的边框

属性值同上

  • border-left
  • border-left-style
  • border-left-width
  • border-left-color
  • border-right
  • border-right-style
  • border-right-width
  • border-right-color
  • border-bottom
  • border-bottom-style
  • border-bottom-width
  • border-bottom-color

注意:

  • 边框相关属性共20个。
  • border-style、border-width、border-color其实也是复合属性。

10.盒子外边距(margin)

margin-left
  • 功能:左外边距
  • 属性值:CSS中的长度值
margin-right
  • 功能:右外边距
  • 属性值:CSS中的长度值
margin-top
  • 功能:上外边距
  • 属性值:CSS中的长度值
margin-bottom
  • 功能:下外边距
  • 属性值:CSS中的长度值
margin
  • 功能:复合属性,可以写1~4个值,规律同padding(顺时针)(上右下左)
  • 属性值:CSS中的长度值

10.1 margin注意事项

  1. 子元素的margin,是参考父元素的content计算的。(因为是父亲的content中承装着子元素)
  2. 上margin、左margin:影响自己的位置;下margin、右margin:影响后面兄弟元素的位置。
  3. 块级元素、行内块元素,均可以完美地设置四个方向的margin;但行内元素,左右margin可以完美设置,上下margin设置无效。
  4. margin的值也可以是auto,如果给一个块级元素设置左右margin都为auto,该块级元素会在父元素中水平居中。
  5. margin的值可以是负值。

10.2 margin塌陷问题

  • 什么是margin 塌陷?
    • 第一个子元素的上margin会作用在父元素上,最后一个子元素的下margin会作用在父元素上。
  • 如何解决margin塌陷?
    • 方案一:给父元素设置不为0的padding。
    • 方案二:给父元素设置宽度不为0的border。
    • 方案三:给父元素设置css样式overflow:hidden

10.3 margin合并问题

  • 什么是margin合并?
    • 上面兄弟元素的下外边距和下面兄弟元素的上外边距会合并,取一个最大的值,而不是相加。
  • 如何解决margin 塌陷?
    • 无需解决,布局的时候上下的兄弟元素,只给一个设置上下外边距就可以了。

11.处理内容溢出

overflow

  • 功能:溢出内容的处理方式
  • 属性值:
    1. visible:显示,默认值
    2. hidden:隐藏
    3. scroll:显示滚动条,不论内容是否溢出
    4. auto:自动显示滚动条,内容不溢出不显示

overflow-x

  • 功能:水平方向溢出内容的处理方式
  • 属性值:同overflow

overflow-y

  • 功能:垂直方向溢出内容的处理方式
  • 属性值:同overflow

注意:

  1. overflow-x、overflow-y不能一个是hidden,一个是visible,是实验性属性,不建议使用。
  2. overflow 常用的值是hidden和auto,除了能处理溢出的显示方式,还可以解决很多疑难杂症。

12.隐藏元素的方式

方式一:visibility属性:

visibility 属性默认值是show,如果设置为hidden,元素会隐藏。

元素看不见了,还占有原来的位置(元素的大小依然保持)。

方式二:display属性:

设置display:none,就可以让元素隐藏。

彻底地隐藏,不但看不见,也不占用任何位置,没有大小宽高。

13.样式的继承

  • 有些样式会继承,元素如果本身设置了某个样式,就使用本身设置的样式;但如果本身没有设置某个样式,会从父元素开始一级一级继承(优先继承离得近的祖先元素)。

会继承的css属性

  • 字体属性、文本属性(除了vertical-align)、文字颜色等。

不会继承的css属性

  • 边框、背景、内边距、外边距、宽高、溢出方式等。

一个规律:

  • 能继承的属性,都是不影响布局的,简单说:都是和盒子模型没关系的。

14.默认样式

  • 元素一般都些默认的样式,例如:
    1. <a>元素:下划线、字体颜色、鼠标小手。
    2. <h1>~<h6>元素:文字加粗、文字大小、上下外边距。
    3. <p>元素:上下外边距
    4. <ul><ol>元素:左内边距
    5. body元素:8px外边距(4个方向)
  • 优先级:元素的默认样式>继承的样式,所以如果要重置元素的默认样式,选择器一定要直接选择器到该元素。

15.布局小技巧

  1. 行内元素、行内块元素,可以被父元素当做文本处理。
    • 即:可以像处理文本对齐一样,去处理:行内、行内块在父元素中的对齐。
    • 例如:text-align、line-height、text-indent等。
  2. 如何让子元素,在父亲中 水平居中:
    • 若子元素为块元素,给父元素加上:margin:0 auto;
    • 若子元素为行内元素、行内块元素,给父元素加上:text-align:center
  3. 如何让子元素,在父亲中 垂直居中:
    • 若子元素为块元素,给子元素加上:margin-top,值为:(父元素content-子元素盒子总高)/2
    • 若子元素为行内元素、行内块元素:
      • 让父元素的height = line-height,每个子元素都加上:vertical-align:middle;
      • 补充:若想绝对垂直居中,父元素font-size设置为0。

16.元素之间的空白问题

  • 产生的原因:
    • 行内元素、行内块元素,彼此之间的换行会被浏览器解析为一个空白字符。
  • 解决方案:
    1. 方案一:去掉换行和空格(不推荐)。
    2. 方案二:给父元素设置font-size:0,再给需要显示文字的元素,单独设置字体大小(推荐)

17.行内块的幽灵空白问题

  • 产生原因:
    • 行内块元素与文本的基线对齐,而文本的基线与文本最底端之间是有一定距离的。
  • 解决方案:
    1. 方案一:给行行内块设置vertical,值不为 baseline 即可,设置为middel、bottom、top均可。
    2. 方案二:若父元素中只有一张图片,设置图片为display:block。
    3. 方案三:给父元素设置font-size:0。如果该行内块内部还有文本,则需单独设置font-size。

067_浮动

1.浮动的简介

  • 在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。

2.元素浮动后的特点

  1. 脱离文档流
  2. 不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开(尽可能小),而且可以设置宽高。
  3. 不会独占一行,可以与其他元素共用一行。
  4. 不会margin合并,也不会margin塌陷,能够完美的设置四个方向的margin和padding。
  5. 不会像行内块一样被当做文本处理(没有行内块的空白问题)。
相关推荐
qq_2573795935 分钟前
python基础-字符串速查笔记
开发语言·笔记·python
网络工程小王1 小时前
【网络协议详解】——BGP/MPLS IP VPN技术(学习笔记)
网络·笔记·网络协议·学习·华为
LK_071 小时前
【蓝桥杯—单片机】第十五届省赛真题代码题解析 | 思路整理
c语言·笔记·单片机·蓝桥杯·学习方法
栀寒老醑1 小时前
密码学笔记
笔记·python·网络安全·密码学·ctf·crypto
我自纵横20232 小时前
第一章:欢迎来到 HTML 星球!
前端·html
发财哥fdy2 小时前
3.12-2 html
前端·html
柒十三.2 小时前
江科大51单片机笔记【16】AD/DA(上)
笔记·嵌入式硬件·51单片机
凉生阿新2 小时前
【React】React + Tailwind CSS 快速入门指南
css·react.js·arcgis
我是大咖2 小时前
c语言笔记 函数入门
c语言·开发语言·笔记
New_Teen3 小时前
C++小课堂——friend友元
开发语言·c++·笔记·学习