شبه عناصر before: و after: در CSS

- visibility ٨ mode_comment

به نام خدا

با سلام خدمت دوستان عزیز سون لرنی.css-beforeafter-0

شبه عناصر :before و :after همونطور که هم که از اسمشون پیداست میتونند در اول و آخر یک عنصر، عنصر جدیدی ایجاد کنند تا به وسیله ی اون بتونیم کنترل بیشتری برای استایل دادن به عناصر HTML داشته باشیم. به مثال زیر توجه کنید.

خروجی به صورت زیر خواهد بود:

01

و حالا اگه بخواهیم همین کار رو با استفاده از شبه عناصر :before و :after انجام دهیم، کدهامون به صورت زیر خواهد بود.

نتیجه در jsfiddle.01

info نکته :

خاصیت content تنها بر روی شبه عناصر :before و :after اثر میگذارد و بر روی دیگر عناصر هیچ تاثیری ندارد.

همونطور که در تصویر بالا دیدید، متن شبه عناصر رو توسط خاصیت content تعیین کردیم. خب حالا یه نگاهی هم به inspector مرورگرمون بندازیم:001 همونطور که دیدید متن شبه عناصر :before و :after توسط HTML دستکاری نمیشه و فقط میشه اونهارو توسط خاصیت content تغییر داد. و اینکه متن شبه عناصر انتخاب(select) نمیشن.

مهم ترین نکته راجع به این دو شبه عناصر اینه که تا زمانی که خاصیت  content آنها مشخص نشده باشد، پنهان  هستند. اگر نمیخواهید در آنها متنی بنویسید پس مقدار content آنهارا برابر دو کوتیشن باز و بسته قرار بدید. مقدار پیشفرص خاصیت content برابر none هست.

before-after-pseudo-elements

شاید بعضی جاها ببینید که از این دو شبه عنصر رو به صورت ::before و ::after استفاده کنند؛ :before و :after در ورژن دوم CSS،  و ::before و ::after در ورژن سوم وارد زبان CSS شدند.

نماد :: برای ایجاد تفاوت بین شبه کلاس ها(:hover , :active, :focus, :checked , :first-child و ...) و شبه عناصر(::before, ::after , ::first-line, ::first-letter و ...) در ورژن سوم وارد CSS شد.

برای اینکه پشتیبانی مررورگرها از این دو شبه عنصر بیشتر بشه، معمولا از همون :before و :after استفاده میکنند.

حالا یه مثال کاربردی تر از این دو شبه عنصر:

 

demoهمونطور که دمو رو دیدید گوشه های عنوان باکس رو توسط شبه عنصر :after و :before ایجاد کردیم و z-index اونهارو برابر -1 قرار دادیم تا در در پشت باکس قرار بگیرند.

موفق باشید.

comment دیدگاه کاربران
محمد اسفندیاری

با تشکر از شما دوست عزیز

mohammad nikkhah
علی امینی

سلام
اگه تگی قرار بدی اون تگ به string تبدیل میشه و عمل نمیکنه.
IE از نسخه ی 8 به بعد و بقیه مرورگرها هم ساپورت میکنند. caniuse

hassani

ممنونم خیلی خوب بود

milad salimi

سلام من میخواستم منو درست کنم
مثلا
صفحه اول / دانلود موزیک/ و …/
/ اینو با افتر درست کردم ولی روی اخرین هم مییاد
مثلا اخریش میخوام این اضافه نشه /
ممنون میشم بگید

با سلام
این کد رو درون codepen نوشتم
https://codepen.io/Mesfandiari/project/editor/ZLzQpA
میتونین از این روش استفاده کنید. درون فایل style.css کدهای css رو ببینید
موفق باشید

milad salimi

ممنون ولی موقعی ک استایل میدم میخوام بیارمش وسط منو با مشکل مواجع میشم
http://uupload.ir/files/nzf0_photo_2017-04-21_15-02-10.jpg
ببینید میخوام بیا وسط و فاصله هم داشته باشه
به a display: block; میدم اینطوری میشه

فایلتون رو زیپ کرده و آپلود کنید

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.