Unocss, css原子化引擎 / nuxt#4

unocss.jpg

https://unocss.dev/

在CSS这块有时是按需手写的,效率不算高,毕竟需求低嘛。流行的LESS 、SASS 都没用过,真没太多时间花在这方面。这次,为了做AI应用,还是需要补一下这方面的技能。

在UI方面选了NaiveUI, CSS方面则有个挺时髦的解决方案:Tailwind CSS。它做了一件蛮有用的更新:就是将CSS语句原子化! 我们听过数据库原子化,CSS语句原子化是个啥?

CSS原子化其实就是简化CSS语句,比如这样:padding-bottom: 1rem; -> pb-1, 这样的转换后,就可以直接在<div>中使用了,比如这样的语句:<div bg-pink-200 text-cyan>我的国家</div>

用了一段时间的Tailwind CSS, 发现它有个很死板的规定:有些数字是不能使用的!比如: pb-4是合法语句,但pb-5却非法!这是什么鬼?! 还有些其它奇葩的规定,累觉不爱。

后来转到了Unocss,发现Unocss是个新鲜、有活力的项目。Unocss兼具了TailwindCSS 和 Windicss的优点,同时还具有自身的定制性和灵活性。按需引入,体积小,速度快。用着用着,很快就爱上了。用了一段时间,也总结了一些方法。

使用方法

  1. 直接在 div 中使用
<div class="bg-blue-200"> Index Page</div>
<div bg-pink-200 text-cyan></div>
  1. 在style中定义
<div class="text"> Index Page</div>
<style>
.text {
  @apply text-xs text-red-300 hover:bg-zinc-900;
}
.btn {
  @apply text-red-700  border border-red-500 !rounded-full;  // rounded-full !important 
}
</style>
  1. 混合的写法也是可以的
.test {
  color: white;
  font-size: 2rem;
  @apply bg-blue;
}

常用语法

bg-purple-100  
text-purple-100 
text-center    
align-middle  
!w-[80%]    //width: 80% !important;
shadow-sm  
cursor-pointer 
outline-none  
font-italic  

hover:bg-purple-500 
focus:bg-purple-900  
flex justify-center items-center  
flex justify-between  
min-h-sceen / min-h-100vh 
min-h-80vh 
h-80vh / calc(100vh - 10px)
w-full / w-100vw 

w-[95%] lg:w-[85%] ~= w-95vw  lg:w-85vw

m-auto / mx-auto 
ml-auto 
mr-auto 
px-4 / py-4  /padding: 1rem; px-[20px]
pt-4  1rem(padding-top: 1rem;)
mx-4 / my-4  /

animate-fade-in  
<div border-t-dashed border-1></div>  线线

/* flex布局,两端对齐 */
<div flex mb-2 justify-between>  
  <p mr-2></p>
  <div w-65vw lg:w-42vw> xxx </div>
</div> 

 /* 响应式 */
 5 smmdlgxl2xl 
        CSS
sm  640px   @media (min-width: 640px) { ... }
md  768px   @media (min-width: 768px) { ... }
lg  1024px  @media (min-width: 1024px) { ... }
xl  1280px  @media (min-width: 1280px) { ... }
2xl 1536px  @media (min-width: 1536px) { ... }

/* 定位手机屏幕 */
使 sm:  sm: 
 sm  xl 

使
<div class="text-center sm:text-left"></div>  //
flex-1 flex justify-end lg:hidden  //手机端时显示,屏幕变大时隐藏
relative hidden lg:flex items-center ml-auto  //在电脑端的样式(在手机端时隐藏)
hidden lg:flex items-center px-4  //在电脑端的样式(在手机端时隐藏)
hidden lg:block ml-auto //在电脑端的样式(在手机端时隐藏)
ml-auto lg:hidden//在手机端时居中,电脑端隐藏

Unocss做了精简后的语法,在开发时确实可以加快速度。在所见即所得方面更是友好,一改就有,在前端方面真是不可多得的利器。其实日常最常用的估计也就20来条语句,有些不知道,仍然可以用回CSS。有包容性的工具真心不错。

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center