tailwindcss学习笔记之color、margin、padding、border

所属分类:HtmlCssJs | 浏览:235 | 发布于 2025-11-19

1、color

color分为文字颜色、边框颜色、背景颜色,分别使用 bg-border-text- 前缀。

1.1、常见类

Class Styles
[pre]-inherit [pre]-color: inherit;
[pre]-current [pre]-color: currentColor;
[pre]-transparent [pre]-color: transparent;
[pre]-black [pre]-color: var(--color-black); /* #000 */
[pre]-white [pre]-color: var(--color-white); /* #fff */
[pre]-[<value>] [pre]-color: <value>;
[pre]-(<custom-property>) [pre]-color: var(custom-property);

1.2、[pre]-[<value>]用法

[pre]-[<value>]用于去设置一个完整的自定义值,如:

<div class="bg-[#50d71e] ...">
  <!-- ... -->
</div>

1.3、[pre]-(custom-property)用法

[pre]-(custom-property)用于去设置一个css变量,貌似我不会用到,暂时不考虑,官方示例:

<div class="bg-(--my-color) ...">
  <!-- ... -->
</div>

1.4、<color>/[100-1]改变颜色透明度

<button class="bg-sky-500/100 ..."></button>
<button class="bg-sky-500/75 ..."></button>
<button class="bg-sky-500/50 ..."></button>

1.5、英文标识类

以下22种颜色有[1-9]00、950,以及无数字后缀,共11种选择,用法如:[pre]-red,[pre]-red-950。

english 中文   english 中文
red 红色   indigo 靛蓝色
orange 橙色   violet 紫罗兰
amber 琥珀色   purple 紫色
yellow 黄色   fuchsia 紫红色
lime 淡绿色   pink 粉色
green 绿色   rose 玫瑰色
emerald 翠绿色   slate 板岩色
teal 凫蓝   gray 灰色
cyan 蓝绿色   zinc 锌色
sky 天蓝色   neutral 中和色
blue 蓝色   stone 石头颜色

2、margin

2.1、m-<number>

使用`m-<number>`工具像`m-4` 和 `m-8`来控制元素所有方向的外边距,示例

<div class="m-8 ...">m-8</div>

2.2、某一边的外边距

使用 `mt-<number>`,`mr-<number>`,`mb-<number>`,和`ml-<number>` 像 `ml-2`、`mt-6`来控制某一边的外边距,示例:

<div class="mt-6 ...">mt-6</div>
<div class="mr-4 ...">mr-4</div>
<div class="mb-8 ...">mb-8</div>
<div class="ml-2 ...">ml-2</div>

2.3、mx-<number>水平方向外边距

使用`mx-<number>`像`mx-4`和`mx-8`来控制水平方向的外边距,示例:

<div class="mx-8 ...">mx-8</div>

2.4、my-<number>垂直方向外边距

使用`my-<number>`像`my-4`和`my-8`来控制垂直方向的外边距,示例:

<div class="my-8 ...">my-8</div>

2.5、负边距

To use a negative margin value, prefix the class name with a dash to convert it to a negative value。

要使用负边距值,请在类名前加上一个破折号,将其转换为负值,示例:

<div class="h-16 w-36 bg-sky-400 opacity-20 ..."></div>
<div class="-mt-8 bg-sky-300 ...">-mt-8</div>

2.6、使用逻辑属性

logical properties:逻辑属性,指在编程或设计中运用基本逻辑思维的属性设置方式,例如CSS中的margin-inline-start这类与书写方向无关的属性。现在CSS推荐使用逻辑属性来支持从右到左的布局。

使用`ms-<number>` 或 `me-<number>` 像 `ms-4` 和 `me-8` 来设置 `margin-inline-start`和 `margin-inline-end` 这样的逻辑属性,示例:

<div>
  <div dir="ltr">
    <div class="ms-8 ...">ms-8</div>
    <div class="me-8 ...">me-8</div>
  </div>
  <div dir="rtl">
    <div class="ms-8 ...">ms-8</div>
    <div class="me-8 ...">me-8</div>
  </div>
</div>

2.7、space-[x|y]-<number>子元素间距

使用`space-x-<number>` 或者 `space-y-<number>` 像 `space-x-4` 和 `space-y-8` 来控制子元素的间距,示例:

<div class="flex space-x-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

2.8、[<value>]自定义值

使用像 `m-[<value>]`, `mx-[<value>]`, 和 `mb-[<value>]` 来设置一个自定义外边距值,示例:

<div class="m-[5px] ...">
  <!-- ... -->
</div>

2.9、使用变量

使用 `m-(<custom-property)` 类似的语法来设置变量,示例:

<div class="m-(--my-margin) ...">
  <!-- ... -->
</div>

这种写法只是 `m-[var(<custom-property>)]` 的一个简写,会自动为你增加 `var()` 函数调用。

3、padding

padding的用法与margin基本类似,这里根据自己的理解归纳列举出来。

Class Styles
p-<number> padding: calc(var(--spacing) * <number>);
px-<number> padding-inline: calc(var(--spacing) * <number>);
py-<number> padding-block: calc(var(--spacing) * <number>);
ps-<number> padding-inline-start: calc(var(--spacing) * <number>);
pe-<number> padding-inline-end: calc(var(--spacing) * <number>);
pt-<number> padding-top: calc(var(--spacing) * <number>);
pr-<number> padding-right: calc(var(--spacing) * <number>);
pb-<number> padding-bottom: calc(var(--spacing) * <number>);
pl-<number> padding-left: calc(var(--spacing) * <number>);
p[*]-[value] [value]自定义值用法,具体规则参考<number>
p[*]-(<custom-property>) var(<custom-property>)自定义变量用法,具体规则参考<number>
p[*]-px 1px赋值,具体规则参考<number>

总结1:赋值方法共4类

  • p[*]-<number>:calc(var(--spacing) * <number>)
  • p[*]-[value]:自定义值,要写完成版,如4px;
  • p[*]-(<custom-property>):自定义变量
  • p[*]-px:1px赋值

总结2:方向指向共5类

  • p-*:四个方向赋值
  • 单边赋值:上(pt-)、右(pr-)、下(pb-)、左(pl)
  • ps-*:padding-inline-start
  • pe-*:padding-inline-end
  • py-*:padding-block

4、border

4.1、border-color

具体颜色赋值规则参考本篇第一部分的内容,不同的是border存在单边赋值的情况,具体如下

  • border-t-[color]:border-top-color
  • border-r-[color]:border-right-color
  • border-b-[color]:border-bottom-color
  • border-l-[color]:border-left-color
  • border-s-[color]:border-inline-start-color
  • border-e-[color]:border-inline-end-color
  • border-x-[color]:border-inline-color
  • border-y-[color]:border-block-color
  • divide-[color]:& > :not(:last-child)

4.1.1、基本示例

<div class="border-4 border-indigo-500 ..."></div>
<div class="border-4 border-purple-500 ..."></div>
<div class="border-4 border-sky-500 ..."></div>

4.1.2、改变透明度

<div class="border-4 border-indigo-500/100 ..."></div>
<div class="border-4 border-indigo-500/75 ..."></div>
<div class="border-4 border-indigo-500/50 ..."></div>

4.1.3、Individual sides 单一面

<div class="border-4 border-indigo-200 border-t-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-r-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-b-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-l-indigo-500 ..."></div>

4.1.4、水平和垂直面

<div class="border-4 border-indigo-200 border-x-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-y-indigo-500 ..."></div>

4.1.5、logical properties 使用逻辑属性

Use utilities like border-s-indigo-500 and border-e-lime-100 to set the border-inline-start-color and border-inline-end-color logical properties, which map to either the left or right border based on the text direction.

所谓逻辑属性,指的是方向由文字的方向决定的,也可以理解成外层方向决定的。

<div dir="ltr">
  <div class="border-s-indigo-500 ..."></div>
</div>
<div dir="rtl">
  <div class="border-s-indigo-500 ..."></div>
</div>

4.1.6、Divider between children

<div class="grid grid-cols-3 divide-x-4 divide-indigo-500">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

4.1.7、使用自定义值

Use the border-[<value>] syntax to set the border color based on a completely custom value:

<div class="border-[#243c5a] ...">
  <!-- ... -->
</div>

4.1.8、使用变量

For CSS variables, you can also use the border-(<custom-property>) syntax:

<div class="border-(--my-border) ...">
  <!-- ... -->
</div>

4.1.9、Applying on focus 应用焦点

Prefix a border-color utility with a variant like focus:* to only apply the utility in that state:

<input class="border-2 border-gray-700 focus:border-pink-600 ..." />

4.2、border-width

4.2.1、按控制方式分类

Class Styles
border-* 控制四边
border-x-* border-inline-width 水平方向宽度
border-y-* border-block-width 垂直方向宽度
border-s-* border-inline-start-width 逻辑开始宽度
border-e-* border-inline-end-width 逻辑结束宽度
border-t-* border-top-width 上边宽度
border-r-* border-right-width 右边宽度
border-b-* border-bottom-width 下边看度
border-l-* border-left-width 左边宽度
divide-x-* & > :not(:last-child) { border-inline-start-width: 0px; border-inline-end-width: 1px; }
divide-y-* & > :not(:last-child) { border-top-width: 0px; border-bottom-width: 1px; }

4.2.2、按赋值方式分类

Class Styles
border border-width: 1px;
border-<number> border-width: <number>px;
border-[value] border-width: <value>;
border-(length:<custom-property>) border-width: var(custom-property);

4.3、border-style 边框样式

Class Styles
[border|divide]-solid 连续的,即实线
[border|divide]-dashed 虚线
[border|divide]-dotted 点状线
[border|divide]-double 双实线
[border|divide]-hidden 隐藏
[border|divide]-none 清除边框

4.3.1、基本使用示例

<div class="border-2 border-solid ..."></div>
<div class="border-2 border-dashed ..."></div>
<div class="border-2 border-dotted ..."></div>
<div class="border-4 border-double ..."></div>

4.3.2、border-none去除边框

<button class="border-none ...">Save Changes</button>

4.3.3、divider style设置分割线样式

<div class="grid grid-cols-3 divide-x-3 divide-dashed divide-indigo-500">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

4.4、border-radius

4.4.1、按赋值方式分类

Class Styles
rounded-xs border-radius: var(--radius-xs); /* 0.125rem (2px) */
rounded-sm border-radius: var(--radius-sm); /* 0.25rem (4px) */
rounded-md border-radius: var(--radius-md); /* 0.375rem (6px) */
rounded-lg border-radius: var(--radius-lg); /* 0.5rem (8px) */
rounded-xl border-radius: var(--radius-xl); /* 0.75rem (12px) */
rounded-2xl border-radius: var(--radius-2xl); /* 1rem (16px) */
rounded-3xl border-radius: var(--radius-3xl); /* 1.5rem (24px) */
rounded-4xl border-radius: var(--radius-4xl); /* 2rem (32px) */
rounded-none border-radius: 0;
rounded-full border-radius: calc(infinity * 1px);
rounded-[<value>] border-radius: <value>;
rounded-(<custom-property>) border-radius: var(custom-property);

4.4.2、按控制方式分类

Class Styles
rounded-* 四角
rounded-s-* border-start-start-radius: var(--radius-*); border-end-start-radius: var(--radius-*); 
rounded-e- border-start-end-radius: var(--radius-*);  border-end-end-radius: var(--radius-*);
rounded-t- 上边两角 border-top-left-radius: var(--radius-*); border-top-right-radius: var(--radius-*);
rounded-r- 右边两角 border-top-right-radius: var(--radius-*); border-bottom-right-radius: var(--radius-*);
rounded-b- 下边两角 border-bottom-right-radius: var(--radius-*); border-bottom-left-radius: var(--radius-*);
rounded-l- 左边两角 border-top-left-radius: var(--radius-*); border-bottom-left-radius: var(--radius-*);
rounded-ss- border-start-start-radius: var(--radius-*);
rounded-se- border-start-end-radius: var(--radius-*);
rounded-ee- border-end-end-radius: var(--radius-*);
rounded-es- border-end-start-radius: var(--radius-*);
rounded-tl- 左上角 border-top-left-radius: var(--radius-*);
rounded-tr- 右上角 border-top-right-radius: var(--radius-*);
rounded-br- 右下角 border-bottom-right-radius: var(--radius-*);
rounded-bl- 左下角 border-bottom-left-radius: var(--radius-*);

4.4.3、大小的基本使用

<div class="rounded-sm ..."></div>
<div class="rounded-md ..."></div>
<div class="rounded-lg ..."></div>
<div class="rounded-xl ..."></div>

4.4.4、单字母控制一边两角

<div class="rounded-t-lg ..."></div>
<div class="rounded-r-lg ..."></div>
<div class="rounded-b-lg ..."></div>
<div class="rounded-l-lg ..."></div>

4.4.5、两字母控制一角

<div class="rounded-tl-lg ..."></div>
<div class="rounded-tr-lg ..."></div>
<div class="rounded-br-lg ..."></div>
<div class="rounded-bl-lg ..."></div>

4.4.6、逻辑属性使用

<div dir="ltr">
  <div class="rounded-s-lg ..."></div>
</div>
<div dir="rtl">
  <div class="rounded-s-lg ..."></div>
</div>

4.4.7、rounded-full创建 pill buttons(药丸按钮)

<button class="rounded-full ...">Save Changes</button>

4.4.8、rounded-none 去除存在的圆角

<button class="rounded-none ...">Save Changes</button>

 

海涛贝塔(https://haitaobeta.com)属于海涛个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接