إيجابيات وسلبيات تصميم SVG الداخلي والخارجي
نشرت: 2022-11-29عندما يتعلق الأمر بتصميم الرسومات المتجهة ، فهناك طريقتان أساسيتان للقيام بذلك: مضمنة أو خارجية. الأنماط المضمنة هي تلك التي تتم كتابتها مباشرة في تعليمات SVG البرمجية ، بينما الأنماط الخارجية هي تلك التي تتم كتابتها في ملف CSS منفصل ثم يتم الرجوع إليها بواسطة رمز SVG. هناك إيجابيات وسلبيات لكلا النهجين ، ولكن بشكل عام ، يعد استخدام الأنماط الخارجية هو أفضل طريقة. هذا لأنه يسمح لك بالحفاظ على كود SVG نظيفًا ومرتبًا ، كما أنه يجعل من السهل إعادة استخدام الأنماط عبر ملفات SVG المتعددة. فيما يلي ملخص سريع لكيفية تصميم SVG باستخدام ورقة أنماط منفصلة: 1. قم بإنشاء ملف CSS وأضف الأنماط إليه. 2. أضف مرجعًا إلى ملف CSS الخاص بك في قسم كود SVG الخاص بك. 3. قم بتطبيق الأنماط على العناصر المطلوبة داخل كود SVG الخاص بك. وهذا كل ما في الأمر! يعد استخدام ورقة أنماط منفصلة طريقة رائعة للحفاظ على كود SVG نظيفًا ومنظمًا ، كما أنه يسهل إعادة استخدام الأنماط عبر ملفات متعددة. جربها وانظر بنفسك.
يمكنك إنشاء ملفات SVG بسيطة باستخدام XML. نتيجة لذلك ، هناك عدد كبير من مكتبات XML التي يمكنها تحقيق ذلك. إذا كنت تريد حفظ SVG في ملفات أخرى ، فيجب عليك تحديد CSS بالداخل. على الرغم من أنه يمكنك فعل ما تريد ، إلا أن هناك تحذيرًا واحدًا (حاسمًا) وهو أن المسارات داخل رمزك لا يمكن تصميمها بشكل مستقل باستخدام CSS. من خلال مزج CSS الخارجي ومطابقة CSS المضمنة ، يمكنك بسهولة التحايل على مشكلة القدرة على استهداف المسارات في رمزك بشكل منفصل باستخدام CSS خارجي. إذا كنت ترغب في استخدام هذه الطريقة ، فيجب عليك استخدام أيقونة بيضاء وخلفية ملونة ، لكن الأيقونة نفسها دائمًا ما تكون بيضاء (أو العكس). بمعنى آخر ، تعمل تعليمات HTML البرمجية على تصميم علامة img بدلاً من رمز SVG.
لن تعمل الرسومات ذات التعبئة باللون الأسود أو الأبيض أو الرمادي. يمكن استخدام ملف CSS خارجي لتصميم ذلك ، إذا اخترت علامة HTML. عندما تقوم بتحميل svg مضمّنًا من مصدر غير موثوق به ، ستتمكن من تضمين البرامج النصية التعسفية و css وعناصر أخرى في HTML الخاص بك ، مما يؤدي إلى كسر وضع الحماية الخاص بك. يجب عليك تضمين ملف .svg أو تضمينه في DOM الخاص بالمستند في هذه الحالة ، إما داخل HTML أو معه. يتم تمرير الدالة.js بعد تحميل العنصر ، والتي يجب أن تعمل مثل علامات img في DOM (أو طريقة مشابهة). لا يحتوي المستند على جافا سكريبت ولا رمز خادم ولا معرّف جذر. بعد ذلك ، يمكننا استخدامه مع علامة SVG2-Tag التي يبدو أنها مدعومة من Chrome / Edge - Blink ؛ فايرفوكس - أبو بريص ؛ و Safari - Webkit. إذا كنت تخشى استخدام خطوط الرموز ، فلا توجد طريقة أفضل للقيام بذلك بدونها: اتبع الخطوات التالية: إذا كنت مهتمًا بتغيير لون ملف thesvg لاحقًا ، فيمكنك استخدام هذا الملف كاسم ملف PHP.
يمكن تضمين أوراق الأنماط مباشرة في محتوى SVG بفضل عنصر "النمط" (* النمط). style> ، عنصر النمط في HTML ، يحتوي على نفس السمات مثل عنصر النمط لـ SVG (راجع عنصر> نمط HTML لمزيد من المعلومات).
عند استخدام علامة [svg] / svg [/ svg] ، يمكن إنشاء مستند HTML ديناميكيًا باستخدام صور SVG . يمكنك القيام بذلك عن طريق فتح ملف SVG في كود VS الخاص بك أو IDE المفضل لديك ، ونسخ الكود وإدخاله في عنصر النص في مستند HTML الخاص بك. يجب أن تكون قادرًا على رؤية صفحة الويب الخاصة بك تمامًا كما هي في المثال التالي إذا كان كل شيء يسير بسلاسة.
عند استخدامه في CSS ، يمكننا استخدام SVG باعتباره URI للبيانات ، ولكن لا يمكن الوصول إليه إلا في المتصفحات القائمة على Webkit بدون تشفير. تضمن طريقة encodeURIComponent () تشفير SVG في كل مكان. يجب أن تكون XMLns بهذه السمة موجودة في SVG: XMLns = "http: //www.w3.org/2000/svg".
هل يمكنك استخدام Css لأسلوب Svg؟
تتوفر الرسومات المتجهة القابلة للتطوير (SVG) في مجموعة متنوعة من التنسيقات ، ولكن يمكن تحويل سمات معينة فقط إلى CSS في رسم متجه. عند تصميم عناصر SVG ، يمكن استخدام سمات العرض التقديمي في خصائص CSS أيضًا. في حين أن بعض هذه السمات هي SVG فقط ، فإن البعض الآخر مشترك بالفعل في CSS ، مثل حجم الخط أو الشفافية.
قد يكون إنشاء رمز أو أي عنصر أو صورة SVG أخرى باستخدام> use> أمرًا صعبًا. في هذه المقالة ، سننظر في كيفية التغلب على قيود التصميم التي قدمها الخيار> استخدام>. في SVG ، يتم تحديد العناصر الأربعة الرئيسية وهيكلتها ومراجعها. عندما تقوم بإنشاء قالب ، يمكنك تحديد بعض العناصر باستخدام الخيار defs>. يمثل العنصر الموجود في المستند قالبًا سيتم الرجوع إليه في مكان آخر في المستند ويتم استخدامه لتنظيم العناصر التي تحدد هذا القالب. من خلال استخدام عنصر use ، يمكنك إعادة استخدام العناصر والقيام بنفس الشيء في محرر الرسومات كما تفعل في تطبيق النسخ واللصق. ماذا يعني Shadow DOM؟
هل هناك طريقة لفحص تلك الوثيقة الفرعية لمعرفة كيفية عملها الداخلي؟ هناك نسخة من نفسها في هذا العنصر. يمكن استخدام أدوات مطور Chrome لفحص محتويات Shadow DOM. للقيام بذلك ، انقر فوق رمز Cog في علامة التبويب "عام" بلوحة الإعدادات ، ثم قم بتمكين فحص DOM في الظل. من ناحية أخرى ، يتصرف Shadow DOM بشكل مختلف عن المستند الرئيسي عندما يتعلق الأمر بمعالجة CSS و JavaScript ، لذلك لا يمكنك معرفة ما إذا كان DOM عاديًا أم ظلًا. لا يمكن استهداف مسار تابع لتلك الوظيفة. نظرًا لعدم توفر محددات CSS العادية ، لا يمكننا الوصول إلى Shadow DOM.
تُستخدم سمات العرض التقديمي بشكل متكرر لتحديد خاصية CSS لعنصر. إنهم يساهمون في تسلسل الأسلوب بطريقة ما بسبب طبيعتهم ، ولكن ليس دائمًا كما هو متوقع. في سمات العرض التقديمي ، يتم استخدام ورقة أنماط مؤلف ذات مستوى منخفض ، ويمكن لأي تعريف نمط آخر تجاوزها. فقط عبر الأنماط الموروثة موجودة في تسلسل النمط ، وهو سمة عرض الطاقة الوحيدة. ترث الأنماط الأنماط من أسلافها تمامًا كما تفعل من عناصر العنصر. لم يتم تعريف سمة العرض بأي تصريح نمط آخر. يمكننا استخدام هذه الطريقة عن طريق إجبار قيمة سمة العرض على تجاوزها من خلال إعلان نمط خارجي.
نتيجة لذلك ، يعد استخدام الكلمة الأساسية الموروثة CSS أمرًا بسيطًا للغاية. نظرة على المثال التالي لأيقونة الآيس كريم المكونة من مسار واحد فقط يمكن تغيير لون تعبئته لتطبيق مختلف. يمكن أن يكون محتوى CSS all Property مفيدًا للغاية ، ولكنه إجراء متطرف. في الجوهر ، يُرجع هذا الإعلان قيم خصائص كل عنصر من سلفه. إنه يعمل في أي متصفح يدعم جميع الممتلكات (انظر إدخال الخاصية لمزيد من المعلومات). عند استخدام متغير CSS currentColor ، يمكننا تحديد لونين مختلفين على عنصر بدلاً من لون واحد فقط. الغرض من استخدام هذه التقنية هو دمج خصائص التعبئة واللون على> use> بحيث تتالي الألوان في محتويات الصفحة بناءً على الطبيعة المتغيرة لـ currentColor.
سنستخدم متغير colorColor الحالي لتحديد قيمة اللون لكل قطرة في المقدمة ، كما هو محدد في خاصية اللون. يمكن أن تستفيد الشعارات البسيطة ذات اللونين بشكل كبير من هذه التقنية. قدمت Amelia Bellamy-Royds هذا المفهوم لأول مرة في منشور مدونة Codepen منذ أكثر من عام بقليل. إذا كنت تستخدم CSS Variables ، فيمكن تصميم محتويات عنصر دون الحاجة إلى إجبار المتصفح على تجاوز أي قيم لسمات العرض التقديمي. المتغيرات ، وهي كيانات تحدد صفحات الويب بناءً على قيمها المحددة ، يتم إنشاؤها بواسطة المؤلفين أو المستخدمين. يتم استخدامها بشكل متكرر وتقوم بأشياء لا تستطيع متغيرات المعالج المسبق القيام بها ، على الرغم من تشابهها مع متغيرات المعالج المسبق لـ CSS (مثل Sass). باستخدام نسخ متعددة من الصورة ، يمكنك اختيار مجموعة من الألوان لاستخدامها وإنشاء سمات متنوعة بناءً على استخدام الصورة.
إنه مفيد بشكل خاص إذا كنت تنوي تصميم شعار بعدة طرق ، على سبيل المثال في سياق محدد أو لأي غرض آخر مشابه. لا تزال هناك فرصة لتضمين خصائص التعبئة واللون جنبًا إلى جنب مع هذه المتغيرات ، ولكن قد لا تحتاج إلى ذلك أو قد لا ترغب في ذلك. عندما لا يتم تحميل قيمة المتغير ، يعود المتصفح إلى لونه الأولي المحدد في الترميز. سيكون لكل مثيل جديد سمة اللون الخاصة به بناءً على القيمة المحددة في CSS. باستخدام CSS cascades ، يمكنك تبسيط تصميم محتويات> use>. يمكن تخصيص رسوماتنا وفقًا لمواصفاتنا باستخدام متغيرات CSS التي يمكننا إدراجها في Shadow DOM. إنها متوفرة حاليًا في Firefox فقط ، ولكن يمكنك التصويت لها في المتصفحات الأخرى في أقرب وقت ممكن. هناك بالفعل مناقشات حول استخدام CSS Variables كمعلمات SVG في المستقبل ، لذلك قد نستخدمها بطرق أخرى.
يتم عرض الصور بتنسيق SVG كملفات svg. لتغيير كيفية عرض صورة SVG في المستعرض ، يجب عليك استخدام إحدى الطرق الثلاث المدرجة أدناه. عند استخدام * object> ، سيتم وضع SVG ككائن aaobject وسيتم استخدام CSS و Javascript للتحكم فيه. يمكن استخدام * iframe / CSS و Javascript للتحكم في SVG عند تحميله ككائن مستند باستخدام * svg. لتغيير لون صورة SVG ، يجب عليك أولاً إدخال خاصية تعبئة في علامة svg. يمكن تغيير اللون باستخدام CSS بعد ذلك. بعد تعيين خاصية التعبئة ، سيتم تطبيق خاصية اللون لعنصر أو أصل علامة svg.
إيجابيات وسلبيات Svg و Css
كلا التنسيقين لهما مزايا وعيوب. إنه أكثر تنوعًا ويمكن أن يكون أكثر تفصيلاً ، لكن العمل معه أكثر صعوبة. من ناحية أخرى ، فإن CSS أبسط ولا تتطلب قدرًا كبيرًا من الذوق ، ولكنها قد لا تكون متعددة الاستخدامات مثل CSS.
هل يمكن تحجيم رسومات Svg باستخدام Css؟
إذا كنت تستخدم CSS لتعيين ارتفاع أو عرض SVG ، فيجب تعيين خصائص الارتفاع والعرض الخاصة بـ * svg لمنحك ارتفاع SVG المضمّن الافتراضي ، يجب تعيين svg (* width: 100٪؛ height: auto؛ *) على قاعدة تلغي الأبعاد ونسبة العرض إلى الارتفاع المحددة في الكود.
ستساعدك الخطوات التالية في توسيع نطاق رسومات المتجهات. تقدم Amelia Bellamy-Royds شرحًا مفصلاً لتوسيع SVG. على الرغم من أنها ليست بسيطة مثل تحجيم الرسومات النقطية ، إلا أنها قد تسمح لك بإنشاء تطبيقات مثيرة للاهتمام. قد يفاجأ المبتدئين بمدى سهولة تغيير سلوك ملف SVG. نسبة العرض إلى الارتفاع للصور الفوتوغرافية هي نسبة عرضها إلى ارتفاعها. يمكن للمتصفح رسم صورة نقطية بحجم مختلف عن الطول والعرض الجوهريين ، ولكن يمكنه أيضًا تشويه الأشياء إذا تم رسمها بنسبة عرض إلى ارتفاع مختلفة. عادةً ما يتم رسم SVGs المضمنة بالحجم المحدد في الكود ، بغض النظر عن حجم قماش الرسم.
ViewBox هو الجزء الأخير من البرنامج الذي ينتج Scalable Vector Graphics (SVG). عنصر viewBox هو عنصر خاصية في عنصر element.svg (). في أبسط أشكالها ، هي قائمة من أربعة أرقام مفصولة بمسافة بيضاء أو فاصلات: x ، y ، العرض ، والارتفاع. بالنسبة للزاوية اليسرى من منفذ العرض ، تحدد x و y نظام الإحداثيات. يمكن حساب الارتفاع بضرب عدد الأحرف / الإحداثيات المطلوبة لملء ارتفاع متاح بارتفاع معين. إذا أعطيت أبعاد الصورة التي لا تتطابق مع نسبة العرض إلى الارتفاع ، فلن يتم تمديدها أو تشويهها. تتيح لك خاصية Object-fit CSS ، التي يمكن استخدامها مع أنواع الصور الأخرى أيضًا ، أن تفعل الشيء نفسه.
علاوة على ذلك ، لديك خيار preservingAspectRatioLastBeforeScale = ”none“ ، مما سيسمح لصورتك بالحجم إلى نفس حجم الصورة النقطية. يمكن ضبط عرض أو ارتفاع الصورة باستخدام مقياس الصورة النقطية. هل من الممكن الحصول على ذلك من خلال sva؟ يصبح الأمر أكثر صعوبة مع مرور الأشهر. يعد استخدام الحجم التلقائي للصورة مع ملف> img> مكانًا جيدًا للبدء ، ولكن القرصنة أصعب قليلاً. باستخدام مجموعة متنوعة من خصائص CSS المختلفة ، يمكنك ضبط نسبة العرض إلى الارتفاع لعنصر عن طريق ضبط ارتفاعه وهامشه. ستقوم المتصفحات الأخرى تلقائيًا بتعيين حجم الصورة إلى 300 * 150 إذا كان بها مربع عرض ؛ لم يتم تعريف هذا السلوك في أي مواصفات.
إذا كنت تستخدم أحدث متصفحات Blink / Firefox ، فيمكنك تغيير حجم الصورة لتلائم مربع العرض. إذا لم تحدد الارتفاع أو العرض ، فسيتم تعيين الأحجام الافتراضية لهذه المتصفحات. عنصر الحاوية هو أبسط طريقة لاستبدال عناصر مثل SVG و> object> المضمنة في SVG. سيكون الارتفاع الرسمي (على الأكثر) صفرًا ، وفقًا للرسم المضمن. باستخدام القيمة الافتراضية saveRatioAspect ، سيتم تغيير حجم الرسم إلى لا شيء. تفضل تمديد الرسم الخاص بك بحيث يغطي العرض الكامل الذي توفره له ، ثم انسكبه على منطقة الحشو التي أعددتها بعناية لنسبة العرض إلى الارتفاع الصحيحة. يسمح لك كل من ViewBox و PreserveRatioAspect بإنشاء عروض قابلة للتكيف للغاية. يمكن استخدام العناصر المتداخلة لفصل الأجزاء الفردية من مقياس الرسم الخاص بك وتقديمها بترتيبها المميز الخاص ، باستخدام سمات قياس كل عنصر. الهدف من هذا الأسلوب هو إنشاء رسم رأس يمتد ليغطي شاشة عريضة مع عدم إعاقة ارتفاعه.
Greensock و Fuse هما أداتان للرسوم المتحركة يمكننا استخدامهما لإنشاء رسوم متحركة.
تتيح لك وظائف الحركة البينية في Greensock إنشاء رسوم متحركة بسرعة وسهولة.
تحتوي مكتبة Fuse على مجموعة من الرسوم المتحركة التي يمكن إنشاؤها بسهولة من خلال توفير مجموعة من الكائنات لتحريكها.
تحجيم الصور باستخدام Svg
بشكل افتراضي ، يمكن استخدام إعداد viewBox لمقياس صورة SVG دون تغيير تخطيطها. يتم استخدام viewBox لتحديد نظام إحداثيات لصورة SVG وأبعادها. يمكن تكوين viewBox للعمل مع أي نظام إحداثي ، بما في ذلك نظام الإحداثيات الحالي للمستخدم. نتيجة لذلك ، يمكنك قياس صورة SVG بدون تغيير تخطيطها. ViewBox = viewBox هو اسم مربع العرض. هذا تمثيل لصفر 100.
كيف تصمم Svg Css
عند تصميم SVG باستخدام CSS ، هناك بعض الاعتبارات الخاصة. أولاً ، نظرًا لأن SVGs عبارة عن صور متجهة ، يمكن تحجيمها بلا حدود دون فقدان الجودة. هذا يعني أنه يجب كتابة CSS بطريقة تستفيد من ذلك. ثانيًا ، يمكن تصميم أشكال SVG باستخدام كل من CSS المضمنة و CSS الخارجية. تتم كتابة CSS المضمن مباشرةً في كود HTML ، بينما تتم كتابة CSS الخارجية في ملف منفصل وربطها بكود HTML.
عندما يتم رسم المعالم باستخدام SVG (رسومات متجهة قابلة للقياس) ، يمكن استخدام نمط CSS لطبقات الخريطة. من ناحية أخرى ، تكون أجهزة العرض والرموز أقل جاذبية للمطورين المعتادين على استخدام CSS. لا يمكن استخدام CSS لدعم أساليب الرسم المتجهة الأخرى المستخدمة في المتصفحات القديمة مثل Canvas و VML وغيرها. يمكن إنجاز تصميم الميزات باستخدام CSS بعدة طرق. يمكن استخدام طريقة المقياس المضمنة في D3 لفرز بياناتنا في مجموعات ثم تطبيق الأنماط على كل مجموعة باستخدام مجموعة أدوات D3. نظرًا لأنه تم تعيين النمط على خطأ في فئة الرسوم ، يمكن إضافة عدد من سمات البيانات الجديدة خارج الصندوق. يتم تطبيق الأنماط على العارضين باستخدام JS API بنفس الطريقة التي يتم بها تطبيق الأنماط على عناصر المسار. يتم استخدام قيمة السمة لتصميم العقد باستخدام سمة البيانات ، والتي تُستخدم لتحديد فواصل الفئات ، والتسمية ، والتي تُستخدم لتعريف الملصقات. يمكننا استخدام المحددات الزائفة مثل: hover لإضافة تأثير تمرير إلى صفحة عند استخدام CSS.
يتضمن قسم تأثيرات محرر SVG عددًا من المرشحات التي يمكن استخدامها. يمكن استخدام المرشحات لتغيير الألوان والأشكال وشفافية svega. علاوة على ذلك ، يمكن استخدام بعض المرشحات المتقدمة لإنشاء تأثيرات أكثر تعقيدًا.
نمط Svg مع Css خارجي
تتمثل إحدى طرق تصميم SVG باستخدام CSS الخارجي في استخدام امتداد