day58:bootstrap框架(bootstrap4框架)
ccwgpt 2024-09-15 14:57 25 浏览 0 评论
阻止后续事件
当给一个本身就带有事件的标签绑定事件时,需要先阻止那个标签的原生事件,不然会容易产生BUG。
阻止事件冒泡
事件冒泡是指在DOM中,当一个特定元素上发生某个事件时,如果该元素有父元素,那么父元素也会接收到相同的事件。接着,如果父元素上也有相同类型的事件监听器,那么它也会被触发。这个过程会一直向上传播,直到到达DOM树的根节点。
举个例子,假设有一个按钮元素嵌套在一个具有点击事件监听器的父元素中。当点击按钮时,按钮会触发点击事件,并且父元素也会接收到相同的点击事件。这种事件向上传播的过程就称为事件冒泡。
在jQuery中,`event.stopPropagation()`和`return false`在阻止事件冒泡上的表现是相似的。它们都阻止了事件进一步冒泡到其父元素和祖先元素。但是,`return false`做得更多一些。
- `event.stopPropagation()`: 这个方法阻止事件向上冒泡到父元素,防止任何父事件处理器被执行。
- `return false`:在jQuery中,返回`false`会做两件事情——调用`event.stopPropagation()`和`event.preventDefault()`。这意味着它不仅阻止了事件冒泡,而且还阻止了事件的默认行为。
这就是它们的主要区别。如果你只想阻止事件冒泡,而不想阻止默认行为,那么你应该使用`event.stopPropagation()`。如果你想同时做这两件事,那么可以返回`false`。
例如,对于一个链接元素,你可能只想阻止点击事件冒泡,而不想阻止链接的默认行为(导航到另一个页面)。在这种情况下,你应该使用`event.stopPropagation()`而不是`return false`。
事件委托
事件委托(Event delegation)是一种常见的JavaScript编程模式,用于处理动态添加或删除的元素上的事件。
传统的事件绑定方式是直接在目标元素上绑定事件处理器,例如:
const button = document.querySelector('.button');
button.addEventListener('click', function(event) {
console.log('Button clicked');
});
但是,如果在页面上有大量的元素需要绑定事件,或者在运行时动态添加/删除元素,这种方式会变得非常繁琐和低效。
事件委托通过将事件处理器绑定到它们共同的父级元素上,利用事件冒泡的特性,来处理它们的事件。这样,无论添加或删除了多少个子元素,只需要一个事件处理器就能处理它们的事件。
const parentElement = document.querySelector('.parent-element');
parentElement.addEventListener('click', function(event) {
if (event.target.classList.contains('button')) {
console.log('Button clicked');
}
});
在这个例子中,我们将事件处理器绑定到.parent-element上,并通过检查event.target来判断是否点击了.button元素。这样,无论.button元素是在何时何处添加或删除,都可以正确处理它们的点击事件。
addEventListener 和 on 都是用于添加事件监听器的方法,但它们有一些区别。
- 语法:addEventListener 使用传统的方法调用语法,而 on 是以属性的形式使用。
- 多个监听器:使用 addEventListener 可以为同一个元素的同一个事件类型添加多个监听器,而使用 on 只能添加一个监听器。如果使用 on 添加多个监听器,后面添加的会覆盖前面的监听器。
- 移除监听器:使用 addEventListener 添加的监听器可以使用 removeEventListener 方法进行移除,而使用 on 添加的监听器无法直接移除,需要将事件属性设置为 null 或通过其他方式解除绑定。
- 兼容性:addEventListener 是标准的 DOM Level 2 事件模型方法,具有更好的兼容性,而 on 是旧版的事件处理方式,在部分场景中可能存在兼容性问题。
等待页面加载完毕再执行代码的方式
动画效果
each()循环
在jQuery中,each()方法用于迭代集合中的元素。它类似于JavaScript中的forEach()方法,但可以直接应用于jQuery对象。
以下是使用each()方法的示例:
// 使用选择器选择所有的p元素,并遍历每一个元素
$("p").each(function(index, element) {
console.log(index, $(element).text());
});
// 遍历一个数组
const arr = [1, 2, 3, 4, 5];
$.each(arr, function(index, value) {
console.log(index, value);
});
// 遍历一个对象的属性
const obj = { name: "John", age: 30, city: "New York" };
$.each(obj, function(key, value) {
console.log(key, value);
});
在上述示例中,each()方法接受两个参数:回调函数和可选的上下文对象。回调函数接受两个参数:索引(或键)和元素(或值)。通过使用$(element)将DOM元素转换为jQuery对象,可以方便地访问元素的属性和方法。
data方法
在前端开发中,data()方法是jQuery库提供的一个函数,用于在HTML元素上存储和检索数据。它允许开发者将自定义数据附加到特定的HTML元素上,并在需要时轻松地访问这些数据。
使用data()方法的一般语法如下:
javascript复制代码$(selector).data(key, value);
- selector:表示要应用data()方法的HTML元素的选择器。
- key:表示要存储的数据的键名。
- value:表示要存储的数据的值。
以下是使用data()方法的几种常见方式:
- 存储和检索数据:
javascript复制代码// 存储数据
$("p").data("foo", "bar");
// 检索数据
const value = $("p").data("foo"); // "bar"
console.log(value);
- 存储和检索对象数据:
javascript复制代码// 存储数据
$("p").data("person", { name: "John", age: 30 });
// 检索数据
const person = $("p").data("person");
console.log(person.name); // "John"
console.log(person.age); // 30
- 使用对象存储多个数据:
javascript复制代码// 存储多个数据
$("p").data({
name: "John",
age: 30,
city: "New York"
});
// 检索数据
console.log($("p").data("name")); // "John"
console.log($("p").data("age")); // 30
console.log($("p").data("city")); // "New York"
通过使用data()方法,您可以轻松地将自定义数据附加到HTML元素上,并在需要时检索和使用它们。这对于存储临时状态、配置选项等非常有用。
前端框架bootstrap
Bootstrap是一个流行的开源前端框架,它提供了一套用于构建响应式和移动优先的网站和应用程序的CSS和JavaScript组件。
使用Bootstrap可以快速搭建现代化和美观的用户界面,无需从头开始编写大量的CSS和JavaScript代码。它提供了许多经过测试和常用的组件,如导航栏、按钮、表单、模态框等,可以通过简单的HTML和CSS类来使用和定制。
以下是使用Bootstrap的一般步骤:
- 引入Bootstrap文件:在HTML文档中,使用<link>标签引入Bootstrap的CSS文件和<script>标签引入Bootstrap的JavaScript文件。可以选择使用CDN链接或从本地文件引入。
<!-- 引入Bootstrap的CSS文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<!-- 引入Bootstrap的JavaScript文件,需要在jQuery之后引入 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.min.js"></script>
- 使用Bootstrap的组件:通过在HTML中添加相应的CSS类来使用Bootstrap的各种组件。例如,使用<button>元素和btn类创建一个按钮:
<button class="btn btn-primary">Click me</button>
- 根据需要进行自定义:Bootstrap还提供了许多自定义选项,可以使用这些选项来定制组件的外观和行为。具体的自定义方法可以在Bootstrap的官方文档中找到。
注意:bootstrap的js代码是依赖于jquery的,也就意味着你在使用bootstrap的动态效果时一定要导入jQuery
布局容器
在使用bootstrap时,可以使用".container"和"container-fluid",来为页面布局。
栅格系统(重点)
栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
- “行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
- 通过“行(row)”在水平方向创建一组“列(column)”。
- 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
- 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。
- 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
<body>
<!--布局容器,两边留白-->
<div class="container">
<!-- 通过row来创建“行”,每行为12份-->
<div class="row">
<!-- 选中一块div来占取6份,为列-->
<div class="col-md-6 "></div>
<div class="col-md-6 ">
<!-- 将这块div再均分成12份-->
<div class="row"></div>
</div>
</div>
</div>
</body>
媒体查询
媒体查询(Media Queries)是CSS3中引入的一种功能,用于根据设备的属性和特征来应用不同的样式规则。通过媒体查询,我们可以根据设备的屏幕宽度、高度、分辨率、方向等属性,为不同的设备提供不同的样式。
媒体查询可以帮助我们创建响应式的网站和应用程序,使其能够在不同的设备上正确显示和适应布局。通过使用媒体查询,我们可以根据设备的特征选择性地加载或应用不同的CSS规则,从而为用户提供最佳的用户体验。
以下是一个使用媒体查询的示例:
/* 当屏幕宽度小于等于600px时,应用以下样式 */
@media (max-width: 600px) {
body {
background-color: yellow;
}
}
/* 当屏幕宽度大于600px并且小于等于1200px时,应用以下样式 */
@media (min-width: 601px) and (max-width: 1200px) {
body {
background-color: green;
}
}
/* 当屏幕宽度大于1200px时,应用以下样式 */
@media (min-width: 1201px) {
body {
background-color: blue;
}
}
在上面的示例中,我们使用@media关键字定义了三个媒体查询,分别根据屏幕宽度应用不同的背景颜色样式。当屏幕宽度小于等于600px时,背景颜色为黄色;当屏幕宽度在601px到1200px之间时,背景颜色为绿色;当屏幕宽度大于1200px时,背景颜色为蓝色。
在bootstrap中可以使用栅格参数来实现响应式布局:
针对不同的显示器,bootstrap会自动选择相应的参数,如果想兼容所有,那么直接把所有类都添加进去即可。
列偏移
使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类会将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。
排版
bootstrap会自动把html的原生标签设置成肉眼可以接受的样子。
只需要会操作类就可以了。需要用时,可以到官网去抄。
表格
为任意 <table> 标签添加 .table 类既可以为其赋予基本的样式。
通过 .table-striped 类可以给 <tbody> 之内的每一行增加斑马条纹样式。
添加 .table-bordered 类为表格和其中的每个单元格增加边框。
通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。
通过这些状态类可以为行或单元格设置颜色。
Class | 描述 |
.active | 鼠标悬停在行或单元格上时所设置的颜色 |
.success | 标识成功或积极的动作 |
.info | 标识普通的提示信息或动作 |
.warning | 标识警告或需要用户注意 |
.danger | 标识危险或潜在的带来负面影响的动作 |
表单
单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。
按钮
在 Bootstrap 中,class="btn btn-default" 是用于创建一个默认的按钮样式。
具体来说,class="btn" 是 Bootstrap 中的按钮样式类,用于定义按钮的基本样式。而 class="btn-default" 是按钮的变体类,用于定义默认的按钮样式。
使用 class="btn btn-default" 可以将一个元素渲染为带有默认样式的按钮,具有与 Bootstrap 中预定义的按钮样式相匹配的外观和交互效果。
图片
组件
效果:可以添加图标
有很多样式的标签,需要的话可以去官网找。如果不够用的话可以去fontawesome.com.cn去找。使用的话要下载然后导入。
使用的时候直接找到相应的图标然后复制粘贴就可以了。
弹框
进度条
相关推荐
- 团队管理“布阵术”:3招让你的团队战斗力爆表!
-
为何古代军队能够以一当十?为何现代企业有的团队高效似“特种部队”,有的却松散若“游击队”?**答案正隐匿于“布阵术”之中!**今时今日,让我们从古代兵法里萃取3个核心要义,助您塑造一支战斗力爆棚的...
- 知情人士回应字节大模型团队架构调整
-
【知情人士回应字节大模型团队架构调整】财联社2月21日电,针对原谷歌DeepMind副总裁吴永辉加入字节跳动后引发的团队调整问题,知情人士回应称:吴永辉博士主要负责AI基础研究探索工作,偏基础研究;A...
- 豆包大模型团队开源RLHF框架,训练吞吐量最高提升20倍
-
强化学习(RL)对大模型复杂推理能力提升有关键作用,但其复杂的计算流程对训练和部署也带来了巨大挑战。近日,字节跳动豆包大模型团队与香港大学联合提出HybridFlow。这是一个灵活高效的RL/RL...
- 创业团队如何设计股权架构及分配(创业团队如何设计股权架构及分配方案)
-
创业团队的股权架构设计,决定了公司在随后发展中呈现出的股权布局。如果最初的股权架构就存在先天不足,公司就很难顺利、稳定地成长起来。因此,创业之初,对股权设计应慎之又慎,避免留下巨大隐患和风险。两个人如...
- 消息称吴永辉入职后引发字节大模型团队架构大调整
-
2月21日,有消息称前谷歌大佬吴永辉加入字节跳动,并担任大模型团队Seed基础研究负责人后,引发了字节跳动大模型团队架构大调整。多名原本向朱文佳汇报的算法和技术负责人开始转向吴永辉汇报。简单来说,就是...
- 31页组织效能提升模型,经营管理团队搭建框架与权责定位
-
分享职场干货,提升能力!为职场精英打造个人知识体系,升职加薪!31页组织效能提升模型如何拿到分享的源文件:请您关注本头条号,然后私信本头条号“文米”2个字,按照操作流程,专人负责发送源文件给您。...
- 异形柱结构(异形柱结构技术规程)
-
下列关于混凝土异形柱结构设计的说法,其中何项正确?(A)混凝土异形柱框架结构可用于所有非抗震和抗震设防地区的一般居住建筑。(B)抗震设防烈度为6度时,对标准设防类(丙类)采用异形柱结构的建筑可不进行地...
- 职场干货:金字塔原理(金字塔原理实战篇)
-
金字塔原理的适用范围:金字塔原理适用于所有需要构建清晰逻辑框架的文章。第一篇:表达的逻辑。如何利用金字塔原理构建基本的金字塔结构受众(包括读者、听众、观众或学员)最容易理解的顺序:先了解主要的、抽象的...
- 底部剪力法(底部剪力法的基本原理)
-
某四层钢筋混凝土框架结构,计算简图如图1所示。抗震设防类别为丙类,抗震设防烈度为8度(0.2g),Ⅱ类场地,设计地震分组为第一组,第一自振周期T1=0.55s。一至四层的楼层侧向刚度依次为:K1=1...
- 结构等效重力荷载代表值(等效重力荷载系数)
-
某五层钢筋混凝土框架结构办公楼,房屋高度25.45m。抗震设防烈度8度,设防类别丙类,设计基本地震加速度0.2g,设计地震分组第二组,场地类别为Ⅱ类,混凝土强度等级C30。该结构平面和竖向均规则。假定...
- 体系结构已成昭告后世善莫大焉(体系构架是什么意思)
-
实践先行也理论已初步完成框架结构留余后人后世子孙俗话说前人栽树后人乘凉在夏商周大明大清民国共和前人栽树下吾之辈已完成结构体系又俗话说青出于蓝而胜于蓝各个时期任务不同吾辈探索框架结构体系经历有限肯定发展...
- 框架柱抗震构造要求(框架柱抗震设计)
-
某现浇钢筋混凝土框架-剪力墙结构高层办公楼,抗震设防烈度为8度(0.2g),场地类别为Ⅱ类,抗震等级:框架二级,剪力墙一级,混凝土强度等级:框架柱及剪力墙C50,框架梁及楼板C35,纵向钢筋及箍筋均采...
- 梁的刚度、挠度控制(钢梁挠度过大会引起什么原因)
-
某办公楼为现浇钢筋混凝土框架结构,r0=1.0,混凝土强度等级C35,纵向钢筋采用HRB400,箍筋采用HPB300。其二层(中间楼层)的局部平面图和次梁L-1的计算简图如图1~3(Z)所示,其中,K...
- 死要面子!有钱做大玻璃窗,却没有钱做“柱和梁”,不怕房塌吗?
-
活久见,有钱做2层落地大玻璃窗,却没有钱做“柱子和圈梁”,这样的农村自建房,安全吗?最近刷到个魔幻施工现场,如下图,这栋5开间的农村自建房,居然做了2个全景落地窗仔细观察,这2个落地窗还是飘窗,为了追...
- 不是承重墙,物业也不让拆?话说装修就一定要拆墙才行么
-
最近发现好多朋友装修时总想拆墙“爆改”空间,别以为只要避开承重墙就能随便砸!我家楼上邻居去年装修,拆了阳台矮墙想扩客厅,结果物业直接上门叫停。后来才知道,这种配重墙拆了会让阳台承重失衡,整栋楼都可能变...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- 前端框架bootstrap (42)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)