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,一经查实,立即删除!

相关文章

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

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

论文的研究工具有什么?推荐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;这里都有一片属于您的天空。让我们在知识的海洋中…

工作笔记【四】

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

基于解压缩模块的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;分析总结和…

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

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

【ARM】MDK-当选择AC5时每次点击build都会全编译

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决MDK中选择AC5时每次点击build都会全编译 2、 问题场景 在MDK中点击build时&#xff0c;正常会只进行增量编译&#xff0c;但目前每次点击的时候都会全编译。 3、软硬件环境 1 软件版本&#xff1a;Keil MDK 5.…

html+css+js实现dialog对话框

实现效果 HTML部分 <span class"text">点击打开 Dialog</span><!-- 警告框 --><div class"alert"><div class"header"><i>X</i> </div><div class"content">确认关闭</di…

基于php的律所管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

从0开始深度学习(6)——Pytorch动态图机制(前向传播、反向传播)

PyTorch 的动态计算图机制是其核心特性之一&#xff0c;它使得深度学习模型的开发更加灵活和高效。 0 计算图 计算图&#xff08;Computation Graph&#xff09;是一种用于表示数学表达式或程序流程的图形结构&#xff0c;可以将复杂的表达式分解成一系列简单的操作&#xff0…

详解代理模式-【静态代理与JDK动态代理】(非常的斯国一)

目录 静态代理 什么是静态代理: ​ 特点: 例子&#xff1a; JDK动态代理&#xff08;主要讲点&#xff09; 大纲&#xff1a; 1、与静态代码的联系 2、JDK动态代理的主流程 3、Proxy的源码 整体概述&#xff1a; 重要点的翻译 &#xff1a; newProxyInstance源码&am…

深信服2025届全球校招研发笔试-C卷(AK)

前面14个填空题 T1 已知 子数组 定义为原数组中的一个连续子序列。现给定一个正整数数组 arr&#xff0c;请计算该数组内所有可能的奇数长度子数组的数值之和。 输入描述 输入一个正整数数组arr 输出描述 所有可能的奇数长度子数组的和 示例 1 输入 1,4,2,5,3 输出 58 说明 …

使用 Light Chaser 进行大屏数据可视化

引言 在当今数据驱动的世界中&#xff0c;数据可视化变得越来越重要。Light Chaser 是一款基于 React 技术栈的大屏数据可视化设计工具&#xff0c;通过简单的拖拽操作&#xff0c;你可以快速生成漂亮、美观的数据可视化大屏和看板。本文将介绍如何使用 Light Chaser 进行数据…