同浏览器对网页默认的组件解析样式不一致,而且不够美观,网页样式开发需要大量时间,今天介绍一款优雅的 CSS 框架。
Pico.css 是一个简单轻量化的 CSS UI 框架,最大的特点是样式都基于 HMTL 原始的标签名和内置的属性,少用甚至是不用 class 来定义样式,写出来的代码语义清晰,可维护性强,能够帮助开发者构建自己的 UI 系统,也可以直接用于快速的小型项目中。
Pico-css 官网
截止发文日期,Pico.css 在 Github 上已经有高达 3898 个 Star。
引入 Pico.css 最简单直接的方式就是下载后直接引入一个样式文件:
Pico-css cdn 引入
当然也可以通过 npm 安装:
Pico-css npm 安装
然后就可以编写 html 代码了。
想要做一个输入框和提交表单,往往需要这样的代码:
常规实现 form 表单代码
而使用 Pico.css,只需要:
Pico-css 实现表单
Pico.css 内置了很多基础的组件,包括常用表单控件、表格、弹窗、导航菜单、卡片等,代码非常简洁,比如实现一个美观的进度条,只需要这点代码:
Pico-css 实现进度条
Pico.css 内置了浅色和深色两套主题,使用方法非常简单,给父级元素添加属性data-theme。
切换主题
官网还有很多代码例子,比如编写一个美观大气的登录界面,html 代码十分简洁,仿佛回到了刚刚开始学习 html 语法的时代。
登录界面
通过 CSS 文件的源码,可以看到样式的选择器大多通过 HTML 元素标签名、内置的属性以及自定义属性来命中,这样就规避了常规的只使用 class 来区分的“命名地狱”,是一种非常好的网页编程思路。
Pico-css 源码
面向对纯粹 HTML 有极致追求的开发者,Pico.css 还提供了 classless 版本,这个版本将一个 class 都没有,完全使用元素标签名和属性编写网页。
在项目中使用 Pico.css 源自于一次快速的营销页需求,需要做简单的几个带有输入交互的页面,使用 bootstrap 这样庞大的框架显然有点笨重了,如果使用当前流行的能够按需引入的 Vue UI 组件库,又免不了要用 Vue.js 来工程化。只是做几个简单的页面,没有必要用中大型项目的标配,考虑到目前市面上大多数 UI 框架都过度封装,堆叠了很多包含各种语义的 class 名,不仅会让页面加载变慢,而且会导致更长的样式计算时间,最终还是找到了适合这样场景的 Pico.css。
css 样式的写法很自由,目前前端开发存在一个趋势,为了做精美的界面,需要花费大量的时间来写样式,为了样式可以复用,绞尽脑汁给 class 起名字,甚至网上还有各种 class 命名规范,这可能导致了大量的样式被覆盖,很多时候 class 属性的名称,甚至比样式的代码还要多,极难维护。
Pico.css 的出现给这样的开发现状提供了一种新思路,不仅可以直接用在实际项目中,也能够作为构建自己的 UI 库的基础样式。
Pico.css 是一个免费开源的项目,源码基于 MIT 开源协议托管在 Github 上,任何个人和公司都可以免费下载使用。
关注我,持续分享高质量的免费开源、免费商用的资源。
↓↓点击查看本次分享的网址。
Pico.css - 简单优雅的纯 CSS 开源 UI 框架,用原始的 HTML 元素标签来做界面|那些免费的砖
者 | Tim Anderson
译者 | 王强
策划 | Tina
AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!
用于扩展 HTML 规范的 Htmx 项目发布了 2.0 版,这是该项目自 2020 年 11 月 发布 1.0 版以来的第一个主要版本。
Htmx 2.0 取消了对 Internet Explorer 的支持,并将扩展项移出了核心存储库,这样每个扩展都可以按照自己的节奏发布更新了。新版本还删除了一些已弃用的属性,并将 HTTP DELETE 请求更改为使用参数。
新版还加入了一些新特性,包括 htmx.swap() 方法,该方法用新内容替换现有内容。它替换并改进了现有的内部 selectAndSwap() 方法。新版还改进了与 Web 组件、可重复使用的自定义元素的集成。
新版发布博文解释说,为了避免破坏现有项目,1.x 版本将在 NPM(节点包管理器)中继续标注为为“latest”,2.x 还是“next”,直到 2025 年 1 月 1 日为止。迁移到 2.0 版并不困难,但根据迁移指南,用户可能需要做一些工作。
Htmx 是一种新的前端开发方法,侧重于 HTML 而非 JavaScript(尽管它是作为 JavaScript 库实现的)。Htmx 是从之前的一个项目 intercooler.js 发展而来的,后者是由 Htmx 发明者 Carson Gross 于 2013 年创建。这两个项目的灵感都来自于这样一种观点:HTML 的特性一直因为行业对 JavaScript 框架的关注而被限制住了,而 JavaScript 框架的复杂性却一直在增长。Gross 在 2020 年推出 1.0 版时写道:“HTML 导向的 Web 开发范式被抛弃,不是因为超文本是个坏主意,而是因为 HTML 没有足够的表达能力。htmx 旨在解决这个问题,并让你可以使用 Web 的原始超文本模型实现许多常见的现代 Web UI 模式。”
Htmx 现在支持包括异步请求、CSS 转换和使用 HTML 属性的 WebSocket 通信在内的特性。
尽管 Htmx 仍然不如 React 或 Angular 等框架那么出名,但它还是收获了开发人员的赞赏。之前就有人提到,“我绞尽脑汁想找出一个没有过度设计的 js 框架,找到 htmx 让我非常高兴”。另一个人则表示“Htmx 简直太棒了。我们正用它来完成一个重大项目。”
Gross 参与了 Hacker News 上的讨论并回答了问题。有人问他,是否在设法将 Htmx 的一些特性推向 HTML 标准?“我们正在与 Chrome 开发人员讨论这些想法,我持谨慎乐观的态度”,Gross 说。
Htmx 使用的是 XMLHttpRequest,而非更新、更强大的 fetch API。有人问,团队是否考虑过改用 fetch?“看过了,不幸的是 fetch() 和 xhr 有一组不相交的特性(特别是 xhr 的上传进度),所以我们决定不碰它”,Gross 回答道。
该项目在 GitHub 上根据 Zero-Clause BSD 许可开源。
原文链接:
https://devclass.com/2024/06/18/htmx-2-0-released-aims-to-replace-complex-javascript-frameworks-with-easily-understood-html-attributes/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:Htmx 2.0 发布:用易懂的 HTML 属性取代复杂 JavaScript 框架_架构_InfoQ精选文章
端工程师在创建web应用时一般都会选择合适当前项目的框架,目前JavaScript开发中有几十种常用框架可以选择,基本都是大同小异,但我们更应该选择开发者受欢迎的,而且有在维护已成熟不断更新技术的框架。
第一个是最基础,受初学者喜爱的Bootstrap,Bootstrap 是全球最受欢迎的前端组件库,用于开发响应式布局、移动设备优先的 WEB 项目,框架本身已经装有强大的 jQuery 插件,开发者直接使用即可。目前已经更新Bootstrap4,当然我们推荐先使用成熟的Bootstrap3。
Bootstrap
第二个jQuery是JavaScript最古老框架之一,它是JavaScript的压缩版,整合JavaScript最常用的功能,写得少,做得多,目前市场上的网站前端都使用到jQuery。
jQuery对DOM的操作非常容易,提高AJAX(异步 JavaScript 和 XML)方便使用,即后台加载数据无需重新加载整个页面。jQuery支持目前所以流行浏览器,跨浏览器支持特性很强。
jQuery中文社区很成熟,学习很方便,目前开发者一直不断贡献,已经发展14年的它不会被开发者忘记。
jQuery
第三个Vue是UI开源的JavaScript 框架,Vue数据体积很小,正常20k左右。Vue.js与DOM数据绑定,渲染函数的模板。目前开发文档也很简单易懂,你随时可用根据文档写出自己第一个Vue页面。
Vue
第四个NodeJS,很多人称为前端后台框架,Node.js 是一个基于 Google Chrome 的 JavaScript 引擎构建的开源服务器端平台,所以我们NodeJS使用编程后台数据逻辑,包括操作数据库等功能。
Node.js 库的所有API都是异步的,即非阻塞的。利用这个特点我们在使用异步功能时,服务器永远不会等待 API 返回数据,服务器在调用一个API之后直接移动到下一个 API。
Node.js还有一个特点是使用带有事件循环的单线程模型,Node.js 使用的单线程可以有更多的请求服务。
NodeJS
第五个AngularJS是目前JavaScript最强大、最高效的 JavaScript 框架之一。
AngularJS是 MVC 架构(模型、视图和控制器),给开发者提供高效的逻辑。
AngularJS 通可以过指令扩展了HTML,且通过表达式绑定数据到 HTML页面。
AngularJS
以上五个前端JavaScript框架是目前受欢迎使用的框架。
*请认真填写需求信息,我们会在24小时内与您取得联系。