HTML+CSS 基础第三季课堂笔记

一、CSS基础概念

CSS有两个重要的概念,分别是样式和布局

CSS的样式分为两种,一种是文字的样式,一种是盒模型的样式

CSS的另一个重要的特性就是辅助页面布局,完成HTML不能完成的功能,比如并排显示,比如精确定位显示

从HTML4.0开始,结构层和样式层进行了分离

前端三层:

  • 结构层:HTML作用是从语义的角度讲进行网页结构的搭建
  • 样式层:CSS作用从美观的角度讲修饰页面样式
  • 交互层:JavaScript作用从交互的角度讲描述页面的行为

二、CSS常用属性的学习

CSS常用的文字属性有三个,color,font-size,font-family

CSS的属性样式发生了改变由HTML的k=’v’变为了k:v;

2.1文字颜色

属性名:color

基本使用

<p style="color:blue;">看我是什么颜色</p>

属性值:主要分为两种,单词表示法,一种是颜色值(十六进制,rgba)

以蓝色为准

rgb颜色表示法

<p style="color:rgb(0,0,225);">看我是什么颜色</p>

十六进制颜色表示法

<p style="color:#0000FF;">看我是什么颜色</p>

需要记忆一些常用颜色的单词表示法的单词,比如red、blue、orange、pink...

2.2字号

属性:font-size

属性值:常用的是以px为单位的数字值

根据浏览器的不同,有默认不同的字号大小,比如Chrome和ie默认就是16px的文字

每个浏览器都有自己最小的显示像素,比如Chrome最小字号为8px

ie浏览器最小字号是1px

基本使用:

  <p style="font-size:10px;">看我的文字大小</p>

2.3字体

属性:font-family

属性值:必须以双引号包裹,属性值可以有多个,使用逗号分隔开

中文字体的常用字体属性值:

微软雅黑,宋体

英文常用字体属性值:

Arial

consolas

事迹的字体属性是根据设计图获取

大多数浏览器默认显示字体是微软雅黑

如果页面中有中英文混合的,需要同时设置对应的字体

如果设置多个字体,使用逗号隔开,如果浏览器不识别前面的字体,会自动向后识别,中英文会分别进行加载

<p style="font-family: 'Arial','consolas','黑体','宋体'">看我的字体是什么blue,yellow</p>

三、盒子的三属性

盒子的三属性width、height、background-color

width:是宽度的意思

height:是高度意思

常用的属性值都是以px为单位的数值

background-color:属于background系列属性的一种

属性值和color一样分为单词和颜色值表示法

基本使用

<div style="width:100px;height:100px;background-color:red;"></div>

四、CSS样式表

到现在为止,我们学习行内式样式表的使用

4.1 行内式样式表

基本语法:

<div style="width:100px;height:100px;background-color:red;"></div>

引入位置:在标签的style属性中,等号后面的引号内属性CSS样式,多个属性使用分号分隔

4.2 内嵌式样式表

基本语法:

<!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>div {color: red;font-size: 18px}</style></head><body><div>文字</div></body></html>

书写位置:head标签的内部,title标签的下面,一对style标签中

4.3 外链式样式表

基本语法:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="css/1.css"></head><body><div>文字</div></body></html>

书写位置:head标签的内部,title标签的下面,一个link内部去进行css文件引入

<link rel="stylesheet" href="css/1.css">

link标签的作用就是引入外部文件,通过href属性,属性值是文件地址

rel属性值如果是stylesheet,代表的就是引入样式表

通过引入css文件到html文件中,从而实现样式的加载

css文件的内部不需要写任何的标签,直接属性css选择器和代码,因为css文件内部是不允许属性HTML骨架的

4.4 导入式样式表(只需要了解)

基本语法:

<!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>@import url(css/1.css);</style></head><body><div>文字</div></body></html>

书写位置:head标签的内部title标签下面style标签内,通过@import进行导入

注意:导入式必须写在style标签的最顶部

url内部是css文件的引入地址

4.5 四种样式表的区别和优缺点

样式表的名称

权重

优点

缺点

行内式样式表

最高

权重高,样式设置更精确

  • 结构和样式没有进行分离。
  • 不能批量修改样式

内嵌式样式表

大于导入式,等于外链式

能够将CSS样式和估计进行分离,可以进行批量属性的修改

样式和骨架没有进行完全分离,多个html文件不能使用同一套css代码。

外链式样式表

大于导入式,等于内嵌式

样式和骨架进行完全分离,一份css代码可以重复使用

如果我们写小的demo的时候,每次写外链式比较麻烦,并且看起来不直观

导入式样式表

最低

样式和骨架进行完全分离,一份css代码可以重复使用

导入式有样式问题,引入导入式涉及到加载顺序,说白了,页面会白一下,体验不好

五、选择器

选择器分为两种,一种是基础选择器,一种高级选择器

基础选择器:标签选择器、id选择器、类名选择器

高级选择器;后代选择器、交集选择器、并集选择器

5.1 标签选择器

选择方法:通过标签名称去选择

书写方法:标签名

选择范围:HTML文档中所有的同名标签

基本使用

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p{color: red;}h3{color: blue;}</style></head><body><p>段落标签</p><h3>三级标题</h3></body>

需要注意的是标签选择器无视嵌套规则,都能进行识别加载

<p>段落标签</p><div><div><div><div><p>我是段落标签</p></div></div></div></div>

用途:实现全选同名标签,可以设置公共样式

缺点:只能进行全选,不能进行单独的布局样式

5.2 id选择器

通过标签上id属性进行选择

书写方法:#id属性值(自定义)

选择范围:只能选中一个标签

基本使用:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#p1{color: blue;}</style></head><body><p id="p1">第1段文字</p><p>第2段文字</p><p>第3段文字</p></body>

id其实就是标签的身份证号,具有唯一性。规定一个页面中不允许有同名id属性

优点:id属性的权重高

缺点:只能实现单选

5.3 类名属性

通过标签上的clas属性进行选择

书写方法:.匹配对应的class属性值

选择范围:选择所有同名clss属性标签

基本使用

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.par{color: blue}</style></head><body><p class="par">第1段文字</p><p class="par">第2段文字</p><p class="par">第3段文字</p></body>

一个标签的class属性值可以有一个或者多个

多个class属性之间使用空格隔开

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.par{color: blue}.cur{color: yellow;}</style></head><body><p class="par">第1段文字</p><p class="par cur">第2段文字</p><p class="par">第3段文字</p></body>

idclass属性的命名规范:第一个字符必须是字母,后面的字符可以是字母、数字、下划线

5.4 通配符选择器

书写方法:

选择范围:选择包含html标签在内的所有标签

通配符*后面添加的样式,每一个标签都会加载一次

我们通常使用清除页面的默认样式

基本使用

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {color: yellow}</style></head><body><span>span</span><p>p标签</p><div>div</div><h3>h3</h3></body>

清除页面的默认内外边距

​
*{margin: 0;padding: 0;}​

5.5 后代选择器

书写方法:使用空格连续链接多级选择器

作用:通过标签之间的后代关系去决定选择某个范围内的元素,具有精确匹配性

基本使用

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box ul li{color: red;}.box2 ul li{color: green;}</style></head><body><div class="box"><ul><li>box里面的li</li><li>box里面的li</li><li>box里面的li</li><li>box里面的li</li></ul></div><div class="box2"><ul><li>box2里面的li</li><li>box2里面的li</li><li>box2里面的li</li><li>box2里面的li</li></ul></div></body>

需要注意的是,后代关系不一定是父子关系

.box li{

    color: red;

}

表示选择类名为box后代中的li

5.6 交集选择器

作用:进行满足所有选择器条件的匹配

书写方法:将多个选择器连接书写,中间没有空格,不需要加任何符号

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p.par{color: blue;}</style></head><body><p class="par">文字</p><div class="par">文字</div></body>

5.7 并集选择器

并集选择器有‘和’的意思,代表多个标签设置同样的属性
书写方法:将多个选择器使用逗号进行连接,最后一个不能加逗号

选择范围:多个选中标签的集合

我们看下面的结构

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{color: red;}p{color: red;}</style></head><body><p>文字</p><div>文字</div></body>

div和p标签设置的属性是一样,这个时候我们可以通过并集选择器设置同样的属性值

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div,p{color: red;}</style></head><body><p>文字</p><div>文字</div></body>

并集选择器非常灵活,可以结合多种选择器使用,就是利用逗号进行分割从而区分属性

#par .par li,p{color: red;}

上面的代码指的是#par里面的.par里面的li和p标签的文字颜色为红色

六、CSS的继承性和层叠性

6.1 继承性

只需要给祖先元素设置文字属性,后代元素就能加载这个属性,这个特性我们叫做继承性

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{color: red;}</style></head><body><div class="box"><ul><li>文字</li></ul></div></body>

注意,css可以继承的属性都是关于文字的,比如colorfont-sizefont-family

6.2 层叠性

CSS样式表又叫做“层叠式样式表”,什么是层叠性

看下面的案例

HTML结构

<p class="par" id="par">文字</p>CSS样式<style>p{color: red;}.par{font-size: 20px;}#par {/* 文字添加下划线 */text-decoration: underline;}</style>

浏览器的效果

通过上面的案例,我们发现一个标签可以被多个选择器选中,并设置对应的属性

如果多个选择器,设置了同一个属性,怎么办?

#par {color:purple;}.par{color: blue;}p{color: red;}  

我们看浏览器的效果是紫色的;

我们看上图后两个选择器设置的内容被‘杠’掉了,我们叫做被层叠了,这个就是css的层叠性。

我们学习选择器的权重:

id选择器>class类名选择器>标签选择器

如果被多个选择器同时选中,首先看id的,如果没有id的,看class的,如果没有class的,看标签的

我们看下面的案例

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box1 div.box2 #box3 p{color: red;}  #box1 #box2 div.box3 p{color: blue;}#box1 div.box2 .box3 {color: pink;}</style></head><body><div id="box1" class="box1"><div id="box2" class="box2"><div id="box3" class="box3"><p>文字</p></div></div></div></body>

如果遇到复杂的选择器,不要慌,要学会数选择器

方法,首先将所有的选择器罗列出来,从id选择器比较,如果id选择能比出大小,则数量多的获胜。如果id选择器数量相同或者没有,则比较类名选择器,数量多的获胜。如果类名选择器数量相同或者没有,则比较标签选择器,数量多的获胜,如果所有选择器数量相同,后写的覆盖先写的。

6.3 就近原则

上面的案例是所有选择器都选择同一个元素p,所以需要数权重数量

现在如果都没有选中,怎么办?

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1 #box2 {color: blue;}.box1 .box2 .box3 {color: purple;}</style></head><body><div id="box1" class="box1"><div id="box2" class="box2"><div id="box3" class="box3"><p>文字</p></div></div></div></body>

如果都没有选择中对应标签,就看谁离得近,离得近的就是被选中的,如果选择的都是同一个元素中,再去数权重

总结:

遇到了复杂的选择器,首先看是否同时选中的一个元素,如果都选择的是同一个元素,则数权重,如果层级不同,比如有的是父亲级别,有的是爷爷级别,使用就近原则,谁离得近听谁的;如果所有的权重一样,选择位置也一样,后书写的覆盖先写的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内访问OpenAI API

最近在学习LLM。绕不过去的肯定要学习OpenAI。 国内想直接使用官方API十分麻烦。就到处查资料及网友的分享。发现了这个代理可以在国内很方便的使用OpenAI API。 代理的地址如下&#xff1a; https://referer.shadowai.xyz/r/1014150 经过一段实际体验下来&#xff0c;这个…

JAVA全球互联同城速达国际版同城跑腿快递代取帮买帮送一体化服务系统源码

全球互联&#xff0c;便捷生活新篇章&#xff01; &#x1f31f; 开篇&#xff1a;跨越国界的即时服务革命 在这个快节奏的时代&#xff0c;你是否也曾为忙碌的生活而烦恼&#xff1f;购物、取件、送物……这些日常琐事似乎总在不经意间占据了我们宝贵的时间。但现在&#xf…

expressjs 中的mysql.createConnection,execute 怎么使用

在 Express.js 应用中使用 MySQL 数据库&#xff0c;你通常会使用 mysql 或 mysql2 这样的库来创建和管理数据库连接&#xff0c;并执行查询。然而&#xff0c;mysql.createConnection 并不直接提供 execute 方法。相反&#xff0c;你可以使用 query 方法来执行 SQL 语句。 以…

论文的研究工具有什么?推荐5款AI论文写作网站

在当今的学术研究和写作领域&#xff0c;AI工具已经成为不可或缺的助手。这些工具不仅能够提高写作效率&#xff0c;还能帮助研究者生成高质量的论文。以下是一些值得推荐的AI论文写作工具&#xff1a; 千笔-AIPassPaper 千笔-AIPassPaper是一款基于深度学习和自然语言处理技…

51单片机学习第六课---B站UP主江协科技

DS18B20 1、基本知识讲解 2、DS18B20读取温度值 main.c #include<regx52.h> #include"delay.h" #include"LCD1602.h" #include"key.h" #include"DS18B20.h"float T; void main () {LCD_Init();LCD_ShowString(1,1,"temp…

64 注意力机制_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录注意力机制&#xff08;或叫注意力池化&#xff09;[**生成数据集**]平均汇聚非参数注意力汇聚[**带参数注意力汇聚**]批量矩阵乘法定义模型训练 小结练习 注意力机制&#xff08;或叫注意力池化&#xff09; 卷积、全连接、池化层都只考虑…

Mac制作Linux操作系统启动盘

前期准备 一个 Mac 电脑 一个 U 盘&#xff08;8GB 以上&#xff09; 下载好 Linux 系统镜像&#xff08;iso 文件&#xff09; 具体步骤 挂载 U 盘 解挂 U 盘 写系统镜像到 U 盘 完成 一、挂载 U 盘 首先插入 U 盘&#xff0c;打开终端输入下面的命令查看 U 盘是否已经 m…

HarmonyOS NEXT:实现电影列表功能展示界面

时至今日HarmonyOS NEXT早已发布运行了&#xff0c;等其正式推出并大规模商用后&#xff0c;HarmonyOS的历史使命就完成并将退出历史舞台&#xff0c;为用户提供丰富的应用选择。但是Harmony NEXT是在HarmonyOS基础上剔除安卓&#xff08;AOSP&#xff09;后的产品&#xff0c;…

自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

图说几何学2300年重大错误:附着在直线z上的直线段必是z的一部分

黄小宁 用泡沫塑料和油漆制成的铅球与真正的铅球&#xff0c;两者有不同的内部形状。同样&#xff0c;数学有长度相同但内部形状不同的伪≌直线段。 几何学有史2300年来一直认定附着在直线z上的直线段一定是z的一部分。其实这是2300年肉眼直观错觉——百年病态集论的症结。 …

工作笔记【四】

对于这种&#xff0c;样式一样&#xff0c;但是图片和字体颜色不一样&#xff0c;动态渲染。 代码&#xff1a; <template><view class"page"><view class"rows" v-for"item in data"><view class"v0"><v…

代码随想录算法训练营第四八天| 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II

今日任务 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II 739. 每日温度 题目链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; class Solution {public int[] dailyTemperatures(int[] temperatures) {Stack<Integer> stack new Stack<Int…

基于解压缩模块的JPEG同步重压缩检测论文学习

一、论文基本信息&#xff1a; 论文题目&#xff1a;基于解压缩模块的JPEG同步重压缩检测 作者&#xff1a;王金伟1 &#xff0c;胡冰涛1 &#xff0c;张家伟1 &#xff0c;马 宾2 &#xff0c;罗向阳3 &#xff08;1.南京信息工程大学计算机学院、网络空间安全学院&#xf…

Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长

作者&#xff1a;Stella L (stellafootprint.network) 在 Web3 的快节奏世界里&#xff0c;社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展&#xff0c;很大程度上得益于 Telegram 平台。正因如此&#xff0c;Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…

阿里大模型算法岗面试,上来就手撕代码啊

最近已有不少大厂都在秋招宣讲了&#xff0c;也有一些在 Offer 发放阶段。 节前&#xff0c;我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了…

怎样才能写出好的知识竞赛活动策划方案

好的知识竞赛活动策划方案是抄不会的&#xff0c;尤其是抄一堆烂方案的话&#xff0c;只会让你走偏。首要的是建立策划底层思维&#xff0c;搞清楚如何从策划角度思考问题和解决问题。注意读、思、学&#xff0c;读&#xff1a;大量读策划案例和营销案例&#xff0c;分析总结和…

木舟0基础学习Java的第三十一天(SpringMVC,xml式和注解式开发,携带数据,取值,视图解析)

SpringMVC Mybatis: 优化了dao层 降低了java与dao层的耦合 Spring:是大管家 整合和管理mybatis与springmve(是spring中子模块) SpringMVC:优化了servlet层 降低了java与servlet的耦合 为什么要使用 springMVC? SpringMVC 是一种基于 Java&#xff0c;实现了 Web MVC 设计模…

当贝播放器 1.5.0 畅享原画,支持阿里网盘、杜比视界和8K播放

当贝播放器TV是一款专为智能电视设计的视频播放器&#xff0c;具有强大的解码能力&#xff0c;支持阿里网盘、百度网盘等网盘资源导入。此外&#xff0c;还支持外部设备导入&#xff0c;并能自动匹配电影海报封面、内容介绍和剧照。 大小&#xff1a;47.3M 百度网盘&#xff1…

Python与MongoDB交互

Python与MongoDB的交互通常通过pymongo库来实现。pymongo是一个官方的Python驱动程序&#xff0c;用于与MongoDB数据库进行交互。以下是一个简单的示例&#xff0c;展示了如何使用pymongo来连接到MongoDB数据库&#xff0c;执行一些基本的数据库操作&#xff08;如插入、查询、…

js 实现视频封面截图

今天给大家分享一下&#xff0c;如何实现视频封面截取功能&#xff0c;这里主要用到了 HTML5 的 canvas 相关的 api 和 js 相关的一些知识&#xff0c;话不多说&#xff0c;直接上代码&#xff1a; <template><div><div class"margin-tb-sm"><…