2024蓝旭春季第二次前端培训课

news2024/11/27 8:34:50

目录

CSS伪类与伪元素

伪类

伪元素

关系选择器

分类+举例

后代选择器

子元素选择器

相邻兄弟选择器

通用兄弟选择器

作用+使用场景

后代选择器(空格)

子元素选择器 (>)

相邻兄弟选择器 (+)

通用兄弟选择器 (~)

随机提问

CSS布局

基础布局

盒模型

1.简介

2.盒子的显示模式

正常流/文档流

传统布局

表格布局

浮动布局

定位布局

滚动索引

其他布局

调试CSS


CSS伪类与伪元素

伪类

        伪类是选择器的一种,它用于选择处于特定状态的元素,比如当它们是这一类型的第一个元素时,或者是当鼠标指针悬浮在元素上面的时候。它们表现得会像是你向你的文档的某个部分应用了一个类一样,帮你在你的标记文本中减少多余的类,让你的代码更灵活、更易于维护。

开头

伪元素

        创建一些不在文档树中的元素,并为其添加样式。(就是选取某些元素前面或后面这种普通选择器无法完成的工作,虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。)

:: 开头

关系选择器

        关系选择器用于选择文档中的特定元素,这些元素与其他元素之间存在特定的关系。关系选择器可以帮助我们根据元素之间的层次关系和位置关系来精确地选择需要样式化的元素,从而实现更灵活的页面布局和样式控制。

分类+举例

后代选择器

用于选择某个元素的后代元素,通过空格来表示选择器之间的关系。

li a { 
    color: blue; 
     }

选中所有 <li> 元素下的 <a> 元素,并将其文字颜色设为蓝色。

子元素选择器

子元素选择器用于选择某个元素的直接子元素,通过 > 符号来表示选择器之间的关系。

ul > li {
    list-style-type: circle;
}

将选中所有 <ul> 元素下作为直接子元素的 <li> 元素,并设置它们的列表样式为圆圈。 

相邻兄弟选择器

相邻兄弟选择器用于选择某个元素之后紧接着的相邻兄弟元素,通过 + 符号来表示选择器之间的关系。

h2 + p {
    margin-top: 10px;
}

选中紧接在 <h2> 元素后面的相邻 <p> 元素,并设置它们的顶部外边距为 10 像素。 

通用兄弟选择器

选择某个元素后面的所有兄弟元素,通过~ 符号来表示选择器之间的关系。

h3 ~ p {
    color: green;
}

选中紧跟在 <h3> 元素后面的所有兄弟 <p> 元素,并将它们的文字颜色设为绿色。

作用+使用场景

  • 后代选择器(空格)
    • 作用:选择指定父元素下的所有后代元素,包括直接子元素、孙子元素以及更深层次的后代元素。
    • 使用情况:当需要选择特定父元素下的所有后代元素时,可以使用后代选择器。
  • 子元素选择器 (>)
    • 作用:选择指定父元素下的直接子元素,不包括孙子元素及更深层次的后代元素。
    • 使用情况:当需要只选择特定父元素的直接子元素时,可以使用子元素选择器。
  • 相邻兄弟选择器 (+)
    • 作用:选择紧跟在指定元素后面的相邻兄弟元素。
    • 使用情况:当需要选择某个元素后面紧跟的一个特定元素时,可以使用相邻兄弟选择器。
  • 通用兄弟选择器 (~)
    • 作用:选择指定元素后面的所有兄弟元素,不论相邻与否。
    • 使用情况:当需要选择某个元素后面的所有兄弟元素时,可以使用通用兄弟选择器。

随机提问

  • 网站的导航菜单中,只需要选中一级菜单项而不包括下拉菜单项。
  • 网页中的标题与下面的段落之间设置特定样式。
  • 对整个网页内容的样式进行设置,或者选择某个容器内的所有子元素。
  • 对一组相邻的列表项或卡片进行样式设置。

CSS布局

  •  响应式设计
  • 兼容性考虑
  • 布局结构清晰
  • 跨浏览器测试
  • CSS规范和命名规范
  • 确定好需求之后可以先进行UI设计

基础布局

盒模型

1.简介

        CSS 盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容,盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

浏览器默认给外边距和内边距设置一定的初值

    区域                                        介绍
内容区域元素的实际内容,例如文本、图片等
内边距区域内容区域与边框之间的空白区域,可以用 padding 属性来设置
边框区域包围内容和内边距的边框线,可以使用 border 属性来设置
外边距区域边框外部的空白区域,用于控制元素与其他元素之间的距离,可以使用 margin 属性来设置

标准盒模型的计算公式为  元素的宽度 = 内容宽度 + 左右内边距 + 左右边框 + 左右外边距

怪异盒模型    width + margin(左右)(即width已经包含了padding和border值)(IE浏览器)

2.盒子的显示模式

盒子的显示模式指的是如何控制一个元素在页面上的显示方式。

主要的盒子显示模式有三种:块级元素、内联元素和内联块级元素。

块级元素(Block-level Elements)

        块级元素是指在页面中以块的形式显示的 HTML 元素。它们通常会在页面中独占一行,并且会自动换行,占据父元素的整个宽度。

特点

  • 独占一行: 块级元素会在页面中独自占据一行空间,从上到下依次排列。

  • 默认宽度为100%: 块级元素的默认宽度是其父元素的100%,可以通过设置宽度属性进行调整。

  • 可设置宽度和高度: 可以通过 CSS 设置块级元素的宽度、高度、内边距、外边距、边框等样式。

  • 适合用于布局: 由于独占一行的特性,块级元素常用于页面布局的主要结构元素,如 <div><p><h1>-<h6><ul><ol><li><table><form> 等。

使用场景

  • 创建页面结构的主要组成部分,如头部、内容区、侧边栏、底部等。

  • 分隔页面内容,使其按照布局结构展示,如段落、标题、列表等。

  • 定义页面中的模块和容器,方便样式和布局的管理。

内联元素(Inline Elements)

内联元素是指在页面中以行内的形式显示的 HTML 元素。

它们不会独占一行,而是在一行内水平排列,并根据内容的大小自动调整位置。

特点

  • 不独占一行: 内联元素会在一行内水平排列,不会强制换行,根据内容大小自动调整位置。

  • 默认宽度由内容决定: 内联元素的宽度通常由其内容的宽度决定,不会填满父元素的水平空间。

  • 无法设置宽度和高度: 内联元素的宽度和高度无法直接通过 CSS 设置,但可以设置内边距、外边距、边框等样式。

  • 适合用于文本和行内内容: 内联元素通常用于包裹文本内容或者行内元素,如 <span><a><strong><em><img> 等。

使用场景

  • 包裹文本和行内内容,如加粗、斜体、超链接等。

  • 创建行内的元素组合,如 <span> 用于设置特定文本样式。

  • 作为块级元素内部的行内元素,用于布局和样式的微调,如在段落中的超链接。

内联块级元素(Inline-block Elements)

        内联块级元素是 CSS 中的一种元素显示模式,结合了块级元素和内联元素的特点。它会在一行内水平排列,同时可以设置宽度、高度、内边距、外边距等样式,类似于块级元素的盒模型,但不会独占一行。

特点

  • 不独占一行:内联块级元素会在一行内水平排列,与相邻的内联元素或文本共享一行空间。

  • 默认宽度由内容决定:内联块级元素可以通过设置宽度和高度来调整大小,与块级元素相似。

  • 可设置宽度和高度: 可以通过 CSS 设置块级元素的宽度、高度、内边距、外边距、边框等样式。

使用场景

  • 用于在一行内水平排列多个元素,比如导航菜单、按钮组等。

  • 进行自定义,可以将按钮或图标设计为内联块级元素,便于控制大小、间距等样式。

  • 响应式设计中,内联块级元素可用于创建流式布局,使页面在不同屏幕尺寸下自适应排列理。

  • 在表单设计中,可以将输入框、按钮等元素设计为内联块级元素,使布局更紧凑且灵活。

正常流/文档流

         HTML 文档中元素在默认情况下按照其在 HTML 结构中出现的顺序依次排列的布局方式。在正常流中,元素会按照从上到下、从左到右的顺序进行排列,即使没有设置特定的定位或浮动属性,也会在页面上占据一定的空间。

传统布局

表格布局

①table常用属性

margin主要设置表格的外边框
padding设置内边距
border设置表格的边框
width设置表格的宽度
height设置表格的高度
bgcolor设置背景颜色
background背景图片
border-collapse合并边框
tr
th/td单元格
caption表题
thead表头内容进行分组
tbody主体内容进行分组
tfoot页脚(脚注或表注)内容

②tr的属性

border边框(粗细、颜色等直接在border后面加“-”加属性即可)
align水平对齐
vlign垂直对齐
bgcolor背景色

 ③td的属性

width单元格的宽度
height单元格的高度
border单元格的边框
align水平对齐
vlign垂直对齐
bgcolor背景色
background背景图片
colspan跨列(水平合并)
rowspan跨行(垂直合并)

display:table / display:table-cell 用法 

  • display:table  元素会作为块级表格来显示(类似table);表格前后带有换行符;
  • display:table-cell 元素会作为表格单元格来显示(类似<td> 和 <th>)

特点

  • 表格可以根据需要创建多行多列的布局,每个单元格可以放置文本、图像或其他内容。
  • 表格默认会根据内容自适应宽度,可以通过设置固定宽度或百分比宽度来控制列的宽度。
  • 可以使用 CSS 设置表格、行、单元格的边框样式、间距等。
  • 可以使用 <caption> 标签定义表格标题,使用 <th> 标签定义表头。

使用场景

  • 用于展示表格数据,如员工名单、产品价格列表等。
  • 在 HTML 邮件中,表格布局仍然常用于排版和布局。

  • 在传统网页设计中,可以利用表格布局实现多列布局、栅格布局等,但不推荐将表格用于页面布局,因为现代 CSS 提供了更灵活的布局方式。

浮动布局

浮动概念

为了解决标准布局中,块级元素不能在水平方向布局的问题,即多个块级元素不能共享一行的问题,CSS提出了浮动的概念。(联想一下标准流)//标准流是底层 浮动流是新的图层

float属性

  • left 左浮动
  • right 右浮动
  • none 无浮动(元素默认浮动,无浮动)

浮动元素

可以看成是:特殊的行内块元素,它具备行内块的部分特点

 特点

  • 浮动元素之间共享一行
  • 浮动元素的width、height默认由元素内容决定,而不是由父级决定
  • 浮动元素支持通过width、height、padding、border、margin来指定盒子内容区、内外边距、边框大小。
  • 浮动元素之间不会因为空格、换行产生空隙,浮动元素之间是紧密贴合的,不会发生覆盖现象。如果目前顶部的行的剩余宽度不足以放下新的浮动元素,则新的浮动元素自动另起一行排列。
  • 浮动方向:在垂直方向上是向上浮动的,水平方向由float的属性决定。

标准流中的行内元素、行内块元素、块级元素加了浮动后,都会变成浮动元素,具备以上浮动元素的特性。

浮动带来的问题:标准流父级容器高度塌陷

一般而言,我们不给标准流中父级容器设定height,而是让容器height自动适配为容器内容的高度,但是如果,此时有一个子级元素发生了浮动,则标准流中的父级容器的高度会发生塌陷。

标准流中父级容器的高度本来是由标准流中子级元素撑开的,但是当子级元素脱标后,对应标准流中的位置就会被释放,所以标准流中父级容器就没有内容了,此时父级容器的height就为0了。

清除浮动 

属性值说明
left清除左侧浮动的影响
both清除两侧浮动的影响
right清除右侧浮动的影响

清除浮动的扩展:CSS - 浮动布局(float)_css float-CSDN博客 

定位布局

静态定位

静态定位是每个元素获取的默认值——它只是意味着“将元素放入它在文档布局流中的正常位置

.position {
  position: static;
  background: yellow;
}

相对定位

对定位是相对于元素在文档流中原本的位置进行定位,元素仍占据原本的空间,不会脱离文档流。

.position {
  position: relative;
  top: 10px;
  left: 20px;
}

绝对定位

绝对定位是相对于元素的最近的具有定位属性(非 static)的父元素进行定位,如果没有,则相对于文档根元素进行定位,元素脱离文档流。

.position {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 居中定位 */
}

应用场景

  •  居中定位: 可以利用绝对定位和 transform: translate(-50%, -50%); 来实现元素在父容器中的水平垂直居中。
  • 弹出菜单/对话框: 绝对定位常用于弹出菜单、对话框等元素的定位,使其浮动在页面上方。
  • 相对于固定位置的元素: 如果有一个固定定位的元素,可以使用绝对定位来创建相对于该元素的定位效果。 

固定定位

固定定位是相对于浏览器窗口(视口)进行定位,元素固定在页面上,不随页面滚动而移动。

.position {
  position: fixed;
  top: 10px;
  right: 10px;
}

应用场景

  •  导航栏: 页面滚动时,固定在顶部或底部的导航栏常用固定定位来实现。
  • 返回顶部按钮: 可以使用固定定位将返回顶部的按钮固定在页面某个位置。
  • 固定广告: 将广告固定在页面某个位置,不随页面滚动而移动。 
滚动索引

比起其他位置值要新一些。它基本上是相对位置和固定位置的混合体,它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点(例如,从视口顶部起 10 像素)为止,此后它就变得固定了。

.positioned {
  position: sticky;
  top: 30px;
  left: 30px;
}

应用场景 

  •  长页面导航: 在单页面应用或长页面中,滚动索引可以用于实现导航栏随着页面滚动自动更新选中状态,帮助用户快速导航到感兴趣的内容区域。
  • 文档和文章页面: 对于包含多个章节或内容区块的文档、文章页面,滚动索引可以显示当前阅读位置所在的章节标题或段落标题,方便用户了解整体结构并快速跳转到感兴趣的部分。
  • 产品页面: 在展示产品特性、功能或页面特定区域的网页中,滚动索引可以用于展示不同区域的功能点或特性点,用户滚动页面时可以实时查看当前浏览区域的功能说明或特性介绍。
  • 教育和培训页面: 在在线学习或培训平台上,滚动索引可以用于显示课程大纲或章节目录,帮助学生快速导航到所需的学习内容。
  • 单页应用导航: 对于单页应用(SPA)或页面内锚点导航,滚动索引可以配合页面内锚点链接,实现滚动到相应位置时更新导航状态,提供更好的用户体验。

CSS 布局 - position 属性 (w3school.com.cn)

其他布局

 Grid 布局CSS 布局 - position 属性 (w3school.com.cn)

Flex布局     

调试CSS

东北师范大学信息科学与技术学院

【CSS】开发者调试工具 ( 打开工具 | 设置工具显示位置 | 选择元素 | 查看手机版样式 | 开发者调试工具缩放 | 修改数值大小调试 | 查看 CSS 样式代码位置 )_css如何设置工具-CSDN博客

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

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

相关文章

RSTP(快速生成树)

与stp的不同&#xff1a; 减少了端口的状态 增加了端口的角色 bpdu格式以及发送方式不同 1.RSTP 快速生成树 802.1w 作用&#xff1a;主要可以用来实现快速收敛&#xff0c;弥补普通生成树收敛慢的问题&#xff0c;收敛时间1s。没有时间机制&#xff0c;每台设备都会发送…

C语言------字符函数和字符串函数

在学习编程的过程中&#xff0c;我们会经常会遇到一些字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;C语言标准库中就提供了一系列函数。那么&#xff0c;接下来就学习下这些函数。 1. 字符分类函数 C语言中有一系列的函数是专门做字符分析的&#xff0c;也就…

网络七层模型之会话层:理解网络通信的架构(五)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

飞天使-k8s知识点28-kubernetes散装知识点5-helm安装ingress

文章目录 安装helm添加仓库下载包配置创建命名空间安装 安装helm https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件&#xff0c;修改里面内容,然后重新启用export PATH$P…

java回溯算法笔记

回溯算法综述 回溯用于解决你层for循环嵌套问题&#xff0c;且不剪枝的回溯完全等于暴力搜索。 回溯算法模板https://blog.csdn.net/m0_73065928/article/details/137062099?spm1001.2014.3001.5501 组合问题 “不含重复元素”“不可重复使用”&#xff08;startindex i1&…

虚拟机体验 mac、Linux、Windows,老游戏和软件再也没有兼容问题

安装虚拟机 下载好 VMwareWorkstation Pro 后运行安装程序&#xff0c;根据流程完成安装&#xff1b; 勾选许可协议&#xff0c;点击「下一步」&#xff1b; 这里注意更改安装路径&#xff0c;最好选择 C 盘以外的其他磁盘&#xff0c;选择好后点击「下一步」&#xff1b; 这里…

2024/3/30面试题的总结

1.南京某公司 1.Java的几种基本数据类型&#xff1f;分别是多少字节&#xff1f; byte&#xff0c;8bit 1字节 char&#xff0c;16bit 2字节 short&#xff0c;16bit 2字节 int&#xff0c;32bit 4字节 float&#xff0c;32bit 4字节 long&#xff0c;64bit 8字节 doubl…

C++——vector类及其模拟实现

前言&#xff1a;前边我们进行的string类的方法及其模拟实现的讲解。这篇文章将继续进行C的另一个常用类——vector。 一.什么是vector vector和string一样&#xff0c;隶属于C中STL标准模板库中的一个自定义数据类型&#xff0c;实际上就是线性表。两者之间有着很多相似&…

Ubuntu系统设置静态固定IP保姆级教程

1、查看网络接口信息 ifconfig 首先需要确认要设置固定IP的网络接口。在大多数情况下&#xff0c;这通常是ens33 2、查看路由网关信息 route -n # 查看打印 路由表 网关地址 3、备份文件 为了防止防止出现意外问题。Ubuntu中的网络配置文件通常存储在/etc/netplan/目录下&…

Linux:详解TCP报头类型

文章目录 温习序号的意义序号和确认序号报文的类型 TCP报头类型详解ACK: 确认号是否有效SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段FIN: 通知对方, 本端要关闭了PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走RST: 对方要求重新建立连接; 我们把携带RST标识的称…

uniapp实现列表动态添加

1.效果图&#xff1a; 2.代码实现&#xff1a; 这里没有用uniapp提供的uni-list控件 <template> <view id"app"> <!-- 这里为了让标题&#xff08;h&#xff09;居中展示&#xff0c;给h标签设置了父标签&#xff0c;并设置父标签text-…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…

IDEA MyBatisCodeHelper Pro最新版(持续更新)

目录 0. 你想要的0.1 包下载0.2 使用jh 1. 功能介绍2. 下载安装2.1 在idea中插件市场安装2.2 在jetbrains插件市场下载安装 3. 简单使用3.1 创建一个SpringBoot项目3.2 配置数据库3.3 一键生成实体类、mapper 0. 你想要的 0.1 包下载 测试系统&#xff1a;Windows&#xff08…

el-table 合计行的一直计算的问题。

前端只有打印日志之后&#xff0c;才发现有计算在反复执行&#xff0c;导致浏览器崩溃。并不是每一列都是这个问题&#xff0c;当然输入不同值后&#xff0c;不知为何会触发如此多次。 . 在开发环境&#xff0c;他会触发几百次getSummaries,生产环境直接崩溃 合计行的代码如下…

入围中国大模型 + 知识管理最佳案例 15 强,杭州悦数 x 中国船舶项目收获认可!

近期&#xff0c;由国内知名的数字化研究与服务机构沙丘社区发布的《2024 中国“大模型知识管理”最佳实践案例 15 强》新鲜出炉&#xff0c;杭州悦数科技有限公司助力中国船舶集团有限公司第七〇八研究所打造的行业方案“基于图和多级智能体的动态排障知识问答系统”榜上有名。…

数据结构之二叉树由浅入深(四)

目录 题外话 正题 第一题 第一题思路 第一题代码详解 第二题 第二题思路 第二题代码详解 第三题 第三题思路 第三题代码及详解 第四题 第四题思路 第四题代码及详解 第五题 第五题思路 第五题代码及详解 题外话 本来昨天就想写完这篇文章,怎么样是不是很大胆?…

力扣124---二叉树的最大路径和(DFS,Java)

目录 题目描述&#xff1a; 思路描述&#xff1a; 代码&#xff1a; 题目描述&#xff1a; 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一…

在Arduino IDE中使用文件夹组织源文件和头文件

在Arduino IDE中使用文件夹组织源文件和头文件 如果你是一名Arduino爱好者&#xff0c;你可能会发现随着项目的复杂度增加&#xff0c;代码的管理变得越来越困难。在Arduino IDE中&#xff0c;你可以通过使用文件夹来更好地组织你的源文件和头文件&#xff0c;使得代码更加清晰…

标定系列——预备知识-OpenCV中与标定板处理相关的函数(四)

标定系列——预备知识-OpenCV中与标定板处理相关的函数&#xff08;四&#xff09; 说明记录棋盘格圆网格 说明 记录了OpenCV中与标定板处理相关的函数用法 记录 棋盘格 圆网格

Python 妙用运算符重载——玩出“点”花样来

目录 运算符重载 主角点类 魔法方法 __getitem__ __setitem__ __iter__ __next__ __len__ __neg__ __pos__ __abs__ __bool__ __call__ 重载运算符 比较运算符 相等 不等 ! 大于和小于 >、< 大于等于和小于等于 >、< 位运算符 位与 & 位…