قم بإنشاء CSS-Only Image Reveal Effect مع حدود شفافة
ا الصورة المغلق فقط تكشف عن التأثير يمكن حلها بطرق مختلفة. انها في الواقع من السهل جدا أن رمز التصميم الذي الصورة تبرز من (تم تجاوزه بواسطة) الخلفية الصلبة -انت فقط ضع صورة على عنصر أصغر بخلفية صلبة.
يمكنك الحصول على نفس النتيجة إذا كنت تستخدم حدود شفافة, حيث يمكنك الحفاظ على حجم عنصر الخلفية هو نفسه كما في المقدمة وإضافة حدود شفافة من أجل إنشاء مساحة فارغة لالمقدمة لتفيض في.
هناك بعض المزايا في استخدام الطريقة الأخيرة. نظرًا لأن الحدود الشفافة هي التي توفر المساحة التي يجب أن تفيض عليها المقدمة ، يمكننا ذلك السيطرة على اتجاه الفائض بين الحدود اليسرى واليمنى والعلوية والسفلية. أيضا ، وجود نفس الحجم لكل من المقدمة والخلفية يجعل من السهل نقل كلا العنصرين في وقت واحد عبر الصفحة.
باختصار ، سنرى كيف نفعل ذلك إنشاء صورة CSS فقط تكشف عن تأثير باستخدام أ خلفية صلبة أصغر مع الصورة الأمامية التي لها حدود شفافة. يمكنك التحقق من التجريبي النهائي أدناه.
1. إنشاء الرمز الأولي
HTML الحكيم, واحد فقط في CSS ، نستخدمها متغيرات CSS اثنين, نضيف أيضا نحن أضف فارغا ال نضيف الصورة إلى ال على ال قطة أدناه تستطيع أن ترى ما لدينا حتى الآن ( لإضافة خلفية (انزلاق) أصغر خلف الصورة, سنستخدم العنصر الزائف الآخر, نقوم بإنشاء متغير CSS آخر, ال عرض يحسب كما ال ارتفاع يحسب كما مع ال مرشح المغلق من هنا ال لقطة شاشة للعرض التجريبي المقدمة حتى الآن (مع نحن أضف ال كما نحن وأضاف بالفعل أدناه ، يمكنك رؤية التجريبي النهائي. إذا قمت بعرض
--BGC
و --خافت
ل لون الخلفية و ال أبعاد من .فو
حاوية ، على التوالي. في المثال ، استخدمت نفس القيمة للحصول على العرض والارتفاع للحصول على مربع على شكل مربع ، وخلق متغيرات منفصلة للارتفاع والعرض إذا كنت تريد مستطيل.الموقف: النسبية
حكم ل .فو
, بحيث العناصر الزائفة ، التي سنستخدمها ل كشف الصورة, يمكن ان يكون وضع تماما (انظر أدناه) ، وبالتالي مكدسة على بعضها البعض. .foo --bgc: # FFCC03؛ - البعد: 300 بكسل ؛ العرض: فار (- خافت) ؛ الارتفاع: فار (- خافت) ؛ لون الخلفية: var (- bgc) ؛ الموقف: نسبي
يحتوى
خاصية لكلا العناصر الزائفة, .فو :: قبل
و .فو :: بعد
, للحصول عليها المقدمة بشكل صحيح. .foo :: before، .foo :: after content: "؛ position: absolute؛ left: 0؛ top: 0؛
.فو
عنصر ، لها اثنين من العناصر الزائفة, .فو :: قبل
, .فو :: بعد
, ولهم :يحوم
الزائفة الطبقات احصل على انتقال
خاصية ذلك سوف إضافة سهولة في الانتقال لهم لمدة 500 ميلي ثانية (نصف ثانية). .foo، .foo: hover، .foo :: before، .foo :: after، .foo: hover :: before، .foo: hover :: after الانتقالية: convert 500ms eas-in؛
2. أضف الصورة
.فو :: قبل
شبه عنصر كصورة خلفية, و حجمه لتغطية العنصر الزائف بأكمله مع ال عرض
و ارتفاع
الخصائص. نحن كومة ذلك الحق تحت .فو
جزء باستخدام مؤشر z: -1
قاعدة. .foo :: before width: 100٪؛ الارتفاع: 100 ٪ ؛ الخلفية: مركز / غطاء عنوان url (camel.png) ؛ مؤشر z: -1 ؛
مركز
الكلمة تتمركز الصورة, بينما ال التغطية
الكلمة الرئيسية تحجيم الصورة ل تغطية العنصر بأكمله مع الحفاظ على نسبة العرض إلى الارتفاع. ض مؤشر
تتم إزالة من .فو :: قبل
بحيث يمكن رؤيته):3. أضف خلفية السحب
.فو :: بعد
.--ب
, ل عرض الحدود. نحن نعطي ثلاثة حدود شفافة إلى ::بعد
شبه العنصر: أعلى يمين وأسفل. .foo :: after --b: 20px؛ العرض: calc (100 ٪ - فار (- ب)) ؛ الارتفاع: calc (100٪ - calc (var (- b) * 2)) ؛ الحدود: فار (- ب) صلبة شفافة ؛ الحدود اليسرى: لا شيء ؛ box-shadow: inset 0 var (- dim) 0 var (- bgc)؛ مرشح: السطوع (.8) ؛ مؤشر z: -2 ؛
احسب (100 ٪ - فار - ب))
أن يعود العرض الكلي لل .فو
ناقص العرض الكلي للحدود الأفقية (الحدود اليمنى فقط ، حيث لا توجد حدود يسرى).calc (100٪ - calc (var (- b) * 2))
أن يعود الارتفاع الكلي لل .فو
ناقص العرض الكلي لحدوده العمودية (الحدود العليا والسفلى).مربع الظل
الملكية ، ونحن أيضا إضافة الظل أقحم الأفقي من نفس الحجم .فو
(الذي فار (- خافت)
).سطوع (0.8)
يغمق لون الخلفية قليلا ، وأخيرا ، و مؤشر z: -2
قاعدة يضع ::بعد
العنصر الزائف تحتها ::قبل
يحتوي على الصورة.ض مؤشر
تمت إزالته من كل من العناصر الزائفة بحيث يمكن رؤيتها):4. إضافة التحول
تحول
خاصية إلى عنصرين الزائفة ، لذلك عندما يحوم المستخدم أكثر .فو
, كلا العناصر الزائفة انتقل أفقيا.انتقال
الملكية لجميع العناصر في نهاية الخطوة 1 ، حركة الصورة وخلفيتها كلا الرسوم المتحركة. .foo: hover :: before، .foo: hover :: after convert: translateX (100٪)؛
المكافأة: الهامش الاختياري
.فو
بجانب العناصر الأخرى على صفحة وتريد هذه العناصر الأخرى ل ابتعد عندما تنزلق الصورة وخلفيتها ، أضف الهامش الأيمن من نفس العرض مثل .فو
إلى .فو: تحوم
جزء. .foo: hover margin-right: var (- dim)؛