最近在使用PrimeFlex,感觉挺好用的,写篇Blog总结下.它的每个class都有响应式使用方式,但是我的项目不要求响应式,我就不介绍了,需要的话自己去看吧.其实他的每个class我们都可以用自己的css实现,但是他的意义就是减少我们的开发成本,一个class就实现的就没必要再去自己造轮子了.

我项目使用暂时还没升级angular11还是v10,但是primeng用的是 11.3.1.

文档

https://www.primefaces.org/primeng/showcase/#/primeflex

Package.json

引入Primeng以及primeFlex的依赖.

"dependencies": {//..."primeflex": "2.0.0","primeicons": "4.1.0","primeng": "11.3.1",//...}

引入CSS

我是在 src\main\webapp\content\scss\vendor.scss 中引入的. src\main\webapp\app\vendor.ts 会引入这个CSS,然后 app.module.ts 会引入这个ts.当然,你也可以在任何global的css中引入这个.

/*vendor.scss*/
@import '~primeicons/primeicons.css';
@import '~primeng/resources/themes/saga-blue/theme.css';
@import '~primeng/resources/primeng.min.css';@import '~primeflex/primeflex.css';
//vendor.ts
import '../content/scss/vendor.scss';
//app.module.ts
import './vendor';

使用

这个的使用方式就和Bootstrap差不多,就是使用class.接下来我会介绍几个我在项目中感觉会经常用到的class.

Elevation

这个在UI布局中挺好用的,其实它的源码实现就是加了box-shadow. 但是在UI视觉中就感觉这个dom是有一定高度的,很适合在页面中分割不同的组件.


使用方式就是在class中 加入 p-shdow-? ?的值是 1-24的区间值,值越大阴影越深,视觉上就距离z轴越高.

<div class="p-shadow-1" />
<div class="p-shadow-24" />

Display

控制dom的display方式,就是添加 display css进行控制.
inline

block

flex

inline-flex

使用方式就是给dom添加 p-d-? , ?有六个可选值.

<div class="p-d-flex">Flex Container</div>
<div class="p-d-inline-flex">Inline Flex Container</div>

Align Items

这个我是用的比较频繁的内部Item的垂直对齐方式.我们直到在css中vertical-align只能在table中生效. 所以他的源码实现是在display:flex情况下用align-items去控制.



使用方式就是在层div上加入 p-d-flex p-ai-? class. ?的值有五个可选项

<div class="p-d-flex p-ai-start"><div class="p-mr-2" style="height:100px">Item 1</div><div style="height:50px">Item 2</div>
</div>

Align Self

这个和上一个的区别就是,p-ai-? 是用来配置该dom内部所有元素的垂直对齐方式,而这个是设置自己的对齐方式,也就是说一个dom内可以有多个不同的对齐方式.

使用方式就在外层dom上加 p-d-flex ,再在内部dom 加 ***p-as-?***.
他也有五个选项

<div class="p-d-flex" style="height: 150px;"><div class="p-mr-2 p-as-start">Start</div><div class="p-mr-2 p-as-center">Center</div><div class="p-mr-2 p-as-end">End</div><div class="p-mr-2 p-as-stretch">Stretch</div>
</div>

Justify Content

这个作用就是控制dom内部的div分布方式.实现方式是 display:flex 前提下使用 justify-content 来控制.这个在布局中也很常用

start

center

end

between

around

evenly

around和evenly的区别就是,around中间其他div间距相同但是两边的间距不同, 而evenly则是所有的间距相同

使用方式就是在外部dom上加 *p-d-flex p-jc-?. 有六个值可以设置.

<div class="p-d-flex p-jc-between"><div>Item 1</div><div>Item 2</div>
</div>

Wrap

可以控制display:flex内部在有多个div情况下吗,实现方式就是在dispay:flex内部使用 ***flex-wrap***进行控制,超出外部dom最大宽度时的策略.(我给演示图加了border,以及给warp加了 p-jc-evenly,方便体现出效果).其实这个种比较适用于动态添加或者 ngfor出来的div的情况.

no warp


warp

warp reverse

使用方式就是给外部dom添加 ***p-d-flex p-flex-?***,总共三个可选值

<div class="p-d-flex p-flex-wrap"><div class="p-mr-2 p-mb-2">Item 1</div><div class="p-mr-2 p-mb-2">Item 2</div><div class="p-mr-2 p-mb-2">Item 3</div><div class="p-mr-2 p-mb-2">Item 4</div><div class="p-mr-2 p-mb-2">Item 5</div><div class="p-mr-2 p-mb-2">Item 6</div>
</div>

Order

用于指定dom内部div渲染顺序或者称之为排列顺序.实现方式就是在外层dom为display:flex情况下 内部div使用 order 进行控制.这个也是多半用于动态添加div或者ngfor出来div的情况下给div排序用的.

使用方式就是给外部dom添加 p-d-flex,内部div添加 ***p-order-?***,?代表顺序,值越小越靠前.

这就是演示图的源码.

<div class="p-d-flex"><div class="p-mr-2 p-order-3">Item 1</div><div class="p-mr-2 p-order-1">Item 2</div><div class="p-mr-2 p-order-2">Item 3</div>
</div>

Direction

用于控制dom内部div排列方向.实现方式是在display:flex前提下使用 ***flex-direction***进行控制.

row (default)

row-reverse


column

column-reverse

使用方式就是添加 ***p-d-flex p-flex-?***, ?有四个可选值.

<div class="p-d-flex p-flex-column"><div class="p-mb-2 p-mr-2">Item 1</div><div class="p-mb-2 p-mr-2">Item 2</div><div class="p-mb-2 p-mr-2">Item 3</div>
</div>

Grid

这个很像Bootsrap的col网格布局.用法约等于一摸一样.如果你用过bootsrap的col,一行是12个col,那你基本马上就会.唯一不同的是,它的实现方式通过display:flex之后在内部 通过 flex-grow 以及 flex-basis 进行控制.所以一开始介绍的在display:flex种使用的class,在grid里面都可以使用,所以这也是我吧grid放在这里介绍的原因.

<div class="p-grid"><div class="p-col-4">4</div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div><div class="p-col">1 </div>
</div><div class="p-grid"><div class="p-col-2">2</div><div class="p-col-6">6</div><div class="p-col-4">4</div>
</div>


<div class="p-grid"><div class="p-col-6 p-offset-3">6</div>
</div><div class="p-grid"><div class="p-col-4">4 </div><div class="p-col-4 p-offset-4">4</div>
</div>

这是响应式的class,这个必须要带入以下,因为这个在响应式布局中,使用非常多.

Spacing

这个其实我在项目种经常会用到,非常使用,但是也有局限性.实现方式其实就是 margin 或者 padding,其实很多项目种会遇到,想给一个dom给一点margin-left,单独去css里面写个控制太麻烦,直接写style又和整体的代码风格不一致.这个时候这个就很有用了.缺点也很明显,它的值有限制,只有在很小限度内可以使用,比如想给一个 10rem 这种的就不行了.

这个没什么值得演示的,就是给margin或者padding,就直接介绍了.
使用方式就是 p-{property}{position}-{value}

<div class="p-mb-2">Margin bottom with level 2</div>
<div class="p-mt-4">Margin top with level 4</div>
<div class="p-m-2">Margin for all sides with level 2</div>
<div class="p-mx-auto">Auto margins for left and right side</div>
<div class="p-pb-4">Padding bottom with level 4</div>
<div class="p-p-1">Padding for all sides with level 1</div>
<div class="p-m-1 p-p-1 p-m-lg-3 p-b-lg-3">Level 3 spacing for lg screens and level 1 for smaller screens (xs).</div>

Text

接下来是对text的控制,也挺实用的.他的所有使用方式都是 ***p-text-?***,只是?种的值不同, 一个一个来介绍

Alignment
实现方式就是 text-align

<div class="p-text-left">Left</div>
<div class="p-text-center">Center</div>
<div class="p-text-right">Right</div>
<div class="p-text-justify">Justify</div>

一共四个可选值

Wrap
超过div宽度之后的换行策略,这个和之前讲的 flex-wrap,差不多,只不过一个用于控制 flex box内部dom的一个用于控制text的.源码就是通过控制 white-space 以及 ***text-overflow***来实现.

warp (defualt)

nowarp

truncate

<div style="width: 10rem">Long text wraps and does not overlow.</div>
<div class="p-text-nowrap" style="width: 10rem">Long text does not wrap and overflows the parent.</div>
<div class="p-text-nowrap p-text-truncate" style="width: 10rem">Long text does not wrap and overflows the parent.</div>

Transform

控制text大小写,实现就是控制 text-transform. 总共三个可选值,小写 ,大写, 首字母大写.其实这个也可以用angular的pipe实现.但是这个更加方便一点.

<div class="p-text-lowercase">LOWERCASE</div>
<div class="p-text-uppercase">uppercase</div>
<div class="p-text-capitalize">capitalize</div>

Style
控制text的样式,实现就是控制 font-weight 或者 font-style

<div class="p-text-bold">Bold</div>
<div class="p-text-normal">Normal</div>
<div class="p-text-light">Light</div>
<div class="p-text-italic">Italic</div>

Primeng PrimeFlex 的使用总结 (Angular 10)相关推荐

  1. 如何在Angular 10中生成QR码

    In this tutorial, we'll learn how to generate QR codes in Angular 10 by building a simple example ap ...

  2. 小米否认“造车”;微软中国回应关闭实体直营店;Angular 10 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  3. angular 代码生成器_使用Angular 10构建QR代码生成器

    angular 代码生成器 In this tutorial, we'll learn how to build a QR Codes generator application using the ...

  4. Angular 10 - CommonJS or AMD dependencies can cause optimization bailouts warning

    问题描述: 这几天升级公司的一个Angular项目,把Angular更新到最新的10.0.1版本. {"dependencies": {"@angular/animati ...

  5. 10 个 GitHub 上超火和超好看的管理后台模版,后台管理项目有着落了

    大家好,我是你们的 超级猫,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 一般人没事的时候刷刷朋友圈.微博.电视剧.知乎,而有些人是没事的时候刷刷 GitHub ,看看最近有哪些流行的项目. 久而久 ...

  6. 2021年的Angular最佳实践

    目录 使用Angular CLI 保持最新 严格模式 使用延迟加载 取消订阅RxJS Observables 将ngFor与trackBy一起使用 结论 Angular由Google开发人员使用Typ ...

  7. primeng使用步骤

    1,选择路径,使用cli新建项目 选择要创建项目的文件夹路径D:\primeNG files 地址栏打开cmd输入ng new KW2后回车 2,确认创建成功 启动服务器 注意:如果创建成功,用cmd ...

  8. PrimeNG p-tree 手动添加勾选

    Angular+PrimeNG p-tree的勾选 Angular+PrimeNG p-tree 初始化勾选 Angular+PrimeNG p-tree 初始化勾选 业务需求,需要多树勾选联动.这就 ...

  9. Angular 踩坑之版本升级—— TS / Node版本

    这个比较简单也比较坑,可能你只计划升级Node,但最后发现连Angular也要一起升,无形中工作量加大不少,Angular官方也没说对应的TS版本和Node版本.但是在compiler-cli里确实对 ...

最新文章

  1. 计算概论c和文科计算机,计算概论与计算机程序设计基础/C语言【理工学社】
  2. python中线条颜色_python中plot用法——线条、点、颜色
  3. 从体验上拉开差距,Serverless 将成就云计算的下一个 10 年!
  4. 1024,阿里云惊喜 “加油包” 让你 “猿” 力觉醒!
  5. 高德在提升定位精度方面的探索和实践
  6. http与https与socket tcp/IP与UDP 协议等
  7. 盘点下 NSX-v 中“不合理”的命名
  8. CodeIgniter框架中的多语言
  9. mmap和MappedByteBuffer
  10. 使用FileUpload控件上传文件时对文件大小的限制
  11. 用单片机c51电子秤的c语言,原创基于51单片机的电子秤设计 带源代码,原理图毕业设计论文...
  12. iOS 使用WKWebView展示本地gif图片 并设置图片自适应屏幕大小
  13. linux服务器运维基础学习
  14. volatile 与诡异事件
  15. Guided Anchoring 论文笔记
  16. 效果惊人:上古卷轴III等经典游戏也能使用超分辨率GAN重制了
  17. 蓝桥杯嵌入式解决LCD与LED冲突的方法
  18. Appium 自动化测试 H5页面元素定位
  19. Wireshark软件使用
  20. vi 与 vim 有什么区别呢,它们之间有什么关系?

热门文章

  1. 二阶混合偏导数连续则相等的证明
  2. 网页设计之标题栏显示当前系统日期
  3. 银河麒麟Kylin_s10_sp3安装Oracle11g(FS)(官方补丁认证)(亲测有效)
  4. 年薪80万技术专家,面试通过后,被发现简历造假!合并8年前多段工作,惨遭警告和淘汰!
  5. 计算机电源 4pin,用电脑电源4PIN接口做的2mm插头插座,省钱方便~
  6. cf英文名字格式好看的_cf好看的英文名字格式
  7. Linux系统的PAM模块认证文件含义说明总结
  8. 有源和无源设备的共质心布局:回顾和未来之路
  9. Elasticsearch-8.2.0安装问题
  10. java 连接PLC 问题总结 Windows machine for DCOM access, so as to avoid such exceptions.  [0x00000005]