首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我写<div />这样的东西时,为什么浏览器会变得疯狂?

当你写<div />这样的东西时,浏览器会变得疯狂的原因是因为这种写法是自闭合标签的语法,但在HTML中,<div>标签是一个块级元素,不应该使用自闭合标签的语法。浏览器会尝试去解析这种不正确的语法,导致解析错误,进而可能引发其他问题。

在HTML中,自闭合标签的语法应该用于一些空元素,例如<br><img>等。这些元素是没有内容的,因此可以使用自闭合标签的语法来简化代码。

正确的写法应该是<div></div>,或者在XHTML中可以使用<div />来表示自闭合。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringMVC中@Controller和@RequestMapping到底什么鬼?

1494897692559029057.png 在上图中,我们可以看它路径是“D:\电影”,该路径下又有一个文件夹【疯狂动物城 2016】,里面是这样 1494897702152088854.png...同理,如果我在同一个Controller里面设置两个相同RequestMapping 1494897766027073622.png 编译是可以通过,但是当我启动tomcat后, 我通过url “http...再来看RequestMapping,最终对应必然是一个方法,方法功能无非就是进行一些业务操作,或者返回一个什么东西。...1.3 @ResponseBody作用 在Controller里面,我们经常可以看到@ResponseBody这个注解,它意思很简单,就是说明这个方法返回东西会通过IO流方式写入到浏览器。..."; } 最终在浏览器获得效果是这样: 1494897809137032549.png

96791

从零开始:一个正式vue+webpack项目的目录结构是怎么形成

然后我们在src目录下面新建一个app.vue文件,里面就可以一些关于项目的业务代码: {{text}} </template...同样,我们希望使用模块依赖,因为项目中会做很多可复用代码,把它写到一个模块里面去,这样的话当我们再去一个新项目的时候,不用再把原来代码重新一遍,或者是拷贝一份。...这样看起来,名称就变得更加合理。...以后新建文件不要乱放,因为项目一旦做大,维护时间比较久时候,可能两三个月里面都有一个文件你不会去碰它。到时候如果要去找一个东西时候,你找不到它,这是非常令人难受一件事情。...最重要一点是,目录结构混乱,导致你后续开发项目的效率变得非常低。 这次关于“一个正式项目的目录结构是怎么形成”的话题就说到这里,我之后文章会讲些什么呢?

1.5K70

React从入门到放弃,一个关于网页速度故事

如果你从没做过那样工作,千万别去做。我会给那些愿意听我抱怨的人,喋喋不休地讲我遇到各种困难。当我开始深入研究前端替代方案,我发现了 FRP、Flapjax 和 ClojureScript。...而且 UX 开发者通过出色实时重新加载(多亏了 CLJS),能够从编辑器连接到浏览器 REPL,并直接在编辑器试验。那简直太棒了! 长话短说,我们前端变得越来越大。...服务端渲染只能帮助一部分,但是混合渲染阻塞浏览器。在比较老旧硬件或 Android 系统上,这变得不可接受!...除此之外,在执行下面描述操作,我们发现 React 也导致一些有问题实践。...当我纠结于对 HTML 片段请求,我明白了一件事:当我为目录页选择技术路线图,最后选择是“类似 intercooler 东西”。 那为什么还不行动呢?

1K20

把 React 作为 UI 运行时来使用

当我们探讨为什么这样却很有意思。 事实上,你很少直接调用 ReactDOM.render 。相反,在 React 应用中程序往往会被拆分成这样函数: ?...我们想要在渲染更新概念上相同 UI 保留这些状态。我们也想可预测性地摧毁它们,当我们在概念上渲染是完全不同东西(例如从 转换到 )。...例如,渲染一棵很深树(在每次页面转换时候发生)而不阻塞浏览器。改变跟踪并不会让它变得更快 — 这样只会让其变得更慢因为我们执行了额外订阅工作。另一个问题是我们需要等待返回数据在渲染视图之前。...相反,React 先触发所有的事件处理器,然后再触发一次重渲染以进行所谓批量更新。 批量更新虽然有用但可能让你感到惊讶如果你代码这样: ?...有些时候,大多数组件需要相同东西 — 例如,当前选中可视主题。将它一层层地传递变得十分麻烦。 在 React 中,我们通过 Context 解决这个问题。

2.5K40

没人告诉你关于 CSS 变量那些事

我们第二个背景颜色并没有被浏览器划掉,反而是第一个背景样式被划掉了。因为第二个背景样式重写了第一个。 为什么会发生这样事情 ?...当我们使用变量作为属性,浏览器只会在 "计算值时间" 去评估值,因为我们需要首先知道变量内容。在这种例子中,当浏览器做联级认为属性值是有效,之后才会变成无效。...在我们例子中,浏览器做级联,认为最后一个声明是有效。但是到评估值时候,最后一个声明被认定是无效,所以它被忽略。...因为一个值是有效还是无效基于 CSS 变量,所以浏览器一开始不能真正知道。...它们可以有奇怪语法 最后一个也是有趣一个。 你知道你能像下面这样么? body { --:red; background:var(--); } 很神奇,对吧?

48620

CSS萌新不知道5件事

CSS 是这样, 但是它远不止这些! 一个成功CSS项目需要最完美的构建。写得不好CSS是脆弱,很快就变得难以维护。关键是要学会如何组织代码,以便创建具有长期可用性可维护结构。...但即使是优秀代码库,也必须处理疯狂设备数量、屏幕大小、功能和用户偏好。 更别提还有可达性,国际化,和浏览器兼容性! CSS 就像一直小熊: 可爱无害,但是随着年龄增长,他活吃了你。...分享与参与 分享真的非常重要,我多么希望当我刚开始进入这一行时候有人跟我分享,我用了10年时间去了解分享价值; 当我做到时候, 它完全改变了我对我工作态度和与他人合作方式。...CSS开发者要远不止CSS这么简单。构建你代码, 编译, linting, 格式化, 以及浏览器实时刷新,这些都是你每天要处理一小部分。 挑选适合自己IDE。...了解浏览器 浏览器不仅仅只是你画布, 同样也是一个强大调试器可以来调试你代码, 测试性能, 以及向别人学习。 学习浏览器如何渲染你代码,让你大开眼界。它可以使你代码提升一个等级。

44320

用 ref 访问 Vue.js 程序中 DOM

浏览器中进行模板检查,它们根本不显示,因为它不是 HTML 属性,只是一个 Vue 模板属性。...,该计数器在单击时会被更新,但是当你在浏览器中打开开发人员工具,你注意到它没有记录日志。...正确使用语法非常重要,因为这意味着 Vue 不会将此视为错误,的确如此。根据我们已经知道关于 Vue refs内容,它们返回一个对象,但是根据未定义响应来判断,有些东西是错误。...检查test.vue 快速查看代码块将揭示正确语法:在模板中它被称为 ref,但是当我们在 Vue 实例中引用它,它被称为 $refs。当不返回 undefined,这提示是非常重要。...为了说明这一点,可创建一个这样简单列表: I am car

2.9K20

React 我爱你,但你太让我失望了

当我刚开始遇到你,我刚刚结束了和 Angular.js 长期关系。我已经被 watch 和 digest 折腾累了,更不用说 scope 了。我一直在寻找不会让我感到痛苦东西。 这就是一见钟情。... )); 你可能问,为什么这么难?...对于像我这样必须维护庞大代码库的人来说,这种持续 API 膨胀是一场噩梦。看到你每天化妆越来越浓,不断提醒你想要刻意隐藏东西。 严格限制 你 Hooks 是个好创意,但它们是有代价。...; }; 因此,所有 effects 依赖项中都包含 isVisible props,并且可能过于频繁地运行(可能损耗性能)。...Facebook 宗旨是 让人们更紧密地联系在一起 !每当我拜访你父母,我都会结识新朋友。 但后来事情变得一团糟了,你父母参加了一个人群操纵计划。

1.1K20

H5学习之路之Web存储解决方案

那么今天我们说是H5才提出存储方案:localStorage和sessionStorage 首先说一下为什么需要这个东西为什么之前已经有了cookie但是H5时候却在客户端存储这块重新定义了这两部分呢...,这样做法结果是用户体验更好,因为毕竟速度快很多,这是一点,另外,服务器压力很小。...我关闭浏览器重新打开还是继续计数,那么说明浏览器只要不变就是没有问题当我们换一个浏览器时候效果是这样: ?...3、浏览器隐私模式下是不可使用 4、它存储空间是变得很大,大概5M左右,那么如果什么我们都存在页面上的话,其实我们是不推荐这样使用这样导致结果是页面变得很卡。...value值必须为字符串类型(传入非字符串,也会在存储转换为字符串。true值转换为"true")。

67610

CSS元素选择器是怎样运作

CSSOM树 当我们写下一组 CSS 样式,例如: #id .class h4 + p { ... } 浏览器在解析它,你可能认为 CSS 按照由左到右依序找出#id>.class>h4...通过 中 .d 来思考,这样 CSSOM 树在套用样式,必须对所有的样式规则进行检查,以确认样式规则是否影响到 .d,到最后才能确定可能影响到 .d 样式规则有这三条...除了开发者定义好 CSS 档外,还有几个地方可能定义样式规则,影响画面的渲染: HTML inline style 设置 浏览器预设值(就是 CSS reset/normalize 要覆盖掉东西...) 浏览器使用者偏好设定 浏览器负责处理 CSS 部分,吧前面所有的东西以及 CSS 文件定义样式规则分别整理成单独样式规则组(CSS 规则集),内容记载了样式规则、目标属性等信息。...这样在取用时,可以依据目标元素是否存在这个属性,快速筛出可能套用样式。

1.7K10

为什么JavaScript开发如此疯狂

事实是,的确如此,你遗漏了一些解决问题重要片段。 并且,前端开发实际上已经陷入了疯狂。 不仅仅是你。 拉过一把椅子,坐下来。到时间JavaScript应用了。 第一步是准备本地开发环境并运行。...你看了一些React文档,“Redux是JavaScript app可预测状态容器。”真棒!你一定需要那些中其中之一。 为什么构建JavaScript应用如此疯狂?!?...让我来帮助你理解为什么我要说这一切是如此疯狂。让我们从一个例子开始,然后转移到漂亮图片。 这是React“Hello, world!”应用。 ? 没有完全完成。 ?...你是(大多数时候)对,但你还需要走一小步才能理解为什么一切都疯了。 下面是我承诺过图片。 ? 绝大多数你将工作JavaScript web应用程序,落在钟形曲线中部某个位置。...并且在中部,如果你从一个完整React堆栈开始,那么从一开始你就大量过度设计了你应用程序。 这就是为什么一切都变得疯狂

64120

所有程序员都应该遵守11条规则

但作为一个程序员,所有这些东西并不是问题真正解决方案,相反,它们只是帮助我们解决问题简单工具。 在面对那些我们喜欢或是当前非常流行特殊技术,我们必须非常小心,而不是变得过于疯狂。...一种经常出现情况是,当我们写出一段“聪明”代码,这段代码并不是特别的“清晰”。 这条规则非常重要,尤其是当我们思考我们要做一些特别“聪明”事情。...当我跟Bob Martin在一起,他说: “你每个注释,都代表着你表达能力欠缺“ -整洁代码:敏捷软件艺术手册 这并不是说一点注释也不,但通常我们可以通过一种更好方式——命名来避免。...代码有很多乐趣,我希望我能写更多代码。 我这几天经常忙于代码并试图让它占据我更多时间,这也是我为什么如此清晰地记得它有多么有趣。...当我代码我会遵循很多”最佳实践“,但有时我也背离它们。 原则是永恒,最佳实践是变通. 11、力求精简 所有问题都可以进行分解. 最佳解决方案往往是最简单.

73380

前端单测,为什么不要测 “实现细节”?

这样原因主要是因为这些 API 测到很多代码实现细节 (Implementation Details)。...然后,很多人又会问:为什么不要测 代码实现细节(Implemantation Details) 呢?很简单:测试本身就很困难了,我们不应该再弄那么多规则来让测试变得更复杂。...重构中 “假错误” 我知道大多数人都不喜欢测试,特别是 UI 测试。原因千千万,但其中我听得最多一个原因就是:大部分人花特别多时间来伺候这些测试代码(指测试实现细节测试代码)。...每次我改点东西,测试都会崩!—— 心声 一旦测试代码写得不好,严重拖垮你开发效率。下面来看看这类测试代码产生怎样问题。...这也是为什么 Enzyme 测试用例为什么这么容易出现 “假错误”,因为 当用它来写一些 End User 和 Developer 都不 care 测试用例,我们实际上是在创造第三个用户视角:Tests

93750

React 教程:React 快速上手指南

大量不断推出新技术同时,也在被不需要它们的人嘲笑,往往很多人都会这样做。我们有时会对不断涌现信息、库和讨论感到不知所措,总希望能有一些稳定东西,就像能让我们可以休整一段时间避风港。...前面我提到了 Babel,这是一个工具,可以帮助我们预览那些尚未在 JavaScript 中(更确切地说是在浏览器中)支持东西,或者以某种方式对 JavaScript 进行扩展(或者类似于 TypeScript...感谢Babel: JSX 将被转化为成浏览器可以理解代码。 我们可以使用尚未在浏览器中实现新功能(例如类属性)。 我们可以支持新浏览器特性,同时在旧浏览器中支持较旧功能。...我很不喜欢对库进行比较,特别是当我们被迫把梨和苹果放在一起进行比较。 因此,我将尝试使用一系列简短问题和答案将 React 与 Angular 和 Vue 进行比较。...prop 还有一个更有用东西叫做 defaultProps,这是一个静态字段,它可以告诉你组件默认 prop 是什么(比如当它们没有传递给组件)。

1.4K30

页面导入样式,使用link和@import有什么区别?

很显然,内联方式引入 CSS 代码导致 HTML 代码变得冗长,且使得网页难以维护。 方式二: 嵌入样式 嵌入方式指的是在 HTML 头部中 标签下书写 CSS 代码。...因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我模板网页这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。...因为嵌入 CSS 只对当前页面有效,所以当多个页面需要引入相同 CSS 代码这样导致代码冗余,也不利于维护。...CSS 文件方式,下面我们来比较这两种方式,并且说明为什么不推荐使用 @import。...; 2、@import 是 CSS2.1 才出现概念,所以如果浏览器版本较低,无法正确导入外部样式文件; 3、当 HTML 文件被加载,link 引用文件会同时被加载,而 @import 引用文件则会等页面全部下载完毕再被加载

4K20

如何 通过使用优先级提示,来控制所有网页资源加载顺序

由于有太多活动,有效地管理这些流量优先级变得至关重要。带宽争用是真实存在,当所有请求同时触发,有些HTTP请求优先级并不像其他请求那样高。...因此,预加载通常最适用于晚些时候发现资源 - 任何不直接由你HTML加载东西,比如通过内联样式属性加载背景图像。但它也适用于任何其他可能不像你希望那样被浏览器优先考虑东西。...当设置为true,即使页面终止,浏览器完成该请求。 何时使用 当你知道多个请求正在并发执行,并且你明确知道哪个最重要(或哪个可以安全地被降级),指示fetch()优先级。...当开始下载,这三者都是“低”优先级。但很快,页面首部那个切换到了“高”优先级。 当我为第一张图片添加fetchpriority属性,情况变得更加可预测: <img src="....这就是<em>为什么</em>这些优先级提示存在<em>的</em>原因:为了使指令清晰,并且让<em>浏览器</em>很少有机会做出错误<em>的</em>决策。下次当你研究自己应用程序<em>的</em>网络活动<em>时</em>,记住它们,当有意义<em>时</em>,使用它们来帮助使你<em>的</em>页面性能更加智能。

19110

响应式、模版克隆、Proxy 代理。。。JavaScript 框架工作原理你还了解多少?

当我阅读大型框架领域最新动态,我常常会被自己不知道事情压得喘不过气来。 不过,了解某些东西如何工作最好方法之一就是自己动手创建。...换句话说,像 或 这样东西不会自动开始下载任何东西。 与手动 DOM API 相比,速度有多快?下面是一个小型基准测试。...当我们构建玩具示例,我们也将使用标记模版字面量(Tagged Template Literals),简单来说它可以让我们用另一种方式进行函数调用,来创建这样 API: const dom = html...当我们将该 state 传递给 render ,它应该返回应用了该状态 DOM 树: Blue!...未来,我认为如果浏览器 API 功能足够齐全,那么构建自定义框架就会变得更加容易。

17710

50个有价值CSS编写规则,让你写出更好CSS

特定选择器示例: section#sample-section —(问为什么需要指定“ section”和ID) main div p.title —(询问为什么需要指定.title以外任何内容)...当嵌套和定位常见 HTML 标签(如 、 和 标签),样式选择器更糟。寻找允许您有效渲染 CSS 但不要采取任何极端措施策略。...对我来说,这些是像带有显示 flex 或网格 center 这样东西,所以我创建了一个类 .center-flex 和 .center-grid。创建类实用程序来自动化这些重复样式组合。...19、对CSS注释 注释是个好东西,采纳吧!如果你编写了复杂 hacks 或发现某些事情有效但不知道为什么,请添加注释。...字体过多网站可能变得混乱,因此,请始终确保包含页面所需字体。字体加载和应用可能需要一些时间,当你有太多字体,你 UI 通常会在字体加载后跳转不到位。

2.3K20
领券