18910140161

JavaScript-如何根据屏幕大小创建具有多种可能性的可重用组件?-堆栈溢出

顺晟科技

2022-10-19 14:46:35

67

我正在制作一个具有类似于https://atlas-demo.blogspot.com的用户界面的博客网站。一个卡片组件在整个主页上使用,它在不同的屏幕大小中有不同的布局。由于没有特定的模式,所以我很难创建一个可重用的组件。

以下是card组件的一些可能性:

可能性#1

<头> 屏幕大小
布局
移动 浮动
片剂 浮动
移动 浮动

可能性#2

<头> 屏幕大小
布局
移动 浮动
片剂 浮动
移动 水平

可能性#3

<头> 屏幕大小
布局
移动 水平
片剂 水平
移动 浮动

可能性#4

<头> 屏幕大小
布局
移动 垂直
片剂 垂直
移动 垂直

我所说的“浮动”、“水平”和“垂直”是指

浮动:

水平:

垂直:

在这些可能性之间我找不到任何模式。我的解决方法是将一个对象传递给组件,该组件定义了它在不同屏幕大小下的外观。如下所示:

并根据对象添加不同的类:

顺便说一句,这是带有tailwindcss类的JSX语法。

正如您所看到的,它非常混乱,而且随着复杂性的增加,情况变得更糟:

  1. 当布局不是“浮动”时,如果我希望图像是正方形的,怎么办?
  2. 如果我想在卡片上添加一些东西,比如图标,但是对于“水平”和“垂直”布局,它应该在角落,而对于“浮动”布局,它应该在中心,该怎么办?

以此类推。

所以我喜欢听你对此的看法。我不想让你做我的作业,我只是需要一些想法。任何事情都可能有帮助。也许是我不知道的设计模式?


顺晟科技:

在我看来,这些区域仍然是逻辑上划分的,每个区域都可以被赋予一个唯一的css类。

例如最上面的滑块可以是,唯一的行为是,每张卡的布局不变

有5张卡片的中间区域可以是,唯一的行为是,除了滑块之外,所有其他卡片都在不同的视口改变布局,例如桌面和平板=浮动,移动=水平

类似地,其余规则也可以根据上下文创建。

很难概括,因此很容易对配置进行硬编码。

我不是顺风专家,所以不能给你一个等效的代码。希望你明白我的意思。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航