随着尖端 HTML 和 CSS 功能的引入,Web 开发正在经历一场变革之旅。在今天这篇文章中,我们将探讨 15 种高级功能,这些功能现在可以在不依赖 JavaScript 的情况下实现。
我们将提供真实世界的示例,并将它们与旧的基于 JavaScript 的方法进行比较,展示现代 Web 技术的力量。
1.响应式排版
传统上,JavaScript 用于根据屏幕尺寸操纵字体大小。随着CSS自定义属性(变量)和clamp()函数的出现,响应式排版变得轻而易举。
旧方法(JavaScript):
`<p id="responsiveText">This is some text</p>`
`<script>` `const screenWidth = window.innerWidth;` `const baseFontSize = (screenWidth > 768) ? '20px' : '16px';` `document.getElementById('responsiveText').style.fontSize = baseFontSize;``</script>`
新方法(CSS 自定义属性):
`:root { --base-font-size: 16px;``}``p {` `font-size: clamp(var(--base-font-size), 5vw, var(--base-font-size * 1.25));``}`CSS自定义属性和clamp()创建一个响应式且可扩展的排版系统,无需JavaScript也可以实现。
2. 深色模式开关
实现暗模式切换通常使用 JavaScript 来处理。现在,prefers-color-scheme 媒体查询和 CSS 自定义属性无需编写脚本即可实现无缝的暗模式体验。
旧方法(JavaScript)
<label class="switch">` `<input type="checkbox" onclick="toggleDarkMode()">` `<span class="slider"></span>``</label>`
`<script>` `function toggleDarkMode() {` `document.body.classList.toggle('dark-mode');` `}``</script>
新方法(CSS 和媒体查询):
`:root {` `--background-color: #fff;` `--text-color: #000;``}``@media (prefers-color-scheme: dark) {` `:root {` `--background-color: #333;` `--text-color: #fff;` `}``}``body {` `background-color: var(--background-color);` `color: var(--text-color);``}`通过利用CSS自定义属性和prefers-color-scheme媒体查询,无需任何JavaScript干预即可实现暗模式。
3. 交互式悬停过渡
创建复杂的悬停过渡需要使用 JavaScript 来实现更复杂的效果。借助过渡属性和高级 CSS 伪元素,现在无需一行 JavaScript 即可实现这些过渡。
旧方法(JavaScript):
<div onmouseover="expandElement(this)" onmouseout="shrinkElement(this)">Hover me</div>``<script>` `function expandElement(element) {` `element.style.transform = 'scale(1.2)';` `}` `function shrinkElement(element) {` `element.style.transform = 'scale(1)';` `}``</script>
新方法(CSS):
`div {` `transition: transform 0.3s ease-in-out;``}``div:hover {` `transform: scale(1.2);``}`过渡属性简化了悬停效果,使其无需 JavaScript 即可流畅且具有交互性。
4. 占位符动画
输入字段中的占位符动画通常使用 JavaScript 完成。CSS 中的 ::placeholder 伪元素现在无需编写脚本即可实现时尚且动态的占位符动画。
旧方法(JavaScript):
<input type="text" onfocus="animatePlaceholder(this)" onblur="resetPlaceholder(this)">``<script>` `function animatePlaceholder(input) {` `input.placeholder = 'Type something...';` `}``function resetPlaceholder(input) {` `input.placeholder = '';` `}``</script>
新方法(CSS):
`input::placeholder {` `transition: all 0.3s ease-in-out;``}``input:focus::placeholder {` `transform: translateY(-100%);` `opacity: 0.7;``}`当输入字段获得焦点时,::placeholder 伪元素上的 CSS 动画会产生视觉上吸引人的效果。
5. 图片延迟加载
传统上,JavaScript 用于延迟加载图像。img 元素中的加载属性提供了本机解决方案,无需额外的脚本。
旧方法(JavaScript):
<img src="image.jpg" alt="Lazy-loaded Image" id="lazyImage">``<script>` `document.addEventListener('DOMContentLoaded', function () {` `const lazyImage = document.getElementById('lazyImage');` `lazyImage.src = lazyImage.dataset.src;` `});``</script>
新方法(HTML 加载属性):
<img src="image.jpg" alt="Lazy-loaded Image" loading="lazy">
load=“lazy” 属性可确保浏览器延迟加载图像,从而减少对自定义 JavaScript 实现的需求。
6. 滚动触发的动画
滚动上的动画元素传统上涉及 JavaScript。通过引入scroll-margin-top CSS 属性,我们现在无需一行 JavaScript 即可触发动画。
旧方法(JavaScript):
<div class="animate-me" onscroll="animateElement(this)">Scroll to animate</div>``<script>` `function animateElement(element) {` `// JavaScript animation logic` `// ...` `}``</script>
新方法(CSS):
.animate-me {` `opacity: 0;` `transition: opacity 0.5s;` `scroll-margin-top: 20vh;``}``.animate-me.in-view {` `opacity: 1;``}
CSS 与滚动边距顶部属性一起,无需 JavaScript 即可实现平滑的滚动触发动画。
7. 可定制的表单控件
设置表单控件的样式以匹配特定的设计通常需要 JavaScript。随着 :focus-within 伪类和 CSS 自定义属性的出现,我们无需编写脚本即可实现此目的。
旧方法(JavaScript):
<input type="text" class="custom-input" onfocus="highlightInput(this)" onblur="resetInput(this)">``<script>` `function highlightInput(input) {` `input.classList.add('focused');` `}` `function resetInput(input) {` `input.classList.remove('focused');` `}``</script>
新方法(CSS):
.custom-input {` `border: 2px solid var(--input-border);``}``.custom-input:focus-within {` `border: 2px solid var(--input-border-focused);``}``:root {` `--input-border: #ccc;` `--input-border-focused: #007bff;``}
:focus-within 伪类和 CSS 自定义属性为可定制的表单控件提供了纯 CSS 解决方案。
8. 全页叠加菜单
创建覆盖菜单传统上涉及 JavaScript。现在,通过使用 :checked 伪类和 CSS,我们无需编写脚本即可实现全页覆盖。
旧方法(JavaScript):
<input type="checkbox" id="menuToggle" onclick="toggleMenu()">``<label for="menuToggle">Open Menu</label>``<script>` `function toggleMenu() {` `// JavaScript logic to toggle menu visibility` `// ...` `}``</script>
新方法(CSS 和 :checked):
`#menuToggle {` `display: none;``}``#menuToggle:checked + label {` `/* Styles for open menu */``}``label {` `cursor: pointer;``}`通过利用 :checked 伪类,我们可以在没有 JavaScript 的情况下创建全页覆盖菜单。
9.渐变边框
传统上,实现渐变边框涉及复杂的 CSS 或 JavaScript 解决方案。随着 conic-gradient 属性的出现,我们无需任何脚本即可创建渐变边框。
旧方法(JavaScript):
<div class="gradient-border" onclick="toggleGradient()">Click to toggle gradient border</div>``<script>` `function toggleGradient() {` `// JavaScript logic to toggle gradient border` `// ...` `}``</script>
新方法(CSS 圆锥梯度):
`.gradient-border {` `border: 5px solid;` `border-image: conic-gradient(from 0deg at 50% 50%, red, yellow, green, blue, purple);` `border-image-slice: 1;``}`conic-gradient 属性简化了渐变边框的创建,无需 JavaScript。
10. 多列布局
传统上,创建多列布局需要 JavaScript 来进行动态调整。随着CSS中column属性的出现,我们无需编写脚本即可实现复杂的多列布局。
旧方法(JavaScript):
<div class="multi-column" onclick="adjustColumns()">Click to adjust columns</div>`
`<script>` `function adjustColumns() {` `// JavaScript logic to adjust column layout` `// ...` `}``</script>
新方法(CSS 列):
`.multi-column {` `column-count: 3;` `column-gap: 20px;``}`CSS 中的 column 属性允许创建优雅的多列布局,而无需依赖 JavaScript。
11.自定义复选框和单选按钮样式
使复选框和单选按钮的样式与特定设计保持一致通常涉及 JavaScript。现在,使用 :checked 伪类和 CSS,我们可以实现自定义样式,而无需编写脚本。
旧方法(JavaScript):
<input type="checkbox" id="customCheckbox" onclick="toggleCheckbox()">``<label for="customCheckbox" class="custom-checkbox"></label>`
`<script>` `function toggleCheckbox() {` `// JavaScript logic to toggle checkbox state` `// ...` `}``</script>
新方法(CSS 和 :checked):
`input[type="checkbox"] {` `display: none;``}`
`input[type="checkbox"] + label {` `width: 20px;` `height: 20px;` `background-color: #ccc;` `display: inline-block;``}`
`input[type="checkbox"]:checked + label {` `background-color: #007bff;``}`利用 :checked 伪类可以在不使用 JavaScript 的情况下创建自定义复选框样式。
12. 无缝页面转换
创建无缝页面转换通常需要使用 JavaScript 来处理动画。使用滚动行为 CSS 属性,我们无需编写脚本即可实现平滑过渡。
旧方法(JavaScript):
<a href="#about" onclick="scrollToSection('about')">About</a>``<script>` `function scrollToSection(section) {` `// JavaScript logic to scroll to the specified section` `// ...` `}``</script>
新方法(CSS 滚动行为):
`body {` `scroll-behavior: smooth;``}`滚动行为属性可以实现平滑滚动,而不需要 JavaScript 事件侦听器。
13.等高列的柔性盒(Flexbox)
传统上,均衡列高需要 JavaScript 来进行动态调整。通过CSS中的Flexbox布局,我们可以毫不费力地实现等高的列。
旧方法(JavaScript):
<div class="flex-container" onclick="adjustColumnHeights()">Click to adjust column heights</div>``<script>` `function adjustColumnHeights() {` `// JavaScript logic to equalize column heights` `// ...` `}``</script>
新方法(CSS Flexbox):
`.flex-container {` `display: flex;``}``.flex-container > div {` `flex: 1;``}`Flexbox 布局允许灵活且等高的列,无需 JavaScript 调整。
14.动态渐变文本
创建动态渐变文本传统上涉及复杂的 JavaScript 或 SVG 解决方案。 借助CSS,我们现在可以轻松实现渐变文字效果。
旧方法(JavaScript):
<div class="gradient-text" onclick="toggleGradientText()">Click to toggle gradient text</div>`
`<script>` `function toggleGradientText() {` `// JavaScript logic to toggle gradient text` `// ...` `}``</script>
新方法(CSS线性渐变):
`.gradient-text {` `background-clip: text;` `color: transparent;` `background-image: linear-gradient(to right, #ff8c00, #ffcd00);``}`background-clip 属性和 Linear-gradient 使得动态渐变文本可以通过纯 CSS 实现。
15. 在图像上叠加文本
传统上,在图像上叠加文本需要 JavaScript 来定位。 通过CSS中的position属性,我们无需编写脚本就可以轻松实现文本叠加。
旧方法(JavaScript):
<div class="image-container">` `<img src="image.jpg" alt="Overlay Image">` `<div class="overlay-text" onclick="toggleOverlayText()">Click to toggle overlay text</div>``</div>`
`<script>` `function toggleOverlayText() {` `// JavaScript logic to toggle text overlay position` `// ...` `}``</script>
新方法(CSS Position ):
`.image-container {` `position: relative;``}``.overlay-text {` `position: absolute;` `top: 50%;` `left: 50%;` `transform: translate(-50%, -50%);``}`Position属性简化了在图像上叠加文本的过程,无需 JavaScript 计算。
结论
在这个引人入胜的探索中,我们深入研究了 15 种不依赖 JavaScript 的高级 Web 开发技术。 探索创建无缝页面转换、巧妙设置复选框样式以及轻松实现响应式排版的艺术 - 所有这些都使用 HTML 和 CSS 的强大组合。
涵盖的主题:
-
无需 JavaScript 的响应式排版:探索 CSS 自定义属性和用于创建响应式和可扩展文本的clamp()函数的世界。
-
使用 CSS Magic 进行深色模式切换:深入研究首选颜色方案媒体查询和 CSS 自定义属性,无需一行 JavaScript 即可无缝实现深色模式。
-
交互式悬停转换变得简单:通过简单的转换属性和高级 CSS 伪元素来转换悬停效果,将 JavaScript 抛在后面。
-
使用纯 CSS 的动态渐变文本:见证使用背景剪辑属性和线性渐变轻松实现的动态渐变文本效果的优雅。
-
使用 Flexbox 实现等高列:告别用于均衡列高的 JavaScript,拥抱 CSS Flexbox 的强大功能,实现灵活且统一的布局。
-
踏上以 HTML 和 CSS 为中心的编码冒险之旅,揭示各种可能性,从而提高您的 Web 开发技能。 关注我们,一起揭开现代 Web 开发的秘密,一次一种无 JavaScript 的技术。
当我们学习完了这 15 种不需要 JavaScript 的高级 Web 开发技术时,很明显 你的HTML 和 CSS 的力量得到了充分的展示。 每种技术不仅简化了复杂的任务,而且无需编写脚本即可增强用户体验。
从响应式排版和暗模式切换到图像延迟加载和无缝页面转换,这些技术展示了现代网络技术的灵活性和功能。 通过利用这些功能,开发人员可以创建复杂的交互式 Web 应用程序,同时保持干净高效的代码库。
这一探索强调了了解 HTML 和 CSS 最新功能的重要性。 随着 Web 开发环境的发展,采用这些无 JavaScript 解决方案成为构建高效、可访问且用户友好的网站的关键。
如果你发现这些无 JavaScript 的技术很有趣的话,请记得给我点赞,并且关注我,你将会学习到更多有趣有用的知识。
2025开年,AI技术打得火热,正在改变前端人的职业命运:
阿里云核心业务全部接入Agent体系;
字节跳动30%前端岗位要求大模型开发能力;
腾讯、京东、百度开放招聘技术岗,80%与AI相关……
大模型正在重构技术开发范式,传统CRUD开发模式正在被AI原生应用取代!
最残忍的是,业务面临转型,领导要求用RAG优化知识库检索,你不会;带AI团队,微调大模型要准备多少数据,你不懂;想转型大模型应用开发工程师等相关岗,没项目实操经验……这不是技术焦虑,而是职业生存危机!
曾经React、Vue等热门的开发框架,已不再是就业的金钥匙。如果认为会调用API就是懂大模型、能进行二次开发,那就大错特错了。制造、医疗、金融等各行业都在加速AI应用落地,未来企业更看重能用AI大模型技术重构业务流的技术人。
如今技术圈降薪裁员频频爆发,传统岗位大批缩水,相反AI相关技术岗疯狂扩招,薪资逆势上涨150%,大厂老板们甚至开出70-100W年薪,挖掘AI大模型人才!

不出1年 “有AI项目开发经验”或将成为前端人投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
大模型目前在人工智能领域可以说正处于一种“炙手可热”的状态,吸引了很多人的关注和兴趣,也有很多新人小白想要学习入门大模型,那么,如何入门大模型呢?
下面给大家分享一份2025最新版的大模型学习路线,帮助新人小白更系统、更快速的学习大模型!
2025最新版优快云大礼包:《AGI大模型学习资源包》免费分享**
一、2025最新大模型学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场
L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程
L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践
L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

三、大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

四、大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

780

被折叠的 条评论
为什么被折叠?



