tailwindcss学习笔记之width、min-width、max-width

所属分类:HtmlCssJs | 浏览:169 | 发布于 2025-11-20

苦苦寻找的container原来归类在max-width里面,tailwindcss有container queries和breakpoints container 两种container。

1、width使用示例

1.1、width基本示例

使用 `w-<number>` 工具类像 `w-24` 和 `w-64` 等根据间距比例将元素设置为固定宽度:

<div class="w-96 ...">w-96</div>
<div class="w-80 ...">w-80</div>
<div class="w-64 ...">w-64</div>
<div class="w-48 ...">w-48</div>
<div class="w-40 ...">w-40</div>
<div class="w-32 ...">w-32</div>
<div class="w-24 ...">w-24</div>

`w-<number>` 计算的是 width: calc(var(--spacing) * <number>);  通过查询,我们发现默认主题变量中 --spacing 定义的是 4px:

--spacing: 4px;

所以默认 w-<number>的 宽度就是 number * 4

1.2、Using a percentage 使用百分比

使用 `w-full` 或 `w-<fraction>` 工具类像 `w-1/2` 和 `w-2/5` 去设置元素基于百分比的宽度:

<div class="flex ...">
  <div class="w-1/2 ...">w-1/2</div>
  <div class="w-1/2 ...">w-1/2</div>
</div>
<div class="flex ...">
  <div class="w-2/5 ...">w-2/5</div>
  <div class="w-3/5 ...">w-3/5</div>
</div>
<div class="flex ...">
  <div class="w-1/3 ...">w-1/3</div>
  <div class="w-2/3 ...">w-2/3</div>
</div>
<div class="flex ...">
  <div class="w-1/4 ...">w-1/4</div>
  <div class="w-3/4 ...">w-3/4</div>
</div>
<div class="flex ...">
  <div class="w-1/5 ...">w-1/5</div>
  <div class="w-4/5 ...">w-4/5</div>
</div>
<div class="flex ...">
  <div class="w-1/6 ...">w-1/6</div>
  <div class="w-5/6 ...">w-5/6</div>
</div>
<div class="w-full ...">w-full</div>

1.3、Using the container scale 使用container的比例

<div class="w-xl ...">w-xl</div>
<div class="w-lg ...">w-lg</div>
<div class="w-md ...">w-md</div>
<div class="w-sm ...">w-sm</div>
<div class="w-xs ...">w-xs</div>
<div class="w-2xs ...">w-2xs</div>
<div class="w-3xs ...">w-3xs</div>

container 容器大小列表在上一篇最后查看:tailwindcss学习笔记之Responsive design

1.4、Matching the viewport 匹配视口大小

使用 `w-screen` 工具类使元素扩月视口的整个宽度:

<div class="w-screen">
  <!-- ... -->
</div>

或者,你可以使用 w-lvw,w-svw 和 w-dvw 工具类来匹配大、小或动态视口的宽度。

哈哈,暂时还不理解它的意思。

1.5、Resetting the width 重置宽度

使用 `w-auto` 工具类来在特定条件下删除元素的指定width,例如在特定断点处:

<div class="w-full md:w-auto">
  <!-- ... -->
</div>

哈哈,经过测试,也没测出来这个属性有什么用,感觉没什么变化。

1.6、Setting both width and height 同时设置宽度和高度

使用像 `size-px`,`size-4`,和 `size-full` 这样的工具类同时设置元素的宽度和高度:

<div class="size-16 ...">size-16</div>
<div class="size-20 ...">size-20</div>
<div class="size-24 ...">size-24</div>
<div class="size-32 ...">size-32</div>
<div class="size-40 ...">size-40</div>

解释:`size-16`的实际宽度是 4px * 16 = 16px

1.7、Using a custom value 使用自定义值

使用 `w-[value]`语法来设置完整的自定义值:

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

对于Css变量,可以使用 `w-(custom-property)` 语法:

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

这实际上是 `w-[var(<custom-property>)]` 语法的简写,自动为你加上了 `var()`方法。

1.8、Responsive design 响应式设计

参照上一篇关于响应式内容的介绍:

<div class="w-1/2 md:w-full ...">
  <!-- ... -->
</div>

2、width 工具类列表

2.1、只设置width的w工具类

Class 简要说明 Styles
w-<number> --spacing = 4px width: calc(var(--spacing) * <number>);
w-<fraction> 百分比显示 width: calc(<fraction> * 100%);
w-[value] 完整值 width: <value>;
w-(<custom-property>) 自定义变量 width: var(<custom-property>);
w-auto   width: auto;
w-px   width: 1px;
w-full   width: 100%;
w-screen   width: 100vw;
w-min   width: min-content;
w-max   width: max-content;
w-fit   width: fit-content;
w-<--container-*>   width: var(--container-*);

还有dvw、lvw、lvh、svw、svh这几个,暂时不知道什么意思,就先不写了。

2.2、同时设置width和height的size工具类

Class Styles
size-<number> width: calc(var(--spacing) * <number>);height: calc(var(--spacing) * <number>);
size-<fraction> width: calc(<fraction> * 100%);height: calc(<fraction> * 100%);
size-[value] width: <value>;height: <value>;
size-(<custom-property>) width: var(<custom-property>);height: var(<custom-property>);
size-auto width: auto;height: auto;
size-px width: 1px;height: 1px;
size-full width: 100%;height: 100%;
size-min width: min-content;height: max-content;
size-max width: max-content;height: max-content;
size-fit width: fit-content; height: fit-content;
   

同样的,size也有 dvw、dvh、lvw、lvh、svw、svh这几个暂时不知道什么意思的选项。

3、min-width工具类列表

Class Styles
min-w-<number> min-width: calc(var(--spacing) * <number>);
min-w-<fraction> min-width: calc(<fraction> * 100%);
min-w-[value] min-width: <value>;
min-w-(<custom-property>) min-width: var(<custom-property>);
min-w-(--container-*) min-width: var(--container-*);
min-w-auto min-width: auto;
min-w-px min-width: 1px;
min-w-full min-width: 100%;
min-w-screen min-width: 100vw;
min-w-min min-width: min-content;
min-w-max min-width: max-content;
min-w-fit min-width: fit-content;

同样,min-w还有dvw、dvh、lvw、lvh、svw、svh几种选项。

4、min-width使用示例

4.1、基本示例

<div class="w-20 ...">
  <div class="min-w-80 ...">min-w-80</div>
  <div class="min-w-64 ...">min-w-64</div>
  <div class="min-w-48 ...">min-w-48</div>
  <div class="min-w-40 ...">min-w-40</div>
  <div class="min-w-32 ...">min-w-32</div>
  <div class="min-w-24 ...">min-w-24</div>
</div>

4.2、Using a percentage 使用百分比

使用 `min-w-full` 或 `min-w-<fraction>` 这样的工具类,比如 `min-w-1/2` 和 `min-w-2/5` 来按百分比给元素设置宽度:

<div class="flex ...">
  <div class="min-w-3/4 ...">min-w-3/4</div>
  <div class="w-full ...">w-full</div>
</div>

4.3、Using the container scale 基于container比例设置

<div class="w-40 ...">
  <div class="min-w-lg ...">min-w-lg</div>
  <div class="min-w-md ...">min-w-md</div>
  <div class="min-w-sm ...">min-w-sm</div>
  <div class="min-w-xs ...">min-w-xs</div>
  <div class="min-w-2xs ...">min-w-2xs</div>
  <div class="min-w-3xs ...">min-w-3xs</div>
</div>

4.4、Using a custom value 使用自定义值

使用 `min-w-[<value>]` 语法基于完全自定义值去设置最小宽度:

<div class="min-w-[220px] ...">
  <!-- ... -->
</div>

对于Css变量,使用 `min-w-(<custom-property>)` 语法:

<div class="min-w-(--my-min-width) ...">
  <!-- ... -->
</div>

这种写法是 `min-w-[var(<custom-property>)]` 语法的简写,Tailwind自动为你加上 `var()` 函数。

4.5、Responsive design 响应式设计

<div class="w-24 min-w-full md:min-w-0 ...">
  <!-- ... -->
</div>

5、max-width 工具类列表

Class Styles
max-w-<number> max-width: calc(var(--spacing) * <number>);
max-w-<fraction> max-width: calc(<fraction> * 100%);
max-w-[value] max-width: <value>;
max-w-(<custom-property>) max-width: var(<custom-property>);
max-w-(--container-*) max-width: var(--container-*);
max-w-auto max-width: auto;
max-w-px max-width: 1px;
max-w-full max-width: 100%;
max-w-screen max-width: 100vw;
max-w-min max-width: min-content;
max-w-max max-width: max-content;
max-w-fit max-width: fit-content;

同样,max-w还有dvw、dvh、lvw、lvh、svw、svh几种选项。另外,最重要的min-width工具类里有一直在苦苦寻找的 container 这个选项。

container 的值:

width: 100%;
@media (width >= 40rem) { max-width: 40rem; }
@media (width >= 48rem) { max-width: 48rem; }
@media (width >= 64rem) { max-width: 64rem; }
@media (width >= 80rem) { max-width: 80rem; }
@media (width >= 96rem) { max-width: 96rem; }

6、max-width 使用示例

6.1、基本示例

使用 `` 原子类像 `` 和 `` 按照基于 spacing 比例的方式来设置固定的最大宽度:

<div class="w-full max-w-96 ...">max-w-96</div>
<div class="w-full max-w-80 ...">max-w-80</div>
<div class="w-full max-w-64 ...">max-w-64</div>
<div class="w-full max-w-48 ...">max-w-48</div>
<div class="w-full max-w-40 ...">max-w-40</div>
<div class="w-full max-w-32 ...">max-w-32</div>
<div class="w-full max-w-24 ...">max-w-24</div>

6.2、Using a percentage 使用百分比

使用 `max-full` 或 `max-w-<fraction>` 原子类 像 `max-w-1/2` 和 `max-w-2/5` 这样的给元素设置基于百分比的最大宽度:

<div class="w-full max-w-9/10 ...">max-w-9/10</div>
<div class="w-full max-w-3/4 ...">max-w-3/4</div>
<div class="w-full max-w-1/2 ...">max-w-1/2</div>
<div class="w-full max-w-1/3 ...">max-w-1/3</div>

6.3、Using the container scale 使用容器比例

使用像 `max-w-sm` 和 `max-w-xl` 这样的原子类按照基于 container比例的固定最大宽度:

<div class="max-w-md ...">
  <!-- ... -->
</div>

6.4、Using a custom value 使用自定义值

使用 `max-w-[<value>]` 语法 设置 基于完整自定义值的最大宽度:

<div class="max-w-[220px] ...">
  <!-- ... -->
</div>

对于Css变量,使用 `max-w-(<custom-property>)` 语法:

<div class="max-w-(--my-max-width) ...">
  <!-- ... -->
</div>

6.5、Responsive design 响应式设计

使用断点变体像 `md:` 前缀原子类设置 中等及以上屏幕宽度:

<div class="max-w-sm md:max-w-lg ...">
  <!-- ... -->
</div>

6.6、Using breakpoints container 使用断点container

使用 `container` 工具类设置元素的最大宽度,以匹配当前断点的最小宽度。如果你更喜欢设计一组固定的屏幕尺寸,而不是试顺应一个完全流动的窗口,这将非常有用:

<div class="container">
  <!-- ... -->
</div>

注意,不想其它的框架一样,Tailwind 的 container 不会自动居中,也没有水平边距。你可以使用 `mx-auto` 设置居中使用 `px-<number>` 设置一个内边距

<div class="container mx-auto px-4">
  <!-- ... -->
</div>

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

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

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