Hello Blazor:(2)集成Tailwind CSS

Blazor默认集成了bootstrap,对于我这种后端出身,对CSS一知半解的.NET开发人员来说,使用起来还是有一定难度的。

好不容易才学到点皮毛,结果前端人员居然告诉我,bootstrap已经过时了,现在主流都用Tailwind CSSWTF!

好吧,要学就学主流的,Let's GO!

什么是 Tailwind CSS?

按照官方(https://tailwindcss.com/)的解释:

Tailwind是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计。

用过bootstrap的都知道,bootstrap有很多定义好的组件样式,如果只是开发一些后台管理项目,对样式没有特定要求,用bootstrap就很方便;但是如果和UI设计规范要求不一致(我们的就是),使用起来就很不方便,因为你需要覆盖大量已有的样式。

而Tailwind不提供默认主题或任何预定义的UI组件,它带有预设计的css类,可以在HTML自由组合这些类达到设计要求。例如按钮可以这样实现:

<button class="px-3 py-2 rounded-md bg-blue-600 text-white">Primary</button>

通过组合这些小的样式类,我们可以生成复杂的自定义样式而不用写一行css代码。

在这我就不介绍Tailwind的详细功能了,相关资料,你可以到官方网站查看。

Blazor集成Tailwind

Tailwind官方文档没有Blazor如何集成的说明,虽然可以用CDN方式引入:

<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">

但是连官方都不推荐,因为CDN文件尺寸很大(73.2kB compressed, 3020.7kB raw),会影响加载性能。

所以,只能参照官方文档,通过npm方式安装Tailwind。

初始化

在命令行窗口下,进入Blazor项目的根目录,执行下面命令(当然,你首先需要安装Node.js和npm):

npm init

一路回车,最后会生成package.json文件。

安装Tailwind及其依赖项

执行下面的命令进行安装:

npm install tailwindcss postcss postcss-cli autoprefixer
  • tailwindcss: Tailwind CSS;

  • postcss和postcss-clicli: 一个用于压缩CSS并删除CSS中不被使用的部分的工具,有助于大幅减少CSS文件尺寸;

  • autoprefixer: 一个PostCSS 插件;

配置PostCSS

在项目的根目录下,创建postcss.config.js文件:

module.exports = {plugins: {tailwindcss: {},autoprefixer: {},}
}

配置Tailwind

执行下面的命令,创建Tailwind的配置文件:

npx tailwindcss init

接着,修改wwwroot文件夹中的app.css文件内容,指定导入哪些Tailwind库:

@tailwind base;
@tailwind components;
@tailwind utilities;#blazor-error-ui {background: lightyellow;bottom: 0;box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);display: none;left: 0;padding: 0.6rem 1.25rem 0.7rem 1.25rem;position: fixed;width: 100%;z-index: 1000;
}#blazor-error-ui .dismiss {cursor: pointer;position: absolute;right: 0.75rem;top: 0.5rem;
}

顶部的三行是我们需要添加的全部内容,后面部分是保留默认项目模板中Blazor错误消息的样式。

生成CSS

修改package.json文件,将“scripts”节修改成如下内容:

"scripts": {"buildcss": "postcss wwwroot/css/app.css -o wwwroot/css/app.min.css"
},

执行下面的命令,生成CSS文件:

npm run buildcss

添加样式表引用

最后,去掉项目原有的CSS引用,并将生成的CSS文件添加到Blazor应用程序中:

<link href="css/app.min.css" rel="stylesheet" />

由于我们是WebAssembly项目,需要修改Index.html,如果你是Server项目,则需要修改_Host.cshml。

Blazor使用示例

现在,我们修改razor页面的代码如下:

<button class="px-3 py-2 rounded-md bg-blue-600 hover:bg-red-600 text-white">Primary</button>

 使用就是这么简单,我们不仅创建了按钮,还轻松实现了hover动画。

结论

使用过后,感觉Tailwind和Blazor组件化开发配合起来真是相得益彰,当然这是后面的故事了。

如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“,记住我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301022.shtml

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

相关文章

西游记里学化学,请收下我的膝盖~ | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;视频源网络&#xff0c;侵权删&#xff09;学到了吗&#xff1f;↓ ↓ ↓

从基础开始:Qomo OpenProject中的一些关键词

Qomolangma penProject v0.9类别 &#xff1a;Rich Web Client关键词 &#xff1a;JS OOP&#xff0c;JS Framwork, Rich Web Client&#xff0c;RIA&#xff0c;Web Component&#xff0c; DOM&#xff0c;DTHML&#xff0c;CSS&#xff0c;JavaScript&#xff0…

TabHost两种实现方式

第一种&#xff1a;继承TabActivity&#xff0c;从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了. <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/re…

php正则过滤html标签_空格_换行符的代码,PHP 正则过滤 html 标签、空格、换行符的代码 (文章格式化)...

$strpreg_replace("/\s/", " ", $str); //过滤多余回车$strpreg_replace("/$strpreg_replace("//si","",$str); //注释$strpreg_replace("//si","",$str); //过滤DOCTYPE$strpreg_replace("//si",…

一文让你掌握单元测试的Mock、Stub和Fake

单元测试中有几个神秘的概念&#xff0c;它们就是Mock&#xff0c;模拟对象&#xff1b;Stub&#xff0c;存根&#xff1b;Fake&#xff0c;伪对象&#xff0c;它们听起来很类似&#xff0c;也很容易混淆&#xff0c;让我们通过这篇文章揭开它们神秘的面纱&#xff0c;探索其幽…

有些人还活着,被你一按就死了。。 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;视频源网络&#xff0c;侵权删&#xff09;学到了吗&#xff1f;↓ ↓ ↓

java 反射 本类,关于Java反射中基本类型的class有关问题

关于Java反射中基本类型的class问题1. 基本类型的class和其对应包装类的class是不同的&#xff0c;所以在获得Method指定参数的时候&#xff0c;需要精确指定参数的类型&#xff0c;即 setInt(int x) 无法使用 getMethod("setInt",Integer.class) 获得。2. 基本类型的…

Jafka源码粗略解读之二--关于JMX

2019独角兽企业重金招聘Python工程师标准>>> JMX Jafka里用到了JMX&#xff0c;之前也没用过&#xff0c;迅速突击了一下&#xff0c;感觉还是挺简单的&#xff1a; 有一篇文章用一个例子介绍JMX怎么使用的&#xff0c;简洁明了&#xff1a;http://www.javalobby.or…

参数化的RBAC模型

1 动机 基于角色的访问控制(RBAC)模型被普遍认为是一种有效的访问控制模型&#xff0c;它比传统的自主访问控制(DAC)和强制访问控制(MAC)具有更高的灵活性和更好的扩展性。 在实际应用中&#xff0c;随着企业规模以及信息系统规模逐渐扩大&#xff0c;系统中角色的数目也随之急…

使用 ML.NET 进行保险价格预测

此前通过多篇文章已充分介绍过&#xff0c;ML.NET是一个开源的跨平台机器学习框架&#xff0c;特别适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中&#xff0c;而无需离开 .NET 生态系统&#xff0c;甚至拥有 ML 或数据科学背景。ML.NET 现有的各种内置模型训练器可用…

送礼物给女生,她哭了是怎么回事?

全世界只有3.14 % 的人关注了青少年数学之旅中秋节快要到了&#xff0c;超模君说要给我准备个惊喜&#xff0c;what&#xff1f;结果我在桌面上发现了一个盒子和一大堆 垃圾 零件&#xff0c;清洁阿姨你在哪&#xff1f;我需要你。不过仔细一看&#xff0c;我去&#xff1f;&am…

oracle+11g+rda,Oracle RDA 4.20 初体验

RDA 全名RemoteDiagnostic Agent&#xff0c;是Oracle用来收集、分析数据库的工具&#xff0c;但统计信息远远大于只是数据库的&#xff0c;也可以说是现在一个Oracle dba 角色需要掌握的Oracle DB SERVER的信息&#xff0c;包含数据库安装、配置、性能、备份等信息、操作系统各…

室内设计品牌网站搭建的作用是什么

随着人们生活质量日益提升&#xff0c;对其自身的居住环境也有了较高要求&#xff0c;每个人审美不一样&#xff0c;无论自己居住的房屋还是公司办公/商场等场景都需要设计不同的内容&#xff0c;还有各种设施的摆放及类别等都有讲究&#xff0c;尤其对公司及商场等环境&#x…

面向.NET开发人员的Dapr- actors 构建块

原文地址&#xff1a;https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/actors The actor model originated in 1973. It was proposed by Carl Hewitt as a conceptual model of concurrent computation, a form of computing in which several…

史上最严重的忘拿钥匙事件 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;视频源网络&#xff0c;侵权删&#xff09;难搞噢↓ ↓ ↓

magicAjax问题

如果web.config是requestEncoding"gb2312" responseEncoding"gb2312" 这样使用起来就会卡在loading...那里大家遇到过吗&#xff1f; 但是如果改成requestEncoding"utf-8" &#xff0c;那在搜索里面就不能搜索中文了&#xff0c;汗&#xff5e;…

oracle经常开关好吗,频繁开关机对电脑有什么影响吗?

2005-08-03 08:01:45没关系的哦&#xff0c;一天五六次正常&#xff0c;只要是正常开关机就OK。全部2005-08-03 08:01:452005-08-03 07:49:392005-08-03 05:21:09影响不大完全在合理范围内,等到坏的时候也应该淘汰了全部2005-08-03 05:21:092005-08-03 04:09:04原则上经常性的开…

老是担心数学学不好?这些基础是时候正视了!

我们都知道&#xff0c;数学是学生生涯的一门重要学科&#xff0c;与其担心三年级掉队&#xff0c;不如从小培养良好的学习兴趣和数感直觉&#xff0c;之后的学习就是水到渠成的事了&#xff0c;这可不是报个奥数班就万事大吉了&#xff0c;最关键的&#xff0c;还得从培养孩子…

在 .NET 应用中使用 ANTLR

什么是 ANTLR &#xff1f;ANTLR 是功能强大的解析器生成器&#xff0c;用于读取&#xff0c;处理&#xff0c;执行或翻译结构化文本或二进制文件。它被广泛用于构建语言&#xff0c;工具和框架。ANTLR从语法中生成一个解析器&#xff0c;该解析器可以构建和遍历解析树。ANTLR …

GDB调试程序实例演示

GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许&#xff0c;各位比较喜欢那种图形界面方式的&#xff0c;像VC、BCB等IDE的调试&#xff0c;但如果你是在UNIX平台下做软件&#xff0c;你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功…