lemooljiang avatar

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

lemooljiang

Published: 27 May 2023 › Updated: 27 May 2023Unocss, css原子化引擎 / nuxt#4

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。有包容性的工具真心不错。

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

Written by

Designer , Poet , Technology enthusiasts

Read more #cn posts


Best Posts From lemooljiang

We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From lemooljiang