前端学习杂乱记录

news2024/9/20 14:04:21

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

文章目录

  • 一、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.coloradmin.cn/o/2149103.html

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

相关文章

nvm安装实现node多版本的切换

nvm安装实现node多版本的切换 方式一 下载安装包安装下载安装包解压安装设置 nvm 环境变量查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本 方式二 一键脚本安装下载安装查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本nvm相关命令…

PyTorch中的学习率预热(warmup)

PyTorch提供了学习率调度器(learning rate schedulers),用于在训练过程中实现各种调整学习率的方法。实现在torch.optim.lr_scheduler.py中,根据epoch数调整学习率。大多数学习率调度器可以称为背对背(back-to-back),也称为链式调度器&#x…

Linux入门2

文章目录 一、Linux基本命令1.1 文件的创建和查看命令1.2 文件的复制移动删除等命令1.3 查找命令1.4 文件的筛选和管道的使用1.5 echo、tail和重定向符 二、via编辑器三、权限控制3.1 root用户(超级管理员)3.2 用户和用户组3.3 权限信息3.4 chmod命令 一…

Streamlit:使用 Python 快速开发 Web 应用

一、简单介绍 Streamlit 是一个开源 Python 库,官网地址: https://streamlit.io/http://StreamlitStreamlit 是一个开源的 Python 框架,旨在为数据科学家和 后端工程师们提供只需几行代码即可创建动态数据应用的功能。 让没有任何前端基础…

C#软键盘设计字母数字按键处理相关事件函数

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…

使用SpringCloud构建可伸缩的微服务架构

Spring Cloud是一个用于构建分布式系统的开源框架。它基于Spring Boot构建,并提供了一系列的工具和组件,用于简化开发分布式系统的难度。Spring Cloud可以帮助开发人员快速构建可伸缩的微服务架构。 要使用Spring Cloud构建可伸缩的微服务架构&#xff0…

实时监控局域网计算机桌面怎么设置!五个可实现的方法分享,绝了!

员工在工作时间里究竟在做什么?他们的网络活动是否合规?如何确保敏感信息不被泄露? 在企业管理层面,实时监控局域网计算机桌面已成为提升工作效率、确保数据安全与规范员工行为的重要手段。 技术的不断进步,多种解决…

【C++进阶】map和set的使用

【C进阶】map和set的使用 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. 序列式容器和关联式容器 2. set系列的使用 2.1 set 和 multiset 2.2 set 类的介绍 2.3 set 的构造和…

【Linux篇】常用命令及操作技巧(基础篇)

🌏个人博客主页:意疏-CSDN博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 关注 收藏支持一下笔者吧~ 阅读指南: 开篇说明帮助命令常见的七个linux操作终端实用的技巧跟文件目录…

C++11之统一的列表初始化

一.{}初始化 在c98中,标准允许使用{}对数组或结构体元素进行统一的列表初始值设定: struct mess {int _x;string _str; }; int main() {//注意,使用new的一定是指针int* arr new int[4] {1, 2, 3, 4};//数组初始化int arr[] { 1,3,5,6 };…

基于Spring Boot和Vue的私人牙科诊所系统的设计与实现(毕业论文)

目 录 1 前言 1 1.1 研究目的与意义 1 1.2 国内外研究概况 1 1.3 主要研究内容 2 1.4 论文结构 3 2 系统分析 3 2.1 可行性分析 3 2.1.1 技术可行性分析 3 2.1.2 经济可行性分析 3 2.1.3 操作可行性分析 4 2.1.4 法律可行性分析 4 2.2 需求分析 4 2.2.1 管理员需求分析 4 2.2.2…

3.1 数据表的基本查询

我们学习的怎么管理逻辑空间,怎么创建数据表,怎么定义字段,怎么创建索引,这些都是DDL语句。从本次课开始,我们来学习DML语句,也就是该如何增删改查操作数据。我们学习DML语句的前提是数据表要有足够多的数据…

Moving Elevator System Fully functional

这是一个功能齐全的电梯系统,配有电梯箱车、电梯井、电缆和每层的门框 电梯完全被操纵,有动画门、电缆线、滑轮系统。 还有几个C#脚本文件控制电梯、门和灯。 此套餐还包括相关声音,如电梯移动、门打开/关闭、楼层铃叮。 电梯车厢有工作门和按钮,车顶还有一个逃生舱口。 每…

低投入、高效率 基于PHP+MySQL组合开发的求职招聘小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 这款求职招聘小程序源码系统是专门为求职招聘领域打造的综合性平台。它利用 PHP 强大的编程语言特性和 MySQL 稳定的数据存储功能,实现了一个功能齐全、性能优越的求职招聘系统。 整个系统架构设计合理,具备良好的扩展性和兼容性。无论是小型…

从《中国数据库前世今生》看中国数据库技术的发展与挑战

从《中国数据库前世今生》看中国数据库技术的发展与挑战 引言 在当今数字化浪潮中,数据库技术已成为支撑全球经济运行的核心基础设施。作为程序员,我一直对数据库技术的发展充满好奇。《中国数据库前世今生》纪录片深入探索了中国数据库技术的演变历程…

【Python报错已解决】libpng warning: iccp: known incorrect sRGB profile

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

怎么把图片压缩变小?把图片压缩变小的八种压缩方法介绍

怎么把图片压缩变小?在当今这个信息高度共享的时代,图片不仅仅是简单的视觉元素,它们承载着我们的记忆、故事和创意。无论是旅行的风景、家庭的聚会,还是工作中的项目展示,图片都在我们的生活中扮演着不可或缺的角色。…

帕金森患者必看!这5种水果成“抗抖”小能手,吃出健康好生活!

在这个快节奏的时代,健康成为了我们最宝贵的财富之一。而对于帕金森病患者而言,如何在日常生活中通过合理的饮食来缓解症状、提升生活质量,成为了许多家庭关注的焦点。今天,就让我们一起探索那些被誉为“抗抖”小能手的水果&#…

Pandas -----------------------基础知识(一)

目录 Series对象 属性和方法 布尔值列表获取Series对象中部分数据 运算 DateFrame对象 常用属性 常见方法 运算 总结 Series对象 是DataFrame的列对象或者行对象 生成Series对象生成索引使用元组创建Series对象使用字典创建Series对象 通过Pandas创建对象 自定义索引 …

RealityCapture1.4设置成中文

RealityCapture 1.4 设置成中文的教程 RealityCapture 1.4 是一款强大的三维建模软件,它能够从图像或激光扫描中创建实景三维模型和正射影像等。以下是一个详细的教程,指导您如何将 RealityCapture 1.4 的界面设置为中文。 1.找到设置按钮 在WORKFLOW…