前端学习杂乱记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、Html
  • 二、CSS
    • 1. BFC布局
    • 2. 定位总结
    • 3. 动画
      • 1. transform变换
      • 2. transition过渡
      • 3. @keyframes 和 animation
    • 3. 伸缩盒模型:flex布局
  • 三、JS
    • 1. 逻辑中断
    • 2. 原型



提示:以下是本篇文章正文内容,下面案例可供参考

一、Html

二、CSS

1. BFC布局

BFC(block formatting context)块级格式化上下文,他是页面中的一块渲染区域,并且有一套属于自己的渲染规则,BFC 是一个独立的布局环境,具有BFC特性的元素可以看作是隔离的独立容器,容器里面的元素不会在布局上影响到外面的元素。

触发BFC

  • 浮动元素
  • 定位元素:绝对定位元素、固定定位元素(absolute、fixed)
  • 非块级盒子的块级容器:display:inline-block,flex,table,table-cell、table-caption、inline-table、inline-flex、grid、inline-grid
  • overflow 值不为visiable 的块级盒子:overflow:hidden、auto、scroll
  • display:flow-root【新属性,BFC创建新方式,没有任何副作用,注意浏览器兼容】

使用场景

  • 清除浮动:overflow:hidden(浮动塌陷,包含块没有设置高度或者是自适应的时候、包含块就不能撑起来,变成塌陷的状态。)

  • 防止浮动文字环绕

  • 解决边距重叠问题:根据 BFC 的定义,两个元素只有在同一BFC 内,才有可能发生垂直外边距的重叠,包括相邻元素、嵌套元素。

    • 对于相邻元素,只要给它们加上 BFC 的外壳,就能使它们的 margin 不重叠;
    • 对于嵌套元素,只要让父级元素触发 BFC(比如给父级加overflow:hidden),就能使父级 margin 和当前元素的 margin 不重叠。

参考地址:https://juejin.cn/post/6991867254803529765

2. 定位总结

定位参考点是否脱离文档流
relative自己原来的位置×
absolute包含块(第一个有定位属性的父元素)
fixed视口
sticky最近的拥有滚动机制的祖先元素×

固定定位和绝对定位后,元素变成定位元素:默认宽高由内容撑开,且依旧可以设置宽高。

3. 动画

1. transform变换

transform 属性允许你对元素进行旋转、缩放、倾斜或移动等转换

/* 将元素顺时针旋转45度 */
.element {transform: rotate(45deg);
}

其他常见的 transform 函数:

translate(x, y):移动元素
scale(x, y):缩放元素
skew(x, y):倾斜元素

位移配合定位可实现水平垂直居中:

.box{
position : absolute;
left : 50%;
top : 50%;
transform : translate(-50%,-50%);
}

变换原点:transform-origin
元素变换时默认是元素的中心。transform-origin可以设置变换的原点。
修改变换原点对位移没有影响, 但是对旋转缩放会产生影响。
如果提供两个值,第一个是横坐标第二个是纵坐标。
如果只有一个值,另一个默认为50%。

3D变换的首要操作:父元素必须开启3D空间

2. transition过渡

transition 属性用于控制元素状态变化时的过渡效果,例如在鼠标悬停时改变颜色、大小等。

.element {background-color: lightblue;transition: background-color 0.5s ease-in-out;
}.element:hover {background-color: lightgreen;
}

当你将鼠标悬停在 .element 上时,背景色将会在 0.5 秒内平滑地变为 lightgreen

  • transition-property:定义哪个属性需要过渡:none,all,某个属性名(值为数字或值能转为数字的属性能过渡,否则不支持过渡)(常见属性:颜色、长度、百分比、z-index、opacity、2D转换属性、3D转换属性、阴影)
  • transition-duration:设置过渡的持续时间
  • transition-delay:设置开始过渡的延迟时间
  • transition-timing-function:设置过渡的类型
    – ease:平滑过渡
    – linear:线性过渡
    – ease-in:慢→快
    – ease-out:快→慢
    – ease-in-out:慢→快→慢

3. @keyframes 和 animation

keyframes 允许你定义一个动画序列,并通过 animation 属性将动画应用到元素上。@keyframes 定义了不同时间点的样式,animation 属性控制动画的持续时间、次数等。

/* 定义旋转和缩放的动画 */
@keyframes rotateScale {0% {transform: rotate(0deg) scale(1);}50% {transform: rotate(180deg) scale(1.5);}100% {transform: rotate(360deg) scale(1);}
}/* 将动画应用到元素 */
.animated-box {width: 100px;height: 100px;background-color: lightcoral;animation: rotateScale 2s infinite ease-in-out;
}
  • animation-name:给元素执行具体的动画
  • animation-duration: 设置动画所需时间
  • animation-delay:设置延迟时间
  • animation-timing-function:设置动画类型
  • animation-iteration-count:指定动画播放次数(number,infinite无限循环)
  • animation-direction:指定动画方向(normal、reverse、alternate、alternate-reverse)
  • animation-fill-mode:设置动画外的状态(forward、backwards)
  • animation-play-state:设置动画的播放状态(running、paused)

3. 伸缩盒模型:flex布局

伸缩容器:开启了flex的元素
伸缩项目:伸缩容器的子元素自动成为伸缩项目。无论原来是哪种元素,一旦成为伸缩项目都会“块状化”。

  • flex-direction:主轴方向
    • row:从左向右(默认)
    • row-reverse:从右向左
    • column:主轴方向垂直从上到下
    • column-reverse:从下到上
  • flex-wrap:换行方式
    • nowrap:不换行(默认值)
    • wrap:换行
    • wrap-reverse:反向换行
  • flex-flow:上述两个的复合属性,无顺序要求。
  • justify-content:主轴对齐方式
    • flex-start:起点对齐
    • flex-end:终点对齐
    • center:居中
    • space-between:均匀分布,两端对齐
    • space-around: 均匀分布,两端距离是中间的一半
    • space-evenly:均匀分布,两端距离是中间一致
  • align-item:侧轴对齐方式(一行) :flex-start、flex-end、center、baseline(伸缩项目第一行文字基线对齐)、stretch(伸缩项目未设置高度,将占满整个容器的高度。默认值)
  • align-content:侧轴对齐方式(多行)

flex实现水平垂直居中

  • 父容器开启flex布局,使用 justify-content 和 align-item 实现水平垂直居中
.outer{width:400px;height:400px;display:flex;justify-content:center;align-item:center;
}
  • 父容器开启 flex 布局,随后子容器 margin: auto
.outer{width:400px;height:400px;display:flex;
}
.inner{wigth:100px;height:100px;margin:auto;
}

伸缩性:

  • flex-basis:主轴的基准长度,会让宽或高失效,默认值为auto
  • flex-grow:伸缩项目的放大比例,默认为0
    • 若所有伸缩项目 flex-grow:1:将等分剩余空间。
    • 若三个伸缩项目的flex-grow值分别为1、2、3,则分别瓜分到1/6、2/6、3/6的空间。
  • flex-shrink:伸缩项目的压缩比例,默认为1,即如果空间不足则该项目会缩小。

flex复合属性:复合flex-grow、flex-shrink、flex-basis三个属性

  • flex:auto => flex:1 1 auto
  • flex:1 => flex:1 1 0
  • flex:none => flex:0 0 auto
  • flex:0 auto => flex:0 1 auto

flex:1 意味着该项目会按比例扩展以占据容器的剩余空间,并在容器空间不足时按比例缩小

三、JS

1. 逻辑中断

短路运算:‌在逻辑与(‌&&)‌和逻辑或(‌||)‌的操作中,‌如果左边的表达式已经能够确定整个表达式的结果,‌那么就不会再去计算右边的表达式。‌

2. 原型

每一个javascript对象(除null外)创建的时候,都会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型中“继承”属性。

  • __proto__是实例指向原型的属性
  • prototype是对象或者构造函数指向原型的属性
  • constructor:每个原型都有一个constructor属性,指向该关联的构造函数。
    在这里插入图片描述

https://blog.csdn.net/qq_34645412/article/details/105997336

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

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

相关文章

Aigtek功率放大器能应用哪些行业

功率放大器是一种在各个行业中发挥关键作用的技术设备,其应用涉及广泛,包括但不限于以下几个主要领域: 1.医疗行业: 在医疗领域,功率放大器常用于医学超声成像系统。超声波传感器通过发射和接收声波,生成图…

prime1靶机渗透 (信息收集 内核提权)

靶机信息 vulnhub靶机 prime1 主机发现 -sn 是scan and no port hack 只用于主机发现 ┌──(kali㉿kali)-[~] └─$ sudo nmap -sn 192.168.50.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-09 02:25 EDT Nmap scan report for 192.168.50.1 Host is up …

【RabbitMQ】重试机制、TTL

重试机制 在消息从Broker到消费者的传递过程中,可能会遇到各种问题,如网络故障、服务不可用、资源不足等,这些问题都可能导致消息处理失败。为了解决这些问题,RabbitMQ提供了重试机制,允许消息在处理失败之后重新发送…

Mac使用技巧-来自苹果专人在线辅导服务

好记性不如烂笔头 跟着技术人员从头到尾操作了一遍,发现应该跟人家学习的时候,是很容易接受并接收知识点的,但发现还是要做一下笔记,好记性不如烂笔头。 用来用去,感觉Mac更适合不搭配鼠标使用,因为鼠标的滑…

行业内幕!宠物浮毛对肺的危害大?实测霍尼韦尔、有哈、希喂除浮毛哪家强?

我有一个医生朋友,他常常给身边的朋友科普养猫、养狗、养宠物掉下来的毛发对呼吸道健康的影响。 看到身边的朋友养猫心痒痒,听他讲完又时刻担心着宠物毛发对呼吸道健康的危害。一直犹犹豫豫没下决心去接猫,直到前段时间过生日,朋…

CAFE: Catastrophic Data Leakage in Vertical Federated Learning(纵向联邦学习)

NeurIPS 2021 发表单位:美国伦斯勒理工学院、IBM研究院、国立阳明交通大学 GitHub:https://github.com/DeRafael/CAFE 摘要: 梯度共享机制(批处理)会泄露私有数据—>提出数据泄露攻击CAFE—>提出缓解CAFE对策 在…

Python redis 安装和使用介绍

python redis安装和使用 一、Redis 安装1.1、Windows安装 二、安装 redis 模块二、使用redis 实例1.1、简单使用1.2、连接池1.3、redis 基本命令 String1.3.1、ex - 过期时间(秒)1.3.2、nx - 如果设置为True,则只有name不存在时,当…

华为、思科、新华三,三大厂商认证到底选择哪一个?

在计算机网络行业,华为、思科和新华三的认证被广泛认可,成为从业者提升技能和职业竞争力的重要凭证。 然而,面对这三大厂商的认证,很多人感到困惑,不知道该选择哪一个。 本文将详细介绍这三大认证体系,帮助…

【学术会议征稿】第四届电子信息工程与计算机技术国际学术会议(EIECT 2024)

第四届电子信息工程与计算机技术国际学术会议(EIECT 2024) 2024 4th International Conference on Electronic Information Engineering and Computer Technology 随着科学技术的高速发展,计算机技术革新日新月异,其智能化、网络…

Spring中存储Bean的常见注解

目录 IoC & DI IOC(控制反转)详解 依赖注入的三种方式 IoC & DI IoC: Inversion of Control (控制反转), 也就是说 Spring 是⼀个"控制反转"的容器. 控制反转:也就是控制权反转. 什么的控制权发⽣了反转? 获得依赖对…

计算机毕业设计污染物文献共享数据库管理系统网站开发与实现

计算机毕业设计:污染物文献共享数据库管理系统网站开发与实现 1. 项目背景 随着环境问题日益严峻,对污染物的研究变得尤为重要。然而,在学术界和工业界之间存在着信息孤岛现象,即大量的研究成果被分散在不同的数据…

每日OJ题_牛客_除2!(贪心+堆)

目录 牛客_除2!(贪心堆) 解析代码 牛客_除2!(贪心堆) 除2!_牛客题霸_牛客网 解析代码 弄一个堆模拟一下,用到贪心的思想,记得开long long,否则可能0分。 …

Python中的异步编程:从基础知识到高级应用

随着互联网应用的不断发展,高并发和高性能成为越来越多开发者关注的重点。Python 3.5引入了asyncio库和async/await语法,使得异步编程变得更加简洁和高效。本文将详细介绍Python中的异步编程,从基础知识到高级应用,帮助你掌握这一…

【AI大模型】LLM主流开源大模型介绍

目录 🍔 LLM主流大模型类别 🍔 ChatGLM-6B模型 2.1 训练目标 2.2 模型结构 2.3 模型配置(6B) 2.4 硬件要求 2.5 模型特点 2.6 衍生应用 🍔 LLaMA模型 3.1 训练目标 3.2 模型结构 3.3 模型配置(7B) 3.4 硬件…

ROS第四梯:ROS项目中添加自定义类

第一步,ROS项目结构介绍 工作空间中包含一个名为pcl_ros_test的功能包,其中main.cpp是原有项目自带的,接下来以CommonAlg自定义类添加为例进行介绍。 第二步:头文件CommonAlg.h创建和编写,并保存在include/pcl_ros_tes…

springcloud整合nacos、sentinal、springcloud-gateway,springboot security、oauth2总结

源码地址:下载地址 使用该架构的项目地址:下载地址 下面教大家整合nacos、sentinal、springcloud-gateway,springboot security、oauth2做一个分布式架构 1、第一步整合nacos 1、下载alibaba的nacos 下载地址,然后使用单机模式启动nacos sh startup.sh -m standalon…

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目 项目搭建 演示使用华为云服务器Flexus X实例搭建上线前后端项目黑马vue电商后台管理系统 项目GitHub链接:https://github.com/Minori-ty/vue_shop.git 1、购买华为云 Flexus X 实例 Flexus云服…

搜索小车运动最短路径python代码实现

一、实验任务 场地中正方格代表障碍物,选取小车运动起点和终点。编程探究小车从起点运动到终点,总共有几种可行的路径(路径不含重叠部分),同时找出最短路径并可视化。 二、实验思路 把场地抽象化为69的平面矩阵&…

基于Linux系统离线安装oracle数据库

注意事项: 在安装的时候多次涉及root用户和oracle用户的切换,请注意区分,本文已明显 一、环境准备 1、关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld2、 禁用NetworkManager服务(非必须) [rootlocalhost …