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,一经查实,立即删除!

相关文章

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

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

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;难搞噢↓ ↓ ↓

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;还得从培养孩子…

老师“鬼话”全曝光!哈哈哈哈哈哈全国的老师都这样吗?

老师您辛苦了明天就是教师节啦今天超模君有幸采访到一位从教多年的数学老师01请问您教的科目是&#xff1f;数学收到&#xff0c;over02您从教多久了&#xff1f;唔…快10年了您当过班主任吗&#xff1f;当过&#xff0c;现在也是班主任工作日常是怎样的&#xff1f;备课、改作…

单体系统如何拆分为微服务

当单体系统越来越大&#xff0c;并难于维护时&#xff0c;很多企业开始有意把单体系统拆分为微服务风格架构。这么做很有意义&#xff0c;但不容易。要做好这件事情我们必须学习&#xff0c;我们从一个简单的服务开始&#xff0c;另一方面拉出以垂直功能为基础的服务&#xff0…

Wiki及其他

大概是2年多以前&#xff0c;我几乎是和blog一起听到wiki的概念的。当时blog正备受推崇&#xff0c;而个性色彩稍逊一筹、讲究严肃协作的wiki则没怎么受公众注意。我也一样。后来进入行业之后&#xff0c;我一直想有一套知识库(Knowledge Base)系统&#xff0c;多分类、复杂查找…

linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法

下面将教你如何在Linux服务器Jenkins中管理用户和角色&#xff0c;它需要创建角色并分配给用户&#xff0c;你需要运行Jenkins服务器才能操作接下来的工作。安装Jenkins参考文章在Jenkins中管理用户和角色默认情况下&#xff0c;当你在Jenkins中创建用户时&#xff0c;它几乎可…

还在用Excel做数据分析?两大方法5分钟完成别人一天的工作

全世界只有3.14 % 的人关注了青少年数学之旅我是个只会用Excel的数据分析工作者。有一天&#xff0c;我和同事大鹏约好晚上一起喝酒&#xff0c;离下班还有5分钟&#xff0c;老板突然Q我&#xff1a;我怀着忐忑的心情打开了一个神秘的压缩包&#xff1a;912个CSV表格&#xff0…

poj1033

模拟题&#xff0c;注意不需要移动的情况要特殊输出 #include <cstdio> #include <cstring> #include <cstdlib> using namespace std;#define MAX_CLUSTER_NUM 10005int cluster_num, file_num; int link[MAX_CLUSTER_NUM]; bool is_free[MAX_CLUSTER_NUM];…

ABP Framework V4.4 RC 新增功能介绍

新增功能概述•启动模板删除 EntityFrameworkCore.DbMigrations 项目•CMS-Kit 模块新增 动态菜单管理 功能•对象扩展管理系统新增两个扩展方法&#xff1a;MapEfCoreDbContext MapEfCoreEntity&#xff0c;分别对 数据上下文和实体 自定义映射配置。•文本模板系统新增 Razor…

论文排版怕翻车?这个排版神器赶紧用起来!

论文的重要加分点除了内容&#xff0c;还有它相信每年临近准备毕设或者毕业论文的同学会遇到这些问题&#xff1a;“我的毕业论文提交一次就被导师批评一次&#xff0c;内容不行就算了&#xff0c;格式也有问题&#xff01;改论文改到绝望”“期刊的版式要求不是统一的&#xf…

[正则表达式] 可以解析HTML/XHTML页面的所有元素和结构的Regular Expression![ZT]

ZT: http://www.cnblogs.com/Laser_Lu/archive/2005/04/21/142605.html哈哈&#xff0c;继 昨天的那个正则表达式 之后又写了一个更长的Regular Expression&#xff0c;全长527&#xff0c;是用于查找出所有的XHTML/HTML的标记外面的所有空格&#xff0c;并将之转换为 的。 希望…