UTILS.
۱۰۰٪ در مرورگر
💅

تبدیل CSS به شیء استایل JS

یک بلوک از declarationهای CSS را به یک شیء استایل JavaScript برای استایل‌های inline در React، ‏styled-components یا Emotion تبدیل کنید، با propertyهای camelCase.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

ابزار تبدیل CSS به شیء استایل JS یک بلوک CSS را به یک شیء JavaScript مناسب برای استایل‌های inline در React یا کتابخانه‌های CSS-in-JS مانند styled-components و Emotion تبدیل می‌کند. declarationها را به‌صورت محلی در مرورگر شما تجزیه می‌کند — هیچ چیز بارگذاری نمی‌شود — پس مهاجرت یک stylesheet به استایل‌های inline تنها یک چسباندن-و-کپی فاصله دارد.

نام هر property به camelCase درمی‌آید: background-color به backgroundColor، ‏z-index به zIndex. پیشوندهای vendor از قوانین React پیروی می‌کنند — یک -ms- ابتدایی به ms کوچک می‌شود (msFilter)، در حالی که -webkit-، ‏-moz- و -o- به Webkit، ‏Moz و O بزرگ می‌شوند (WebkitBoxShadow). propertyهای سفارشی (--brand-color) به‌صورت کلیدهای در گیومه، عیناً حفظ می‌شوند. مقادیر به‌طور پیش‌فرض به‌عنوان رشته تولید می‌شوند و واحدها و !important را حفظ می‌کنند؛ یک کلید تغییر عددی به اعداد صحیح و اعشاری برهنه اجازه می‌دهد به‌جای آن به اعداد بدون‌گیومه تبدیل شوند. کلیدهایی که شناسه‌های معتبر JavaScript هستند بدون گیومه رها می‌شوند؛ بقیه به‌طور خودکار در گیومه قرار می‌گیرند.

هنگامی که ورودی یک بلوک declaration ساده باشد (بدون selector) یک شیء مسطح تولید می‌کند، عالی برای یک prop به‌نام style در React. هنگامی که ورودی شامل قواعد کامل با selector باشد، حالت styled/Emotion یک شیء تودرتو که با هر رشته selector کلیدگذاری شده تولید می‌کند — نحو شیئی که آن کتابخانه‌ها می‌پذیرند. شما نام const خروجی را کنترل می‌کنید، و کل چیز به‌صورت const styles = { ... }; نوشته می‌شود، آماده چسباندن.

پرسش‌های پرتکرار

نام propertyها چگونه تبدیل می‌شوند؟
propertyهای دارای خط تیره camelCase می‌شوند (background-color به backgroundColor). پیشوندهای vendor از React پیروی می‌کنند: -ms- به یک پیشوند ms کوچک، در حالی که -webkit-، ‏-moz- و -o- به Webkit، ‏Moz و O تبدیل می‌شوند. propertyهای سفارشی مانند --foo به‌صورت کلیدهای در گیومه حفظ می‌شوند.
مقادیر عدد هستند یا رشته؟
به‌طور پیش‌فرض هر مقدار یک رشته است، که همیشه ایمن است و واحدها و !important را دست‌نخورده نگه می‌دارد. کلید تغییر عددی را فعال کنید و مقادیر کاملاً عددی (مانند z-index: 10) به‌جای آن به‌عنوان اعداد بدون‌گیومه تولید می‌شوند.
تفاوت بین دو حالت چیست؟
حالت inline در React یک شیء مسطح واحد از یک بلوک declaration تولید می‌کند. حالت styled / Emotion یک شیء تودرتو که با رشته‌های selector کلیدگذاری شده تولید می‌کند، مطابق با نحو شیئی که styled-components و Emotion برای چند قاعده می‌پذیرند.
آیا قواعد کامل CSS با selector را مدیریت می‌کند؟
بله. اگر ورودی شامل selector و آکولاد باشد، هر قاعده به شیء تودرتوی خودش زیر کلید selector تجزیه می‌شود. یک فهرست declaration برهنه بدون selector یک شیء استایل مسطح تولید می‌کند.

ابزارهای بیشتر