antislop-layoutmobile
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseantislop-layoutmobile
antislop-layoutmobile
Anti AI Slop: Design & Copy Rules. Mobile Layout skill
Part of the antislop system. Read together with(the core). This skill deep-dives the mobile layout concern: how a layout must reflow on small screens. Breakpoints, scale, grids, overflow, tap targets, and navigation. It references core rules by number and never duplicates or renumbers them. Load it when the task builds or edits a layout that has to hold up on a phone.antislop.md
反AI冗余:设计与文案规则。移动端布局技能
属于antislop系统的一部分。请结合核心文档阅读。本技能深入探讨移动端布局要点:布局在小屏幕上如何重排。涵盖断点、缩放、网格、溢出、点击目标及导航。本技能通过编号引用核心规则,绝不重复或重新编号规则。当任务涉及构建或编辑需适配手机的布局时,请加载本技能。antislop.md
How to use this skill
如何使用本技能
- Load together with whenever the task is mobile or responsive layout work. The core holds the mechanism (the purpose test, the three tiers, the Delivery Gate); this skill holds mobile-layout depth.
antislop.md - Every entry has the same shape: Tell (the pattern), Why (why it reads as slop), Fix (what to do instead), with the governing core rule cited as R-XX.
- The principle behind this skill: mobile layout is a different layout, not the desktop layout at a smaller size. It must reflow: re-stack, rescale, and re-order with intent. Every pattern below is a way a layout fails to reflow.
- The Delivery Gate in the core remains the gate. The "Layoutmobile Skill Checklist" at the end of this file is the mobile-specific supplement to run alongside it.
- 当任务为移动端或响应式布局工作时,请与一同加载。核心文档包含机制(目标测试、三层架构、交付闸门);本技能则聚焦移动端布局的深度内容。
antislop.md - 每个条目都遵循相同结构:说明(模式)、问题原因(为何被视为冗余)、修复方案(替代方案),并引用对应的核心规则编号R-XX。
- 本技能的核心原则:移动端布局是独立的布局,而非桌面布局的缩小版。它必须能够重排:有目的地重新堆叠、缩放和重新排序。以下每种模式都是布局重排失败的表现。
- 核心文档中的交付闸门依然适用。本文件末尾的“移动端布局技能检查清单”是与之配套的移动端专属补充内容。
Breakpoints
断点
Desktop-Only Layout
仅桌面布局
- Tell: one layout state for every screen; the mobile view is the desktop layout squeezed into a phone.
- Why: R-03 requires a mobile layout that is perfect, not an afterthought. A page that only shrinks has no mobile design at all: cards that worked side by side overlap, and text meant for a wide canvas crowds into a narrow one.
- Fix: define a real mobile state at the breakpoint where the content stops working. The mobile layout reflows: columns stack, sizes drop, and order changes where the content needs it. If the mobile view is just the desktop view at a smaller width, the layout is not done.
- 说明:所有屏幕使用同一种布局状态;移动端视图是桌面布局挤压适配手机的版本。
- 问题原因:R-03要求移动端布局需尽善尽美,而非事后补充。仅做缩小处理的页面根本没有移动端设计:原本并排的卡片会重叠,为宽屏设计的文本会挤在狭窄空间中。
- 修复方案:在内容无法正常显示的断点处定义真正的移动端状态。移动端布局需重排:列堆叠、尺寸缩小,并根据内容需求调整顺序。如果移动端视图只是桌面视图的缩小版,说明布局尚未完成。
Breakpoint Driven by Device List
基于设备列表的断点
- Tell: breakpoints named after phone widths (375px, 414px, 768px) chosen because "that is the iPhone size", not because the content breaks there.
- Why: device widths change every year and every model. A breakpoint is a point where the layout stops holding; forcing it to match a device list makes the layout follow a spec sheet instead of the content (R-03).
- Fix: place breakpoints where the content actually breaks: when a column stops being readable, when a row of cards gets too narrow. Test by narrowing the viewport and watching where it snaps, then set the breakpoint there.
- 说明:断点以手机宽度命名(375px、414px、768px),选择这些值是因为“这是iPhone的尺寸”,而非因为内容在此处无法正常显示。
- 问题原因:设备宽度每年、每款型号都会变化。断点是布局无法正常显示的临界点;强制匹配设备列表会让布局遵循规格表而非内容(R-03)。
- 修复方案:将断点设置在内容实际无法正常显示的位置:当列无法再清晰阅读时,当一行卡片变得过窄时。通过缩小视口观察布局失效的位置,然后在此处设置断点。
Mobile Styled Last
最后才做移动端样式
- Tell: mobile rules bolted on as a trailing override: a long desktop stylesheet with a small media query at the end fixing one or two things.
- Why: an override patch is not a mobile design. It fixes the symptom that got reported and leaves the next one, and the base styles stay tuned for a wide screen (R-03).
- Fix: treat mobile as a designed state, not an override. Give the narrow viewport its own deliberate sizes and stacking, and verify the whole layout there, not just the patched spots (R-35).
- 说明:移动端规则作为后续覆盖补丁添加:一个冗长的桌面样式表末尾附带一小段媒体查询,仅修复一两个问题。
- 问题原因:补丁覆盖并非移动端设计。它只修复已上报的问题,却忽略后续问题,且基础样式仍针对宽屏优化(R-03)。
- 修复方案:将移动端视为经过设计的状态,而非覆盖补丁。为窄视口设置专属的尺寸和堆叠方式,并验证整个布局,而非仅验证补丁修复的部分(R-35)。
Scale & Sizing
缩放与尺寸
Desktop-Sized Everything
所有元素沿用桌面尺寸
- Tell: padding, gaps, hero heights, and card sizes carried unchanged from desktop to mobile, so every section looks blown up on a phone.
- Why: an element sized for a 1440px canvas dominates a 375px one. What reads as confident on desktop becomes oversized on mobile: nothing fits, nothing breathes, and the page feels like it was designed for a screen that is not the one in hand (R-03). Spacing and type should follow the design rhythm (R-05), and that rhythm has a smaller register on mobile.
- Fix: give mobile its own size step: a smaller type scale, tighter section padding, smaller gaps. Keep tap targets at their minimum size (see Tap Targets), but shrink everything else with intent at the breakpoint.
- 说明:内边距、间距、Hero区域高度及卡片尺寸从桌面端原封不动地带到移动端,导致每个区块在手机上显得过大。
- 问题原因:为1440px画布设计的元素在375px屏幕上会占据主导地位。在桌面端显得大气的元素,在移动端会变得过大:内容无法适配、没有呼吸空间,页面看起来像是为手中之外的屏幕设计的(R-03)。间距和字体应遵循设计节奏(R-05),而移动端的设计节奏尺度更小。
- 修复方案:为移动端设置专属的尺寸层级:更小的字体比例、更紧凑的区块内边距、更小的间距。保持点击目标的最小尺寸(见点击目标部分),但在断点处有目的地缩小其他所有元素。
Fixed Pixel Type
固定像素字体
- Tell: font sizes in fixed px that never change between desktop and mobile, so headings and body text stay oversized on a phone.
- Why: type that does not respond to the viewport is type sized for one screen. R-03 demands the mobile layout hold up, and R-06 requires typography that improves readability. A headline that spans the whole phone width or a body size tuned for a wide line breaks both.
- Fix: use fluid type () so sizes scale with the viewport, or set a smaller type step at the breakpoint. Verify the result at a narrow width (R-35), not just in the desktop preview.
clamp()
- 说明:字体大小使用固定px单位,在桌面和移动端之间不做任何调整,导致标题和正文在手机上显得过大。
- 问题原因:不随视口变化的字体仅适配一种屏幕。R-03要求移动端布局需正常显示,R-06要求排版需提升可读性。横跨整个手机宽度的标题或为宽行设计的正文字体大小会违反这两条规则。
- 修复方案:使用流式字体()让尺寸随视口缩放,或在断点处设置更小的字体层级。在窄宽度下验证结果(R-35),而非仅在桌面预览中验证。
clamp()
100vh Sections
100vh区块
- Tell: hero and section heights set to , so a section fills the whole phone screen and pushes everything else below the fold.
100vh - Why: a full-viewport section designed for a desktop monitor becomes a giant slab on a phone, and includes the browser chrome, so it overflows the visible area on mobile browsers. It dominates the layout instead of introducing it (R-03).
100vh - Fix: let sections size to their content (), or use the dynamic viewport unit (
auto) where a real full-height section is intended. Nothing below the fold should be an accident of viewport units.dvh
- 说明:Hero区域和区块高度设置为,导致区块填满整个手机屏幕,将其他所有内容推到可视区域之外。
100vh - 问题原因:为桌面显示器设计的全屏区块在手机上会变成巨大的板块,且包含浏览器界面,因此在移动浏览器中会超出可视区域。它主导了布局,而非起到引入内容的作用(R-03)。
100vh - 修复方案:让区块根据内容自动调整尺寸(),或在确实需要全屏区块时使用动态视口单位(
auto)。可视区域之外的内容不应是视口单位使用不当导致的意外结果。dvh
Huge Empty Padding
过大的空白内边距
- Tell: desktop-scale section padding (96px, 128px) kept on mobile, creating tall empty gaps between sections on a phone.
- Why: padding tuned for a large canvas turns into wasted vertical space on a small one. The page scrolls through emptiness, and the rhythm R-05 calls for becomes a void between every section.
- Fix: reduce section padding at the breakpoint to a mobile register (roughly half or less), and check that the page scrolls at a natural density instead of through deserts of space.
- 说明:桌面端尺度的区块内边距(96px、128px)在移动端保留,导致手机上区块之间出现大片空白。
- 问题原因:为大画布设计的内边距在小屏幕上会变成浪费的垂直空间。页面会在空白区域滚动,R-05要求的节奏会变成每个区块之间的空洞。
- 修复方案:在断点处将区块内边距调整为移动端尺度(约为原来的一半或更小),并确保页面滚动时内容密度自然,而非在大片空白中滚动。
Grids & Stacking
网格与堆叠
Columns That Don't Collapse
不折叠的列
- Tell: a multi-column grid keeps its side-by-side columns on mobile, so the columns shrink, the text wraps awkwardly, and elements collide.
- Why: a grid is a promise about how much width is available. When the viewport narrows and the grid does not re-stack, every column gets a sliver, text becomes unreadable, and cards overlap (R-03). This is the collision failure: desktop's side-by-side becomes mobile's pileup.
- Fix: collapse the grid to a single reflowing column at the breakpoint. Side-by-side becomes stacked, and each item gets the full width again. Re-verify at a narrow width (R-35).
- 说明:多列网格在移动端仍保持并排的列,导致列缩小、文本换行混乱、元素重叠。
- 问题原因:网格承诺了可用宽度。当视口变窄而网格不重新堆叠时,每个列都会变成窄条,文本变得无法阅读,卡片重叠(R-03)。这是冲突失效:桌面端的并排布局变成移动端的堆叠混乱。
- 修复方案:在断点处将网格折叠为单列可重排布局。并排变为堆叠,每个元素再次获得完整宽度。在窄宽度下重新验证(R-35)。
Fixed-Width Grid
固定宽度网格
- Tell: set in fixed px, or grid areas that cannot reflow, so the grid stays rigid when the viewport shrinks.
grid-template-columns - Why: a fixed-px track does not care about the viewport; it keeps its width and forces overflow or collision. The layout was built for one canvas and cannot change shape (R-03).
- Fix: size tracks with or
minmax()andauto-fitso columns shrink and wrap with the content, and define grid areas that collapse at the breakpoint. The grid should be fluid by default, rigid only where a fixed size is deliberate.auto-fill
- 说明:使用固定px单位,或网格区域无法重排,导致视口缩小时网格保持刚性。
grid-template-columns - 问题原因:固定px的轨道不关心视口;它会保持自身宽度,导致溢出或冲突。布局只为一种画布设计,无法改变形状(R-03)。
- 修复方案:使用或
minmax()、auto-fit来设置轨道尺寸,让列随内容缩小和换行,并定义可在断点处折叠的网格区域。网格默认应是流式的,仅在需要固定尺寸的位置保持刚性。auto-fill
Forced 12-Column
强制使用12列网格
- Tell: a 12-column grid forced onto mobile content that needs one or two columns, so spans look arbitrary and the math fights the layout.
- Why: a 12-column system is for a wide canvas with many columns of content. Forcing it on a phone makes every element a fraction of an invisible grid the user never sees, and the content gets fitted to the grid instead of the grid to the content (R-03).
- Fix: let columns follow the content. On mobile the content usually wants one column, or two at most; the 12-column span only makes sense where the layout genuinely has that many things side by side.
- 说明:将12列网格强制应用于仅需1-2列的移动端内容,导致跨度看起来随意,布局被网格数学限制。
- 问题原因:12列系统适用于包含多列内容的宽画布。在手机上强制使用会让每个元素成为用户看不到的隐形网格的一部分,内容被迫适配网格,而非网格适配内容(R-03)。
- 修复方案:让列跟随内容。移动端内容通常只需要1列,最多2列;只有当布局确实需要多个元素并排时,12列跨度才有意义。
Overflow
溢出
Horizontal Scroll Leak
横向滚动泄漏
- Tell: the page scrolls sideways because some element is wider than the viewport: a table, a code block, an image, a long unbroken string.
- Why: horizontal scrolling is a broken promise on mobile. The user cannot see where the page ends, and the layout visibly spills off the screen (R-03). It is the most common overflow slop because the offender is off-screen in the desktop preview and goes unnoticed until a phone opens it.
- Fix: find the element wider than the viewport (a table that needs a reflow layout or a scroll container, a code block that wraps, images with ), then contain or reflow it. Verify the whole page has zero horizontal scroll at the narrowest target (R-35).
max-width: 100%
- 说明:页面可横向滚动,因为某些元素宽于视口:表格、代码块、图片、长未断字符串。
- 问题原因:横向滚动在移动端是一种失效的承诺。用户无法看到页面的尽头,布局明显溢出屏幕(R-03)。这是最常见的冗余溢出问题,因为问题元素在桌面预览中处于屏幕外,直到在手机上打开才会被发现。
- 修复方案:找到宽于视口的元素(需要重排布局或滚动容器的表格、可换行的代码块、设置的图片),然后限制或重排它。在最窄的目标宽度下验证整个页面无横向滚动(R-35)。
max-width: 100%
Overflow Hidden Clipping
溢出隐藏裁剪
- Tell: on a container that clips content at narrow widths, hiding text or controls instead of letting them fit.
overflow: hidden - Why: clipping is hiding a failure. When a container cuts off its content because the layout cannot fit it, the user loses information and interaction (R-03). The zoom and text-resize angle on this is covered by .
antislop-human - Fix: let the content reflow instead of clipping: allow the container to grow, wrap its content, or collapse it at the breakpoint. Clip only where cropping is the design intent (like a thumbnail), never where it hides content.
- 说明:容器设置,在窄宽度下裁剪内容,隐藏文本或控件,而非让内容适配。
overflow: hidden - 问题原因:裁剪是在隐藏失效。当容器因布局无法适配而切断内容时,用户会丢失信息和交互功能(R-03)。关于缩放和文本调整的角度在中有介绍。
antislop-human - 修复方案:让内容重排而非裁剪:允许容器扩展、换行内容,或在断点处折叠。仅在裁剪是设计意图时(如缩略图)进行裁剪,绝不能在隐藏内容时使用。
Fixed-Width Children
固定宽度子元素
- Tell: flex or grid children with a fixed px width or that burst out of their parent on a narrow screen.
min-width - Why: a child sized in absolute px does not care how much room its parent has. On mobile the parent shrinks and the child stays wide, so it overflows the container and the page (R-03).
- Fix: size children with relative units and let them wrap (, fluid widths,
flex-wrapon grid children). A child should be allowed to shrink with its container, not hold a desktop size.min-width: 0
- 说明:Flex或Grid子元素使用固定px宽度或,在窄屏幕上超出父容器。
min-width - 问题原因:使用绝对px尺寸的子元素不关心父容器的可用空间。在移动端父容器缩小而子元素保持宽尺寸,导致溢出容器和页面(R-03)。
- 修复方案:使用相对单位设置子元素尺寸,并允许它们换行(、流式宽度、Grid子元素设置
flex-wrap)。子元素应随容器缩小,而非保持桌面端尺寸。min-width: 0
Tap Targets
点击目标
Under-Sized Targets
尺寸不足的目标
- Tell: buttons, links, and controls smaller than about 44 x 44 px, easy to hit on desktop with a cursor but hard to hit with a thumb.
- Why: a desktop cursor has pixel accuracy; a thumb does not. A target that is fine at 16px becomes an exercise in frustration on a phone, and it fails the promise that the UI is usable on mobile (R-03).
- Fix: give interactive targets a minimum touch area of 44 x 44 px, using padding or a larger hit box even when the visual is smaller. Verify the whole set of controls at a phone width (R-35).
- 说明:按钮、链接和控件尺寸小于约44x44px,在桌面端用光标容易点击,但用拇指很难点击。
- 问题原因:桌面光标有像素级精度;拇指没有。在桌面端合适的16px目标,在手机上会变成令人沮丧的操作,违反了UI在移动端可用的承诺(R-03)。
- 修复方案:为交互目标设置至少44x44px的最小触摸区域,即使视觉元素较小,也可使用内边距或更大的点击区域。在手机宽度下验证所有控件(R-35)。
Targets Too Close
目标间距过近
- Tell: 44px targets packed together with no gap, so a thumb tap hits the wrong one.
- Why: target size matters only with target spacing. Two large controls touching each other behave like one large control: the user cannot reliably pick either (R-03).
- Fix: leave a clear gap between adjacent interactive targets, at least a few px and ideally enough that the finger press area does not overlap. Spacing is the other half of tappability.
- 说明:44px的目标紧密排列,无间距,导致拇指点击时误触其他目标。
- 问题原因:只有配合目标间距,目标尺寸才有意义。两个相邻的大控件会表现得像一个大控件:用户无法可靠地选择其中任何一个(R-03)。
- 修复方案:在相邻交互目标之间留出清晰的间距,至少几px,理想情况下应使手指按压区域不重叠。间距是可点击性的另一关键部分。
Hover-Only Interactions
仅悬停交互
- Tell: menus, reveals, and tooltips that exist only on hover, so a touch user can never open them.
- Why: there is no hover on a touchscreen. An interaction that only responds to hover simply does not exist for mobile users, and any control that relies on it is a dead end (R-03).
- Fix: give every hover-only interaction a tap equivalent: a menu that opens on hover also opens on tap, a reveal also shows on click, and interactive elements show visible feedback so a tap registers. Test by using the UI with touch alone (R-35).
:active
- 说明:菜单、展开内容和提示仅在悬停时显示,触摸用户永远无法打开它们。
- 问题原因:触摸屏没有悬停功能。仅响应悬停的交互对移动端用户来说根本不存在,任何依赖此功能的控件都是死胡同(R-03)。
- 修复方案:为每个仅悬停的交互添加点击等效操作:悬停时打开的菜单也可通过点击打开,展开内容也可通过点击显示,交互元素需显示可见的反馈,以便点击操作被识别。仅使用触摸操作测试UI(R-35)。
:active
Mobile Navigation
移动端导航
Nav That Stays Desktop
沿用桌面导航
- Tell: the desktop top bar with its row of links kept side by side on mobile, so the links crowd, wrap into two rows, or spill past the viewport.
- Why: a desktop nav is sized for a wide canvas. Kept as a row on a phone it becomes a mess of cramped links, and it is the first thing a mobile user meets (R-03). Navigation is where reflow matters most: the user has to find where to go before they can go anywhere.
- Fix: collapse the nav into a mobile pattern at the breakpoint: a bottom nav for the handful of primary destinations, or a menu for the rest. The links reflow out of the row, and the primary destinations stay one thumb tap away. Verify it holds at a narrow width (R-35).
- 说明:桌面端顶部导航栏的链接在移动端仍保持并排,导致链接拥挤、换行成两行或溢出视口。
- 问题原因:桌面导航是为宽画布设计的。在手机上保持行式布局会变成拥挤的链接混乱,而这是移动端用户首先接触到的内容(R-03)。导航是重排最重要的地方:用户必须先找到去向,才能访问内容。
- 修复方案:在断点处将导航折叠为移动端模式:针对少数主要目的地的底部导航,或针对其他内容的菜单。链接从行中重排,主要目的地保持在拇指可点击的范围内。在窄宽度下验证(R-35)。
The Bare Hamburger
无标签汉堡菜单
- Tell: everything hidden behind a hamburger icon with no label and no hint, so a user never realizes the menu exists or cannot tell what it opens.
- Why: a bare hamburger assumes the user already knows what the icon means and that a menu hides behind it. That is knowledge the mobile user may not have, and on mobile the hidden menu can hold the only way around the app (R-03).
- Fix: keep the menu discoverable: label the hamburger ("Menu"), or keep the primary destinations visible and hide only the secondary ones. If a menu is the only way to reach something important, that reachability has to be obvious.
- 说明:所有内容隐藏在无标签、无提示的汉堡图标后,用户永远不知道菜单存在,或无法判断它会打开什么。
- 问题原因:无标签汉堡菜单假设用户已经知道该图标的含义,且背后隐藏着菜单。但移动端用户可能不具备这种认知,且在移动端隐藏菜单可能是应用的唯一导航方式(R-03)。
- 修复方案:确保菜单可被发现:为汉堡图标添加标签(“菜单”),或保持主要目的地可见,仅隐藏次要内容。如果菜单是访问重要内容的唯一方式,必须让这种可访问性显而易见。
Bottom Nav That Eats Content
遮挡内容的底部导航
- Tell: a fixed bottom nav bar that sits over the content, covering the last list items, the final button, or the form the user was trying to finish.
- Why: a fixed bar takes real space on a small screen. If nothing reserves that space, the content scrolls under it and the user cannot reach what is hidden, especially at the very bottom of the page (R-03).
- Fix: reserve the bar's height for the content: scroll padding on the page and safe-area insets where the device needs them, so nothing important is ever hidden behind it. Verify at a narrow width that the last item is reachable (R-35).
- 说明:固定底部导航栏覆盖在内容之上,隐藏最后几个列表项、最终按钮或用户正在填写的表单。
- 问题原因:固定栏在小屏幕上占据实际空间。如果没有为内容预留该空间,内容会滚动到栏下方,用户无法访问被隐藏的内容,尤其是页面最底部的内容(R-03)。
- 修复方案:为内容预留栏的高度:为页面设置滚动内边距,在设备需要时使用安全区域插入(safe-area insets),确保重要内容永远不会被栏遮挡。在窄宽度下验证最后一个条目可被访问(R-35)。
Sticky Nav Steals the Screen
占据屏幕的粘性导航
- Tell: a sticky header or tall bottom bar that holds a large fixed height, so a big slice of the phone screen is always taken by navigation.
- Why: on a small viewport every fixed pixel of chrome is a pixel of content lost. A tall sticky header turns the visible area into a letterbox and the content into a sliver (R-03).
- Fix: keep fixed nav compact: small enough that the content stays dominant, and collapse or shrink it on scroll where appropriate. Navigation should be present, not the main occupant of the screen.
- 说明:粘性页眉或高底部栏设置固定的大高度,导致手机屏幕的很大一部分始终被导航占据。
- 问题原因:在小视口中,每一个固定的界面像素都是损失的内容像素。高粘性页眉会将可视区域变成信箱模式,内容变成窄条(R-03)。
- 修复方案:保持固定导航紧凑:尺寸足够小,使内容保持主导地位,并在适当的情况下滚动时折叠或缩小。导航应存在,但不应成为屏幕的主要占据者。
Layoutmobile Skill Checklist
移动端布局技能检查清单
Run these alongside the core Delivery Gate when the task is mobile or responsive layout work. All answers must be yes:
- Does the layout reflow into a distinct mobile state rather than a squeezed desktop? (R-03)
- Do sizes (type, padding, gaps, section heights) use a mobile scale, not desktop sizes unchanged? (R-03, R-05)
- Do multi-column grids collapse and stack instead of colliding? (R-03)
- Is there no horizontal overflow and nothing clipped? (R-03)
- Are interactive targets at least 44 x 44 px with spacing between them? (R-03)
- Do hover-only interactions have a tap equivalent with visible feedback? (R-03)
- Does the navigation reflow into a mobile pattern (bottom nav or menu) instead of a squeezed desktop row? (R-03)
- Do fixed nav bars (bottom nav, sticky headers) never cover content and respect safe areas? (R-03)
- Is the layout verified at mobile breakpoints? (R-35)
当任务为移动端或响应式布局工作时,请结合核心交付闸门运行以下检查。所有答案必须为是:
- 布局是否重排为独立的移动端状态,而非挤压的桌面版?(R-03)
- 尺寸(字体、内边距、间距、区块高度)是否使用移动端尺度,而非原封不动的桌面尺寸?(R-03, R-05)
- 多列网格是否折叠堆叠,而非冲突重叠?(R-03)
- 是否无横向溢出,且无内容被裁剪?(R-03)
- 交互目标尺寸是否至少为44x44px,且彼此间有间距?(R-03)
- 仅悬停的交互是否有点击等效操作,并提供可见反馈?(R-03)
- 导航是否重排为移动端模式(底部导航或菜单),而非挤压的桌面行式布局?(R-03)
- 固定导航栏(底部导航、粘性页眉)是否从不遮挡内容,并遵循安全区域?(R-03)
- 布局是否在移动端断点处验证?(R-35)