فهرست سرفصل‌های Vue
خانه (HOME) معرفی (Intro) دایرکتیوها (Directives) v-bind (v-bind) v-if (v-if) v-show (v-show) v-for (v-for) رویدادها (Events) v-on (v-on) متدها (Methods) تغییردهنده های رویداد (Event Modifiers) فرم ها (Forms) v-model (v-model) بایندینگ CSS (CSS Binding) ویژگی های محاسبه شده (Computed Properties) واچرها (Watchers) قالب ها (Templates) چرا، چگونه و راه اندازی (Why, How and Setup) اولین صفحه SFC (First SFC Page) کامپوننت ها (Components) پراپس (Props) کامپوننت های v-for (v-for Components) $emit() ($emit()) ویژگی های عبوری (Fallthrough) (Fallthrough Attributes) استایل Scoped (Scoped Styling) کامپوننت های محلی (Local Components) اسلات ها (Slots) v-slot (v-slot) اسلات های Scoped (Scoped Slots) کامپوننت های پویا (Dynamic Components) Teleport (Teleport) درخواست HTTP (HTTP Request) رفرنس های تمپلیت (Template Refs) هوک های چرخه عمر (Lifecycle Hooks) Provide/Inject (Provide/Inject) مسیریابی (Routing) ورودی های فرم (Form Inputs) انیمیشن ها (Animations) انیمیشن با v-for (Animations with v-for) بیلد (Build) Composition API (Composition API) ویژگی های توکار (Built-in Attributes) ویژگی 'is' ('is' Attribute) ویژگی 'key' ('key' Attribute) ویژگی 'ref' ('ref' Attribute) کامپوننت های توکار (Built-in Components) <KeepAlive> (<KeepAlive>) <Teleport> (<Teleport>) <Transition> (<Transition>) <TransitionGroup> (<TransitionGroup>) المان های توکار (Built-in Elements) <component> (<component>) <slot> (<slot>) <template> (<template>) نمونه کامپوننت (Component Instance) $attrs ($attrs) $data ($data) $el ($el) $parent ($parent) $props ($props) $refs ($refs) $root ($root) $slots ($slots) $emit() ($emit()) $forceUpdate() ($forceUpdate()) $nextTick() ($nextTick()) $watch() ($watch()) دایرکتیوها (Directives) v-bind (v-bind) v-cloak (v-cloak) v-for (v-for) v-html (v-html) v-if (v-if) v-else-if (v-else-if) v-else (v-else) v-memo (v-memo) v-model (v-model) v-on (v-on) v-once (v-once) v-pre (v-pre) v-show (v-show) v-slot (v-slot) v-text (v-text) گزینه های نمونه (Instance Options) داده ها (data) متدها (methods) محاسبه شده ها (computed) watch (watch) پراپس (props) emits (emits) expose (expose) هوک های چرخه عمر (Lifecycle Hooks) beforeCreate (beforeCreate) created (created) beforeMount (beforeMount) mounted (mounted) beforeUpdate (beforeUpdate) updated (updated) beforeUnmount (beforeUnmount) unmounted (unmounted) errorCaptured (errorCaptured) renderTracked (renderTracked) renderTriggered (renderTriggered) activated (activated) deactivated (deactivated) serverPrefetch (serverPrefetch) مثال ها (Examples) تمرین ها (Exercises) کوییز (Quiz) سیلابس (Syllabus) برنامه مطالعه (Study Plan) سرور (Server) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
Vue

Vue — بایندینگ CSS (CSS Binding)

آخرین بروزرسانی: 1404/08/21

بایندینگ CSS (CSS Binding)

در Vue با دستور v-bind می توانیم ویژگی های style و class را پویا کنیم. «پویا» یعنی ظاهر با تغییر داده ها عوض می شود؛ مثل تغییر یونیفورم مدرسه هنگام انتخاب رنگ.

استایل خطی با v-bind:style

در «استایل خطی (Inline Style)»، ویژگی های CSS را مستقیم روی تگ تنظیم می کنیم.

<input type="range" v-model="opacityVal">
<div v-bind:style="{ backgroundColor: 'rgba(155,20,20,' + opacityVal + ')' }">
  Drag the range input above to change opacity here.
<\/div>

مشاهده در ادیتور

نکته: «بایند (Bind)» یعنی وصل کردن مقدار جاوااسکریپت به ویژگی HTML.

دادن کلاس با v-bind:class

وقتی روی عکس کلیک می کنی، کلاس «انتخاب شده» اضافه می شود. کلاس یعنی اسم یک استایل آماده.

<div v-for="(img, index) in images">
  <img v-bind:src="img.url"
       v-on:click="select(index)"
       v-bind:class="{ selClass: img.sel }">
<\/div>

مشاهده در ادیتور

نکات پیشرفته کلاس و استایل

1) ادغام کلاس ها: class و v-bind:class

اگر هر دو استفاده شوند، Vue کلاس ها را باهم ترکیب می کند. چیزی حذف نمی شود.

<div class="impClass" v-bind:class="{ yelClass: isYellow }">
  This div belongs to both 'impClass' and 'yelClass'.
<\/div>

مشاهده در ادیتور

2) چند کلاس در یک آبجکت

می توانی چند کلاس را با یک آبجکت بدهی. هر کلید یک کلاس است.

<div v-bind:class="{ yelClass: isYellow, impClass: isImportant }">
  This tag can belong to both classes.
<\/div>

مشاهده در ادیتور

3) camelCase یا kebab-case در style

در v-bind:style بهتر است camelCase بنویسی؛ kebab-case هم داخل کوتیشن ها ممکن است.

<div v-bind:style="{ backgroundColor: 'lightpink', 'font-weight': 'bolder' }">
  This div tag has pink background and bold text.
<\/div>

مشاهده در ادیتور

نکته: camelCase یعنی هر کلمه بعدی با حرف بزرگ شروع می شود؛ مثل backgroundColor.

4) آرایه کلاس ها

می توانی از آرایه استفاده کنی. بعضی کلاس ها ثابتند، بعضی وابسته به داده اند.

<div v-bind:class="[{ impClass: isImportant }, 'yelClass']">
  This div tag uses array syntax for classes.
<\/div>

مشاهده در ادیتور

گام های عملی

  1. داده ها را بساز و مقدار پیش فرض بده.
  2. برای استایل فوری، از v-bind:style استفاده کن.
  3. برای حالت های مختلف، از v-bind:class استفاده کن.

جمع بندی سریع

  • v-bind:style برای استایل های پویا است.
  • v-bind:class کلاس ها را شرایطی می کند.
  • class و v-bind:class باهم ادغام می شوند.
  • camelCase در style خواناتر و امن تر است.

ادامه مسیر: v-model و ویژگی های محاسبه ای را هم ببین تا بایندینگ CSS بهتر شود.