در تصویر میبینید که زمانی که فرزندان عنصر نگهدارنده float میگیرند دیگر ارتفاع نگهدارنده از ارتفاع فرزندانش تبعیت نمیکند. راه حل شما برای این مشکل چیست؟
#interviewquestion #css
@ProGraphs
#interviewquestion #css
@ProGraphs
ProGraphs
در تصویر میبینید که زمانی که فرزندان عنصر نگهدارنده float میگیرند دیگر ارتفاع نگهدارنده از ارتفاع فرزندانش تبعیت نمیکند. راه حل شما برای این مشکل چیست؟ #interviewquestion #css @ProGraphs
جواب سوال رو طبق روال همیشگی فردا ساعت 18:15 در کانال قرار میدیم.
تا اون موقع اگر مفهوم BFC رو فراموش کردید مطلبی که در این باره نوشتیم رو دوباره مطالعه کنید 😉 :
https://t.iss.one/ProGraphs/121
تا اون موقع اگر مفهوم BFC رو فراموش کردید مطلبی که در این باره نوشتیم رو دوباره مطالعه کنید 😉 :
https://t.iss.one/ProGraphs/121
Telegram
ProGraphs
جواب:
یک BFC یا Block Formatting Context، قسمتی از صفحه بندی در CSS است که بلاکهای دیگر را در خود جای میدهد و جریان و جایگیری آنها را مدیریت میکند.
مفهوم BFC را میتوانیم از دو جنبه بررسی کنیم:
1) چطور یک BFC درست کنیم:
عناصری که یکی از ویژگیهای زیر…
یک BFC یا Block Formatting Context، قسمتی از صفحه بندی در CSS است که بلاکهای دیگر را در خود جای میدهد و جریان و جایگیری آنها را مدیریت میکند.
مفهوم BFC را میتوانیم از دو جنبه بررسی کنیم:
1) چطور یک BFC درست کنیم:
عناصری که یکی از ویژگیهای زیر…
یکی از دوستان این کار رو زدن و برای ما فرستادن.
کار جالبی هم شده 👌
https://codepen.io/arashmilani/pen/WYGyWO
@ProGraphs
کار جالبی هم شده 👌
https://codepen.io/arashmilani/pen/WYGyWO
@ProGraphs
🔺 تو ۱۰ دقیقه مبانی Less رو یاد بگیر!
https://tutorialzine.com/2015/07/learn-less-in-10-minutes-or-less
#link #less
@ProGraphs
https://tutorialzine.com/2015/07/learn-less-in-10-minutes-or-less
#link #less
@ProGraphs
Tutorialzine
Learn LESS in 10 Minutes (or Less)
In this quick lesson we are going to cover the basics of Less. It is one of the most widely used CSS pre-processor at the moment and is a great addition to every web developer's toolkit.
ProGraphs
در تصویر میبینید که زمانی که فرزندان عنصر نگهدارنده float میگیرند دیگر ارتفاع نگهدارنده از ارتفاع فرزندانش تبعیت نمیکند. راه حل شما برای این مشکل چیست؟ #interviewquestion #css @ProGraphs
جواب:
روش اول:
متاسفانه جوابی که در اکثر منابع میبینید صرفا استفاده از چند پراپرتی به صورت حفظی و بدون دلیل است. مثلا این که عنصر نگهدارنده را overflow: hidden کنیم یا به خود عنصر نگهدارنده float بدهیم.
اما اگر مطلبی که دربارهی BFC ها منتشر کردیم را مطالعه کرده باشید میدانید که برای حل این مشکل فقط کافیست عنصر نگهدارنده را یک BFC کنید به همین سادگی 😁
حالا میتوانید از هریک از روشهای مطرح شده برای تبدیل کردن یک عنصر به BFC استفاده کنید. در واقع این پراپرتیهایی که به صورت حفظی مطرح میشوند هم عنصر نگهدارنده را BFC میکنند.
روش دوم:
استفاده از clearfix
فقط کافیست یک عنصر بعد از همهی فرزندان عنصر نگهدارنده قرار دهید و به آن ویژگی clear: both را بدهید.
البته روش اصولی تر استفاده از شبه عنصر ::after است:
روش اول:
متاسفانه جوابی که در اکثر منابع میبینید صرفا استفاده از چند پراپرتی به صورت حفظی و بدون دلیل است. مثلا این که عنصر نگهدارنده را overflow: hidden کنیم یا به خود عنصر نگهدارنده float بدهیم.
اما اگر مطلبی که دربارهی BFC ها منتشر کردیم را مطالعه کرده باشید میدانید که برای حل این مشکل فقط کافیست عنصر نگهدارنده را یک BFC کنید به همین سادگی 😁
حالا میتوانید از هریک از روشهای مطرح شده برای تبدیل کردن یک عنصر به BFC استفاده کنید. در واقع این پراپرتیهایی که به صورت حفظی مطرح میشوند هم عنصر نگهدارنده را BFC میکنند.
روش دوم:
استفاده از clearfix
فقط کافیست یک عنصر بعد از همهی فرزندان عنصر نگهدارنده قرار دهید و به آن ویژگی clear: both را بدهید.
البته روش اصولی تر استفاده از شبه عنصر ::after است:
.container::after {
content: '';
display: table;
clear: both;
}
با Drag & Drop قالب سایت مورد نظر خودتونو بسازید و کد HTML اونو دانلود کنید. 👌🏻
https://www.froala.com/design-blocks
#link #designblocks #webpagebuilder
@ProGraphs
https://www.froala.com/design-blocks
#link #designblocks #webpagebuilder
@ProGraphs
توضیح مفهوم کلی prototype در جاوااسکریپت (بخش دوم):
در مطلب قبلی پراپرتی [[prototype]] را بررسی کردیم که فقط مختص انجین جاوااسکریپت است و به عنوان لینک بین آبجکتها استفاده میشود. حالا میخواهیم ببینیم که خودمان چطور میتوانیم آبجکتها را با [[prototype]] به هم لینک کنیم:
روش اول:
میدانیم که توابع در جاوااسکریپت در واقع نوع خاصی از آبجکت هستند و میتوانند پراپرتی داشته باشند. همهی توابع پراپرتی به نام prototype دارند که کاملا public و قابل تغییر است. حالا این چه ارتباطی به لینک شدن آبجکتها به هم دارد؟
فرض کنید تابعی به نام foo داریم. میدانیم که این تابع پراپرتی به نام prototype دارد. اگر این تابع را با new صدا کنیم. یک آبجکت جدید return میکند که از طریق [[prototype]] به foo.prototype لینک شده است. به این ترتیب میتوانیم یک آبجکت جدید بسازیم که به آبجکتی دیگر (foo.prototype) لینک شده است. (به کد داخل تصویر دقت کنید)
نکته خیلی خیلی مهم اینکه این پراپرتی prototype توابع با پراپرتی [[prototype]] آبجکتهای معمولی کاملا متفاوت هستند و کاربرد آنها هم همانطور که دیدیم متفاوت است (میدونم گیج کنندست ولی یه کم کار کنید عادی میشه 😁).
#quicktip #js
@ProGraphs
در مطلب قبلی پراپرتی [[prototype]] را بررسی کردیم که فقط مختص انجین جاوااسکریپت است و به عنوان لینک بین آبجکتها استفاده میشود. حالا میخواهیم ببینیم که خودمان چطور میتوانیم آبجکتها را با [[prototype]] به هم لینک کنیم:
روش اول:
میدانیم که توابع در جاوااسکریپت در واقع نوع خاصی از آبجکت هستند و میتوانند پراپرتی داشته باشند. همهی توابع پراپرتی به نام prototype دارند که کاملا public و قابل تغییر است. حالا این چه ارتباطی به لینک شدن آبجکتها به هم دارد؟
فرض کنید تابعی به نام foo داریم. میدانیم که این تابع پراپرتی به نام prototype دارد. اگر این تابع را با new صدا کنیم. یک آبجکت جدید return میکند که از طریق [[prototype]] به foo.prototype لینک شده است. به این ترتیب میتوانیم یک آبجکت جدید بسازیم که به آبجکتی دیگر (foo.prototype) لینک شده است. (به کد داخل تصویر دقت کنید)
نکته خیلی خیلی مهم اینکه این پراپرتی prototype توابع با پراپرتی [[prototype]] آبجکتهای معمولی کاملا متفاوت هستند و کاربرد آنها هم همانطور که دیدیم متفاوت است (میدونم گیج کنندست ولی یه کم کار کنید عادی میشه 😁).
#quicktip #js
@ProGraphs
تفاوت این دو روش برای چک کردن وجود یا عدم وجود یک پراپرتی در آبجکت چیست؟
#interviewquestion #js
@ProGraphs
#interviewquestion #js
@ProGraphs
🔺 بررسی و مقایسه تکنولوژیهای مختلف با سایت StackShare 🎉
https://stackshare.io/
#link #community
@ProGraphs
https://stackshare.io/
#link #community
@ProGraphs
ProGraphs
تفاوت این دو روش برای چک کردن وجود یا عدم وجود یک پراپرتی در آبجکت چیست؟ #interviewquestion #js @ProGraphs
جواب:
عملگر in پراپرتی مورد نظر را در کل prototype chain آبجکت چک میکند.
ولی متد hasOwnProperty پراپرتی را فقط در خود آبجکت چک میکند و کاری به prototype chain ندارد.
(اگر مفهوم prototype chain را فراموش کردید این مطلب را مرور کنید: https://t.iss.one/ProGraphs/131)
عملگر in پراپرتی مورد نظر را در کل prototype chain آبجکت چک میکند.
ولی متد hasOwnProperty پراپرتی را فقط در خود آبجکت چک میکند و کاری به prototype chain ندارد.
(اگر مفهوم prototype chain را فراموش کردید این مطلب را مرور کنید: https://t.iss.one/ProGraphs/131)
Telegram
ProGraphs
توضیح مفهوم کلی prototype در جاوااسکریپت (بخش اول)
تقریبا تمامی آبجکتها در جاوااسکریپت یک پراپرتی internal به نام [[prototype]] دارند که به یک آبجکت دیگر اشاره میکند. (این پراپرتی مختص انجین هست)
حال اگر بخواهیم به یک پراپرتی از یک آبجکت دسترسی پیدا…
تقریبا تمامی آبجکتها در جاوااسکریپت یک پراپرتی internal به نام [[prototype]] دارند که به یک آبجکت دیگر اشاره میکند. (این پراپرتی مختص انجین هست)
حال اگر بخواهیم به یک پراپرتی از یک آبجکت دسترسی پیدا…
🔺 یه مجموعه خوب از آیکونهای قابل تنظیم و تغییر 🎉
https://www.ikonate.com/#content
#link #icon
@ProGraphs
https://www.ikonate.com/#content
#link #icon
@ProGraphs
Ikonate
Ikonate – fully customisable & accessible vector icons
Customise, adjust and download free vector icons. Ikonate is an adaptable set of optimised, accessible SVG icons that use can easily use in both development and design apps such as Sketch and Photoshop. Ready to use as images, inline SVGs or SVG sprites.
توضیح مفهوم کلی prototype در جاوااسکریپت (بخش سوم)
در مطالب قبل با پراپرتی [[prototype]] و کاربرد آن آشنا شدیم. یک روش برای لینک کردن آبحکتها با استفاده از prototype هم بررسی کردیم. حالا میخواهیم روشی سادهتر برای این کار بررسی کنیم:
روش دوم:
استفاده از Object.create. این متد یک آبجکت را به عنوان ورودی دریافت میکند و آبجکت جدیدی return میکند که از طریق [[prototype]] به آبجکت مورد نظر لینک شده است.
در تصویر میبینید که بدون استفاده از تابع و new و ... خیلی ساده دو آبجکت را با [[prototype]] به هم لینک کردیم
روش اول پایهی پیاده سازی مکانیزمهای OOP در جاوااسکریپت هست که احتمالا زیاد با آن برخورد کردید.
ولی دقت کنید که لینک کردن آبجکتها به یکدیگر با روش سادهتر که Object.create است در خیلی از مواقع بهتر و سادهتر است.
#quicktip #js
@ProGraphs
در مطالب قبل با پراپرتی [[prototype]] و کاربرد آن آشنا شدیم. یک روش برای لینک کردن آبحکتها با استفاده از prototype هم بررسی کردیم. حالا میخواهیم روشی سادهتر برای این کار بررسی کنیم:
روش دوم:
استفاده از Object.create. این متد یک آبجکت را به عنوان ورودی دریافت میکند و آبجکت جدیدی return میکند که از طریق [[prototype]] به آبجکت مورد نظر لینک شده است.
در تصویر میبینید که بدون استفاده از تابع و new و ... خیلی ساده دو آبجکت را با [[prototype]] به هم لینک کردیم
روش اول پایهی پیاده سازی مکانیزمهای OOP در جاوااسکریپت هست که احتمالا زیاد با آن برخورد کردید.
ولی دقت کنید که لینک کردن آبجکتها به یکدیگر با روش سادهتر که Object.create است در خیلی از مواقع بهتر و سادهتر است.
#quicktip #js
@ProGraphs
ProGraphs
توضیح مفهوم کلی prototype در جاوااسکریپت (بخش سوم) در مطالب قبل با پراپرتی [[prototype]] و کاربرد آن آشنا شدیم. یک روش برای لینک کردن آبحکتها با استفاده از prototype هم بررسی کردیم. حالا میخواهیم روشی سادهتر برای این کار بررسی کنیم: روش دوم: استفاده…
مفهوم prototype پایهی خیلی از patternها و paradigmها در جاوااسکریپت است. ولی متاسفانه خیلی از دولوپرها بدون درک درست این مفهوم ازش استفاده میکنند.
تو این سری مطالب سعی کردیم مفهوم کلی prototype رو بدون توجه به OOP و ... بررسی کنیم که وقتی pattern ها و paradigmهایی مثل OOP رو پیاده سازی میکنید از نحوه کارکرد مکانیزمهای پایهای مثل prototype, new, ... هم مطلع باشید.
اگر فکر میکنید بررسی خود patternهای قابل پیاده سازی با prototype میتونه مفید باشه. یا اگر اشکالی تو این مطالب دیدید و یا اگر هر نظر دیگهای دارید میتونید از این طریق با ما در میون بذارید:
@HiProGraphsBot
تو این سری مطالب سعی کردیم مفهوم کلی prototype رو بدون توجه به OOP و ... بررسی کنیم که وقتی pattern ها و paradigmهایی مثل OOP رو پیاده سازی میکنید از نحوه کارکرد مکانیزمهای پایهای مثل prototype, new, ... هم مطلع باشید.
اگر فکر میکنید بررسی خود patternهای قابل پیاده سازی با prototype میتونه مفید باشه. یا اگر اشکالی تو این مطالب دیدید و یا اگر هر نظر دیگهای دارید میتونید از این طریق با ما در میون بذارید:
@HiProGraphsBot
📌 بایگانی Roadmap های مختلف:
✅ نقشه راه برای Web developer شدن در سال 2018
https://t.iss.one/ProGraphs/49
✅ نقشه راه برای توسعهدهنده حرفهای React شدن در سال 2018
https://t.iss.one/ProGraphs/64
✅ نقشه راه برای توسعهدهنده حرفهای Vue شدن در سال 2018
https://t.iss.one/ProGraphs/72
✅ نقشه راه برای UI/UX Designer شدن
https://t.iss.one/ProGraphs/102
✅ نقشه راه برای توسعهدهنده حرفهای Angular شدن در سال 2018
https://t.iss.one/ProGraphs/104
🌹 این مطلب رو با دوستان خود به اشتراک بگذارید. 🌹
#archive #roadmap
@ProGraphs
✅ نقشه راه برای Web developer شدن در سال 2018
https://t.iss.one/ProGraphs/49
✅ نقشه راه برای توسعهدهنده حرفهای React شدن در سال 2018
https://t.iss.one/ProGraphs/64
✅ نقشه راه برای توسعهدهنده حرفهای Vue شدن در سال 2018
https://t.iss.one/ProGraphs/72
✅ نقشه راه برای UI/UX Designer شدن
https://t.iss.one/ProGraphs/102
✅ نقشه راه برای توسعهدهنده حرفهای Angular شدن در سال 2018
https://t.iss.one/ProGraphs/104
🌹 این مطلب رو با دوستان خود به اشتراک بگذارید. 🌹
#archive #roadmap
@ProGraphs
احتمالا دقت کردید که برای ایجاد گرادینت در CSS باید گرادینت را در راستای شکلی خاص مانند خط (linear) یا دایره (radial) تعریف کنیم.
اما با ترفندی که در تصویر میبینید میتوانیم با ترکیب چند گرادینت و blend-mode گرادینتی بدون شکل واضح درست کنیم (مثل گرادینتی که احتمالا در صفحه ورود اینستاگرام دیدید)
#quicktip #css #trick
@ProGraphs
اما با ترفندی که در تصویر میبینید میتوانیم با ترکیب چند گرادینت و blend-mode گرادینتی بدون شکل واضح درست کنیم (مثل گرادینتی که احتمالا در صفحه ورود اینستاگرام دیدید)
#quicktip #css #trick
@ProGraphs
قالب های Landing Page رایگان برای استارتآپها 🎉
https://cruip.com/
#link #landingpage #template
@ProGraphs
https://cruip.com/
#link #landingpage #template
@ProGraphs
ProGraphs
آیا با data attribute ها در html آشنا هستید؟ کاربرد آنها چیست؟ #interviewquestion #html @ProGraphs
جواب:
برای ذخیرهی دیتای مختص به یک عنصر از data-attribute ها استفاده میکنیم.
در html برای کنترل بعضی از ویژگیهای عناصر attribute هایی تعیین شده است مثلا برای تعیین آدرس یک لینک از href استفاده میکنیم. اما اگر بخواهیم ویژگی جدیدی برای عناصر پیاده سازی کنیم که از قبل در html تعیین نشده میتوانیم این مقدار را به کمک جاوااسکریپت و data-attribute ها پیاده کنیم.
برای مثال فرض کنید میخواهیم مکانیزم نمایش alert در صفحه را پیاده سازی کنیم:
چندین عنصر alert در صفحه داریم که هر کدام باید مدت زمان خاصی نمایش داده شوند و بعد به صورت خودکار از صفحه حذف شوند. برای کنترل مقدار زمانی که هر alert در صفحه میماند به این شکل عمل میکنیم:
برای ذخیرهی دیتای مختص به یک عنصر از data-attribute ها استفاده میکنیم.
در html برای کنترل بعضی از ویژگیهای عناصر attribute هایی تعیین شده است مثلا برای تعیین آدرس یک لینک از href استفاده میکنیم. اما اگر بخواهیم ویژگی جدیدی برای عناصر پیاده سازی کنیم که از قبل در html تعیین نشده میتوانیم این مقدار را به کمک جاوااسکریپت و data-attribute ها پیاده کنیم.
برای مثال فرض کنید میخواهیم مکانیزم نمایش alert در صفحه را پیاده سازی کنیم:
چندین عنصر alert در صفحه داریم که هر کدام باید مدت زمان خاصی نمایش داده شوند و بعد به صورت خودکار از صفحه حذف شوند. برای کنترل مقدار زمانی که هر alert در صفحه میماند به این شکل عمل میکنیم:
<div class="alert" data-timeout="2000">در مرحله بعد در جاوااسکریپ از مقدار data-timeout استفاده میکنیم و پس از زمان تعیین شده عنصر را از صفحه حذف میکنیم.
alert!
</div>
بر خلاف تصور اکثر دولوپرها جاوااسکریپت در مرورگرهای مدرن به صورت مفسری اجرا نمیشود و کد جاوااسکریپت قبل از اجرا کامپایل میشود.
اما کد کامپایل شده جاوااسکریپت را برخلاف زبانی مثل جاوا منتشر نمیکنیم و فقط خود مرورگر برای optimize کردن کد، قبل از هر بار اجرا آن را کامپایل میکند. به این روش JIT یا Just-in-time compilation گفته میشود.
البته در عمل مرورگرها قبل از اجرای کد زمان کافی برای کامپایل کردن تمام و کمال کد ندارند و مجبور به استفاده از تکنیکهای پیچیدهتری هستند که در این مقاله میتوانید مطالعه کنید:
https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/
#quicktip #js
@ProGraphs
اما کد کامپایل شده جاوااسکریپت را برخلاف زبانی مثل جاوا منتشر نمیکنیم و فقط خود مرورگر برای optimize کردن کد، قبل از هر بار اجرا آن را کامپایل میکند. به این روش JIT یا Just-in-time compilation گفته میشود.
البته در عمل مرورگرها قبل از اجرای کد زمان کافی برای کامپایل کردن تمام و کمال کد ندارند و مجبور به استفاده از تکنیکهای پیچیدهتری هستند که در این مقاله میتوانید مطالعه کنید:
https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/
#quicktip #js
@ProGraphs