Tailwind
文档:https://tailwind.nodejs.cn/brand
安装
npm install -D tailwindcss
#安装npx tailwindcss init
#初始化npm install @headlessui/vue @heroicons/vue
#如果使用vue则可选安装npm install @tailwindcss/forms
#安装表单模块npm install @tailwindcss/aspect-ratio
#列表模块,更好兼容老浏览器npm install @tailwindcss/typography
#电商详情
vs code安装这个插件Tailwind CSS IntelliSense
在项目中创建src文件夹,并创建tailwind.css文件:
@tailwind base;
@tailwind components;
@tailwind utilities;
编辑tailwind.config.js配置文件:content: ["./*.html", "./src/**/*.{css,js}"],
编译根目录下的html和src下的所有css和js文件
构建:
npx tailwindcss -i ./src/tailwind.css -o ./src/tailwind.css
实时构建:
npx tailwindcss -i ./src/tailwind.css -o ./src/tailwind.css --watch
btcinfo
构建npx tailwindcss -i ./static/tailwind.css -o ./static/main.css --watch
vue
构建npx tailwindcss -i ./src/static/tailwind.css -o ./src/static/main.css --watch
adminvue
构建npx tailwindcss -i ./public/tailwind.css -o ./public/static/admin.css
优先考虑小屏,例如py-0 小屏不要留空,然后从小到大
None width: 100%;
sm (640px) max-width: 640px; 大于640 生效
md (768px) max-width: 768px; 大于768生效
lg (1024px) max-width: 1024px; 大于1024生效
xl (1280px) max-width: 1280px; 大于1280生效
2xl (1536px) max-width: 1536px; 大于1536生效
容器
mx-auto 自动居中 ,作用自身
flex 弹性收缩,单独一行
block 块级元素,会单独一行,不可与flex同时使用
flex-row 水平排列
flex-col 纵向排列
flex-wrap 自动换行
flex-nowrap 不换行
gap-4 调整flex子元素之间的间距
gap-x-8 单独调整横向间距
gap-y-4 单独调整纵向间距
搭配mx-auto居中,和限制它的最大尺寸,一般用于主内容展示
max-w-screen-sm max-width: 640px;
max-w-screen-md max-width: 768px;
max-w-screen-lg max-width: 1024px;
max-w-screen-xl max-width: 1280px;
max-w-screen-2xl max-width: 1536px;
边距
mt 外顶边距
mb 外底边距
mr 外右边距
ml 外左边距
mx 外左右边距
my 外上下边距
pt 内顶边距
pb 内底边距
pr 内右边距
pl 内左边距
space-x 元素之间横向间距
space-y 元素之间纵向间距
文字排版
text-left 左对齐 text-align: left;
text-center 居中text-align: center;
text-right 右对齐 text-align: right;
text-justify 两端对齐,中间会留空text-align: justify;
text-black 文字黑色
text-white 文字白色
leading-* 行高
tracking-* 间距
字体大小text-xs
text-base
text-lg
text-xl
text-2xl
text-3xl
分割线和标题分割线
<hr class="w-full border-t border-gray-300">
<div class="relative">
<div class="absolute inset-0 flex items-center" aria-hidden="true">
<div class="w-full border-t border-gray-300"></div>
</div>
<div class="relative flex justify-center">
<span class="bg-white px-2 text-sm text-gray-500">Continue</span>
</div>
</div>
居中
flex justify-center
//横向居中,作用在它的子元素flex flex-col items-center
子元素居中,且各占一行
单行一行左右分开布局
justify-between 子元素分散排列
flex-initial自动收缩
<div class="flex justify-between">
<div class="flex-initial">左侧内容</div>
<div class="flex-initial">右侧内容</div>
</div>
换行和一行
inline-flex
在一行,作用在子元素items-center
让一行横向居中对齐,作用在子元素
让文本换行<span class="text-wrap" style="overflow-wrap: break-word;">
分列
分4列,每列空隙4
<div class="grid grid-cols-4 gap-4">
<div>01</div>
<!-- ... -->
<div>09</div>
</div>
溢出
overflow-hidden overflow-ellipsis
会让溢出父容器部分显示省略号overflow-hidden
隐藏溢出,但是可内部滑动
truncate
防止文本换行且 溢出
隐藏显示
断点隐藏,小屏下隐藏,大屏显示
<div class="hidden sm:flex"> 在sm处断点
<div class="sm:block hidden"> 也可以这样,默认隐藏在大于sm屏幕时显示
手动黑暗模式
tailwind.config.js:
/** @type {import('tailwindcss').Config} */
module.exports = {
//...
theme: {
extend: {},
},
plugins: [],
darkMode: 'selector',
}
theme.js:
//读取主题,并添加样式,返回是否暗黑模式
function theme () {
var theme1 = localStorage.getItem('theme'); //读取本地主题
if (theme1 != 'dark') {
document.documentElement.classList.remove('dark');
return false;
} else {
document.documentElement.classList.add('dark');
return true;
}
}
index.html:
<script src="/static/PetiteVue.js"></script>
<script src="/static/theme.js"></script>
<script>
PetiteVue.createApp({
isDark: theme(), //当前状态
openDark() {
this.isDark = !this.isDark;
if (this.isDark) {
document.documentElement.classList.add('dark'); //向html添加dark样式
localStorage.setItem('theme', 'dark'); //本地写入主题
} else {
document.documentElement.classList.remove('dark'); //删除dark样式
localStorage.setItem('theme', 'light');
}
},
}).mount();
</script>