一般的UI中CSS框架都是内建各种预设的组件,比如按钮、卡片、警告框等,当需要通过定制化设计时,组件的高度耦合性则带来很大的弊端。Tailwind并不提供预先设计好的内建组件,而是提供了更为基础的工具类(utility classes),可直接在HTML源码上构建完全定制化的设计。

  • Tailwind顺风是一个CSS框架的工具集,Tailwind的理念是抽取共用体(Utilities First)。
  • Tailwind CSS是一个高度可定制的基础层CSS框架,提供了构建定制化所需的构建块,无需重新覆盖内建于框架内中的风格。

CSS类库管理的实质上是CSS命名的问题,目前流行的解决方案有:

  • BEM(Block Element Modifer)
    BEM即.block__element--modifier{}的形式,使用BEM后CSS就有了三个作用域。
  • ACSS(CSS Atomic)
    ACSS是雅虎团队的Atomic CSS,其理念是将样式原子化。

安装

  • NPM
$ npm i tailwindcss
  • CDN
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">

特性

  • 响应式

Tailwind CSS的每个工具类都支持响应式布局,使用类似{screen}:的命名前缀以区分响应式类。

  • 组件友好

仅需使用工具类(utility classes)即可,Tailwind从重复模式中提取组件的工具类。

  • 可定制

Tailwind CSS是基于PostCSS开发的,通过JavaScript代码配置。

核心

实用为主(Utility-First)

传统的Web页面设计需手工为HTML元素编写CSS样式,使用Tailwind可以直接在HTML使用预先定义的类名来设置元素的样式。

自适应设计(Responsive Design)

Tailwind中每个工具类均可有条件地应用到不同的断点(breakpoint),默认情况下根据常见移动设备分辨率划分了4个断点,分别对应4个不同的媒体查询。

自适应

断点 屏幕类型 最小宽度
sm 小型屏幕(small),手机 min-width:640px;
md 中等屏幕(medium),平板 min-width:768px;
lg 大型屏幕(large),笔记本 min-width:1024px;
xl 超大屏幕(extra large),台式机 min-width:1280px;
/*sm small*/
@meida (min-width:640px){}
/*md medium*/
@meida (min-width:768px){}
/*lg large*/
@meida (min-width:1024px){}
/*xl extra large*/
@meida (min-width:1280px){}

当需要为元素添加仅在某个断点处生效的工具类时,需在工具类名前添加前缀breakpoint:classname

例如:不同分辨率设备图片宽度限制

<img class="w-16 md:w-32 lg:w-48" src="..." />

例如:营销页面组件在小屏幕上使用堆叠布局,大屏幕上使用并排布局。

<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"><div class="container mx-auto bg-gray-200 p-4"><div class="md:flex"><div class="md:flex-shrink-0"><img class="rounded-lg md:w-56" src="https://images.unsplash.com/photo-1556740738-b6a63e27c4df?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2550&q=80"/></div><div class="mt-4 md:mt-0 md:ml-6"><div class="uppercase tracking-wide text-sm text-indigo-600 font-bold">市场营销</div><a class="block mt-1 text-lg leading-tight font-semibold text-gray-900 hover:underline">为您的生意发现新的客户</a><p class="mt-2 text-gray-600">经营一家企业是一件非常艰巨的工作,这里有五个可用来发掘您第一个客户的想法。</p></div></div>
</div>
  • md:flex将外部元素默认的display:block在中等屏幕和较大屏幕上转换为display:flex弹性盒子容器。
  • 当图像元素的父元素为弹性容器时,为确保图像不发生收缩,因此为img元素添加md:flex-shrink-0,以防止在中等屏幕和更大的屏幕中不发生收缩。从技术角度来讲可以只是用flex-shrink-0,因为它在较小屏幕上不会起作用,但由于只在md中等屏幕上起作用,所以最好在类名中添加md以明确指明。
  • 小型屏幕上图片默认为全宽,中型屏幕及以上则使用md:w-56将图片宽度限制为固定大小。
  • 小型屏幕上内容部分使用mt-4,即在内容和图像之间添加外顶边距。当在水平并排布局时不需要此边距,使用md:mt-0撤销,并使用md:ml-6添加左边距。

大屏并排布局

小屏堆叠布局

移动优先(Mobile First)

默认Tailwind使用移动优先断点系统,类似Bootstrap或Foundation。这也就意味着那些没有添加断点前缀的类名会在所有屏幕大小上都会生效,比如uppercase。带断点前缀的类名则仅在指定断点及更大尺寸中生效,比如md:uppercase

例如:不同断点处循环使用多个背景色,即调整浏览器大小以查看背景色的更改。

更换背景色

<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"><div class="container mx-auto p-4 bg-gray-200 flex items-center justify-center"><div class="w-20 h-20 rounded bg-red-500 sm:bg-green-500 md:bg-blue-500 lg:bg-pink-500 xl:bg-teal-500"></div>
</div>

伪类变量(Pseudo-Class Variants)

基础样式(base)

Tailwind默认分为三个模块分别是basecomponentutilities

  • base 基础样式
  • component 组件类样式
  • utilities工具类样式

Tailwind以normalize.css为基础,在其上构建出preflight基础样式,其目的在于消除不同厂商浏览器渲染不一致的内置样式。

  • 清零默认外边距

preflight从元素(比如标题、引号、段落等)中删除默认外边距

blockquote,dl,dd,h1,h2,h3,h4,h5,h6,figure,p,pre{margin:0;}
  • 取消标题默认样式

默认标题元素默认样式,使之具有与普通文本相同的字体大小和字号粗细。

h1,h2,h3,h4,h5,h6{font-size:inherit; font-weight:inherit;}
  • 取消列表默认样式
ol, ul{margin:0; padding:0; list-style:none;}
  • 图像类元素设置为块级元素
img, svg, video, canvas, audio, iframe, embed, object{display:block; vertical-align:middle;}
  • 全局重置边框样式
*, *::before, *::after{ border-width:0; border-style:solid; border-color:theme('borderColor.default', currentColor);}

布局(layout)

容器(container)

.container容器类是一个将元素宽度固定到当前断点的组件。

断点 最大宽度
none width:100%;
sm max-width:640px;
md max-width:768px
lg max-width:1024px;
xl max-width:1280px;

.container容器类用于设置元素的最大宽度,以匹配当前断点的最小宽度。适用于固定屏幕大小设计而非容纳完全流动的viewport视口。

.container{width:100%:
}

.container容器类不会自动居中也没有任何内置的水平填充。

盒模型(box sizing)

类名 属性 描述
.box-border box-sizing:border-box; 边框盒模型,元素尺寸包含边框和内边距。
.box-content box-sizing:content-box; 内容盒模型,元素尺寸不包含边框和内边距。

box-sizing属性用于控制浏览器如何计算元素大小,即盒子模型的尺寸。

包含边框和内边距的盒模型(border-box)

border-box

.border-box{box-sizing:border-box;
}

border-box盒子模型会将元素的框大小设置为border box边框盒子模型,告诉浏览器在给定元素的高度或宽度时会包含边框和填充。

例如:创建100px x 100px的元素,使用border box盒子模型时,如果具有2px的边框和4像素的内边距(padding),最终呈现的是 100px x 100px的区域,其中内容区域则为88px x 88px。

<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"><div class="flex align-center justify-center p-4"><div class="box-border h-32 w-32 p-4 border-4 border-gray-400 bg-gray-200"><div class="w-full h-full bg-gray-300"></div></div>
</div>

不包含边框和内边距的盒模型(content-box)

使用box-content类名将定义元素的盒模型为内容框,也就是告诉浏览器在元素计算宽度或高度时包含边框和内边距的大小。

.content-box{box-sizing: content-box;
}

content-box

例如:创建100px x 100px的元素时,若边框为2px,内边距为4px,最终呈现的尺寸为112px x 112px,内部内容区域为 100px x 100px。

<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"><div class="flex align-center justify-center p-4"><div class="content-box w-32 h-32 p-4 border-4 border-gray-400 bg-gray-200"><div class="w-full h-full bg-gray-100"></div></div>
</div>

显示框(display)

CSS中的display属性用于控制元素生成的显示框类型

类名 属性 描述
.hidden display:none 隐藏元素,不显示框。
.block display:block 设置元素显示为块级元素,元素前后会带有换行符。
.inline display:inline 设置元素显示为行内(内联)元素,元素前后没有换行符。
.inline-block display:inline-block 设置元素显示为内联块级元素(行内块元素)
http://www.taodudu.cc/news/show-4582788.html

相关文章:

  • tailWindCSS
  • Tailwind Typographic
  • Tailwind 初识
  • Tailwind教程1 - 开始使用
  • Tailwind 真香
  • vue3.2之 Tailwind CSS
  • Tailwind教程2 - 基础样式
  • 学习Vue3 第三十四章(Vue3集成Tailwind CSS)
  • 船说CMS模板 - 笔趣阁自适应模板
  • Python爬虫爬取笔趣阁小说
  • 爬虫实战|从笔趣阁爬取书籍并简单保存
  • 1.4 爬虫-笔趣阁获取小说例子
  • Python爬虫--笔趣阁小说爬取
  • xpath爬取笔趣阁小说
  • 初学爬虫-笔趣阁爬虫
  • 1.python爬取笔趣阁小说
  • python3爬取笔趣阁小说
  • java爬虫爬取笔趣阁小说
  • python爬取小说爬取_用python爬取笔趣阁小说
  • 用python爬取笔趣阁小说并分章节保存到本地
  • python下载笔趣阁小说生成txt文档
  • 爬虫练习-爬取笔趣阁小说
  • python3+正则(re)增量爬虫爬取笔趣阁小说( 斗罗大陆IV终极斗罗)
  • 学计算机和电子信息工程那个更好找工作,电子信息工程专业毕业月薪一般是多少 好不好找工作...
  • 同感,在另外一个小华为待过,也差不多是这样的
  • 硬件开发规范化管理_华为硬件工程师手册_笔记1
  • 华为各类工程师通信基础面试题库以及答案
  • 应聘华为各类工程师通信基础题库以及答案
  • 华为通信基础面试题库以及答案
  • AMEYA360皇华:电子元器件四大分类

CSS Tailwind相关推荐

  1. tailwind css_什么是Tailwind CSS,如何将其添加到我的网站或React App中?

    tailwind css CSS is a technology that can be your best or worst friend. While it's incredibly flexib ...

  2. 在react脚手架中使用Tailwind CSS (入门)

    参考教程  Build a Website with React and Tailwind CSS - SitePoint 本文翻译外网,主要自用 1. 安装 Tailwind CSS 所需的依赖项 ...

  3. Tailwind CSS

    Tailwind CSS Tailwind CSS是一个实用程序优先的 CSS 框架,用于快速构建自定义用户界面. Useful Links 传奇:官方资源 Website - 官方 Tailwind ...

  4. 在 Laravel 中使用 Tailwind CSS

    Tailwind Tailwind 是新的 CSS 实用程序框架,它很快成为我最喜欢的构建界面的方法.通常,尝试一个新的框架.包或语言的最困难的部分是建立起来. 建造 Tailwind 的人做了一项令 ...

  5. 学习Vue3 第三十四章(Vue3集成Tailwind CSS)

    Tailwind CSS 是一个由js编写的CSS 框架 他是基于postCss 去解析的 官网地址Tailwind CSS 中文文档 - 无需离开您的HTML,即可快速建立现代网站. 对于PostC ...

  6. 前端开发必备的1个CSS框架

    常言道:工欲善其事,必先利其器,项目紧,框架还是很有必要的. 1. Bootstrap 最初被称为Twitter Blueprint的Bootstrap,是作为内部团队使用的工具而创建的.它是最著名的 ...

  7. 2020年面向前端开发人员的10个最佳CSS框架

    " NASA已将机器人降落在火星上,并且一些开发人员仍在他们网站中div的中心对齐方面苦苦挣扎." 这个笑话包含很多真相.对于UI / UX设计人员来说,要制作一个在每个浏览器上看 ...

  8. Tailwind Typographic

    排版样式 字体集合(font family) Tailwind默认采用三种网络安全的字体集合,分别是sans.serif.mono 工具类 说明 font-mono 等宽字体,每个字母宽度相等,用于模 ...

  9. Tailwind Size

    CSS元素的尺寸包括宽度width和高度height两个属性,Tailwind设置尺寸的单位包括rem.百分比.px.vw以及auto. 宽度 最小宽度 最大宽度 高度 最小高度 最大高度 宽度(wi ...

最新文章

  1. 【leetcode 字符串】466. Count The Repetitions
  2. 终于要揭开神秘面纱?Magic Leap将要展示产品
  3. MobileNets论文阅读笔记
  4. 基于matlab的点云重建与三角剖分
  5. leetcode之Climbing Stairs爬楼梯
  6. 【强化学习】多臂老虎机——E_greedy、UCB、Gradient Bandit 算法 代码实现
  7. 【2021年】通过vue-cli创建electron项目
  8. com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed
  9. leetcode 598. Range Addition II | 598. 范围求和 II
  10. 【转】使用JMeter对数据库做压力测试
  11. [剑指offer]面试题第[54]题[JAVA][二叉搜索树的第k大节点][递归][迭代]
  12. opencv mat初始化_【OpenCV入门之十二】看起来一样的图像竟然存在这么大的差别!...
  13. 0.07 秒启动一个 SpringBoot 项目!
  14. c语言输入字符串smallbig,为什么输出不了small,这里big和small都是一样的操
  15. 保护你的DLL和Code不被别人使用。
  16. 静态变量和实例变量的区别。
  17. 【 Codeforces Round #395 (Div. 2) D】Timofey and rectangles【四色定理】
  18. linux下Js加载so,JavaScript文件加载器LABjs API详解
  19. Cloudera Manager Agent 的 Parcel 目录位于可用空间小于 5.0 吉字节 的文件系统上。 /opt/cloudera/parcels(可用:5.0 吉字节 (12.74%)
  20. JAVA Swing主题 简洁扁平化苹果风格主题

热门文章

  1. python asyncio_Python 异步 IO系列:认识asyncio
  2. R155附录5 Part A
  3. 如何优雅的使用markdown来写博客
  4. 商品价格监控接口,超详细的介绍
  5. 如何寻找已注册dll的路径
  6. Nginx 配置SSL 证书 cannot load certificate No such file or directory
  7. PCIe学习(二):PCIe DMA关键模块分析之一
  8. 终于把PEST分析模型给整明白了!
  9. vs2019中采用C++编程使用python中的matplotlib画图库
  10. 糖尿病视网膜病变检测 (Diabetic Retinopathy Detection)