Skip to content

FAQ ​

🤔 Got questions? We've got answers! Find solutions to the most common Vant development challenges and unlock the full potential of your mobile UI!

🎨 How do I customize the style of Vant components? ​

🎯 1. Theme customization ​

Vant provides powerful theme customization capabilities using CSS variables! You can uniformly modify component styles across your entire application. For comprehensive details, check out the ConfigProvider Global Configuration component. 🌈

✨ 2. Overriding the default style ​

Need more granular control? No problem! You can override default styles using custom style classes for pixel-perfect customization. Here's how to do it: 💪

html
<template>
  <van-button class="my-button">Button</van-button>
</template>

<style>
  /** Override the style of Button's root element */
  .my-button {
    width: 200px;
  }

  /** Override the style of Button's child elements */
  .my-button.van-button__text {
    color: red;
  }
</style>

🔧 Components not rendering correctly in HTML? ​

When using Vant components in plain HTML, you might notice some rendering issues with certain syntax patterns. Here's a common scenario that can trip you up: 🚨

html
<van-cell-group>
  <van-cell title="cell" value="content" />
  <van-cell title="cell" value="content" />
</van-cell-group>

The issue occurs because HTML doesn't support self-closing custom elements! Syntax like <van-cell /> isn't recognized by the browser. The fix is simple - use proper closing tags: ✅

html
<van-cell-group>
  <van-cell title="cell" value="content"></van-cell>
  <van-cell title="cell" value="content"></van-cell>
</van-cell-group>

💡 Pro tip: Self-closing custom elements work perfectly in single-file components, string templates, and JSX, so this issue only affects plain HTML!

📱 Can't trigger the click feedback on iOS? ​

iOS Safari has a quirky behavior where it doesn't trigger the :active pseudo-class by default. Here's the magic fix - add an empty ontouchstart attribute to your body tag: 🪄

html
<body ontouchstart="">
  ...
</body>

Reference link: stackoverflow - :active pseudo-class doesn't work in mobile safari

🤷‍♂️ Why is there no Select component? ​

Great question! While Select components are popular on desktop, their interaction pattern doesn't translate well to mobile devices where touch interfaces reign supreme! 📱

For mobile-first experiences, we recommend using the powerful Picker selector component instead - it's specifically designed for touch interactions and provides a much better user experience! 🎯

🦄 Is it supported in uni-app? ​

Vant components are built specifically for the Vue framework and aren't adapted for uni-app environments. While some components might work, we can't guarantee full compatibility across all features! ⚠️

If you encounter issues using Vant with uni-app, we recommend reaching out to the uni-app team for framework-specific guidance! 🤝

💻 Some components don't work on the desktop? ​

Mobile-first doesn't mean desktop-last! Check out our comprehensive guide: Adapt to PC Browsers for tips on making your mobile components shine on desktop too! ✨

📐 How do I implement mobile responsive adaptation? ​

Responsive design is key to great user experiences! Dive into our detailed guide: Browser Adaptation to master cross-device compatibility! 🌟

Enterprise-level mobile solution based on Vant