فرم بازخورد HTML با لیست کشویی. فرم های HTML گروه بندی موارد فهرست
در فرآیند ایجاد یک وب سایت یا وبلاگ و پر کردن بیشتر آن با محتوا، به دلایل مختلف، گاهی اوقات لازم می شود بخشی از متن پنهان شود، اطلاعات حجیم تری در یک بلوک پنهان فعلاً پنهان شود، اما همچنان به آن نشان داده شود. از آنچه در دسترس است استفاده کنید و به او این فرصت را بدهید که بدون رفتن به خط یا صفحه بعدی، محتوای پنهان را مشاهده کند.
قبلاً از یک سری جاوا اسکریپت برای پیاده سازی چنین راه حلی استفاده می شد، اما اکنون همه اینها را می توان به راحتی با استفاده از ویژگی های شگفت انگیز انجام داد.
امروز ما سادهترین راه را برای ایجاد بلوکهای مخفی محتوا در صفحات سایت و در پیامهای فردی که با کلیک بر روی یک عنصر متنی خاص باز میشوند، با استفاده از ویژگیهای منحصراً CSS3 بررسی خواهیم کرد. یک سوئیچ می تواند یک کلمه، یک عبارت برجسته، یک جمله کامل یا یک نماد آموزنده باشد.
چنین بلوکهایی اغلب در صفحاتی با حجم زیادی از محتوا استفاده میشوند، به منظور ساختارمندتر و فشردهتر کردن آن، همه محتوا به اصطلاح به گروههایی تقسیم میشوند که در آن فقط عنوانها به کاربر ارائه میشوند، تمام متن به طور پیشفرض پنهان میشود. و با کلیک بر روی یک عنصر خاص قابل مشاهده است (به بالا مراجعه کنید).
بیایید سعی کنیم بدون آب غیر ضروری انجام دهیم، به کل این مکانیسم ساده در عمل، با یک مثال واضح نگاه کنید، و همچنین می توانید در صورت تمایل چیزی را ویرایش کنید:
مثال شماره 1
متن انتخاب نشده و بدون علامت به عنوان سوئیچ برای بلوک های کشویی با اطلاعات اضافی، با یک دعوت بدون ابهام برای کلیک بر روی آن استفاده می شود، که برای دیدن آن باید بدون ترس یا تردید انجام دهید)))
همانطور که می بینید، همه چیز بیش از حد عالی کار می کند، محتوای پنهان بدون مشکل ظاهر می شود و با یک کلیک ملایم ماوس ناپدید می شود و در عین حال از حداقل کدهای اجرایی چه در چارچوب html و چه در شکل گیری استفاده کردیم. از سبک های css بدون اتصال کتابخانه های جاوا اسکریپت اضافی، با نگرانی ابدی که آیا آنها در سمت کاربر غیرفعال هستند یا خیر.
اجرای همه این اقدامات به لطف شبه کلاس CSS3 امکان پذیر شد :بررسی شد، برای عناصر رابط مانند دکمه های رادیویی () اعمال می شود. آنچه ما در واقع در تگ انجام دادیم ما ویژگی type را به کادر چک مقدار و همچنین شناسه id="hd-1" مربوط به شناسه منحصر به فرد اختصاص دادیم. for="hd-1"سوئیچ بلوک فعلی ما چک باکس ها را به طور کامل و برای همیشه با تنظیم ویژگی display: none در class.hide پنهان می کنیم.
در واقع، هیچ چیز خاصی برای توضیح در اینجا وجود ندارد؛ کل مکانیسم برای روشن و خاموش کردن بلوک های مخفی از سه عنصر تشکیل شده است:
- چک باکس - برچسب با معنی چک باکسصفت نوعو با یک شناسه پیوندی خاص
- عنوان (سوئیچ متن) - برچسب با یک مقدار شناسه منحصر به فرد برای ویژگی برای، (شناسه باید با شناسه تگ یکسان باشد ورودیبا معنی چک باکسصفت نوع).
- بلوک محتوا یک تگ div است که تا زمان های بهتر تا زمانی که کاربر کلیک کند حاوی محتوای مخفی مختلف (متن، تصاویر و غیره و غیره) خواهد بود.
امیدوارم از توضیحات آشفته من مشخص شده باشد که اصل مطلب چیست. CSS سبک های جدیدی را اعمال می کند (با استفاده از کلاس شبه بررسی شد) برای نشان دادن بلوکی از محتوایی که قبلاً تنها زمانی پنهان شده بود که کاربر روی عنصری کلیک کند که با یک شناسه منحصربهفرد با کادر انتخاب مرتبط است.
از همه اینها نتیجه می گیرد یادداشت مهم:
هنگامی که از چندین بلوک پنهان در یک صفحه استفاده می کنید، هر دکمه رادیویی باید یک شناسه منحصر به فرد داشته باشد که با شناسه های موجود در بلوک های دیگر متفاوت باشد.
بنابراین، در کلمات ما مرتب کرده ایم که چه چیزی به کجا می رود و چرا، اکنون، بیایید به چارچوب html کل ساختار نگاه کنیم:
< input class = "hide" id= "hd-1" type= "checkbox" > < label for = "hd-1" >برای باز کردن اینجا را کلیک کنید! label> < div>مطالب پنهان...... div> < input class = "hide" id= "hd-2" type= "checkbox" > < label for = "hd-2" >برای خواندن بیشتر در اینجا کلیک کنید! label> < div>محتوای پنهان ... div> |
در مرحله بعد، ما مستقیماً به شکلگیری سبکهای CSS میرویم، که بدون آن کل این طراحی کار نخواهد کرد. حداقل کد، بدون هیچ تزئینی، فقط کمی پس زمینه بلوک کشویی را برجسته می کند تا برای شما تعریف شود و قاب متن پنهان را نشان دهد. میتوانید بلوکها را به دلخواه طراحی کنید، حاشیهها، گوشههای گرد، متن برجسته یا .
1.CSS
. پنهان شدن، . hide + label ~ div (نمایش: هیچکدام؛ ) /* نوع متن برچسب */. پنهان کردن + برچسب، . پنهان کردن: علامت زده + برچسب (بالشتک: 0؛ رنگ: سبز؛ مکان نما: نشانگر؛ حاشیه پایین: 1 پیکسل سبز نقطهدار؛ ) . پنهان کردن: علامت زده + برچسب + div (نمایش: بلوک؛ پسزمینه: #efefef؛ - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f؛ padding: 10px;) |
/* مخفی کردن چک باکس ها و بلوک های محتوا */ .hide، .hide + label ~ div (نمایش: هیچ، ) /* ظاهر متن برچسب */ .hide + label, .hide:checked + label ( padding: 0; color: green ؛ مکان نما: نشانگر؛ حاشیه-پایین: 1 پیکسل سبز نقطه چین؛ ) /* ظاهر متن برچسب وقتی سوئیچ فعال است */ .پنهان: علامت زده + برچسب ( رنگ: قرمز؛ حاشیه پایین: 0؛ ) /* وقتی چک باکس فعال است، نشان دادن بلوکها با محتوا */ .hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8e8f؛ box-shadow: inset 3px 3px 10px #7d8e8f؛ padding: 10px; )
این همه، برای مثال زاهدانه، حداقلی کاملاً کافی است. اما اگر حداقل چیزهای خوبی اضافه نکنیم، اصلاً ما نخواهیم بود، و بهتر است به صورت بصری به کاربر بگوییم کجا کلیک کند.
در مثال دوم، یک علامت ساده به شکل یک علامت مثبت اضافه کردم که به وضوح نشان میدهد چیز دیگری در اینجا پنهان شده است؛ وقتی فشار داده میشود، فوراً به منهای تبدیل میشود و من یک انیمیشن کوچک به بلوکهای مخفی با محتوا اضافه کردم. آنها ظاهر می شوند، و همه اینها منحصراً با کمک جادوی CSS3.
2.CSS
/* مخفی کردن چک باکس ها و بلوک های محتوا */. پنهان شدن، . hide + label ~ div (نمایش: هیچکدام؛ ) /* نوع متن برچسب */. پنهان کردن + برچسب (حاشیه: 0؛ بالشتک: 0؛ رنگ: سبز؛ مکان نما: نشانگر؛ نمایشگر: بلوک درون خطی؛ ) /* ظاهر متن برچسب زمانی که سوئیچ فعال است */. پنهان کردن: علامت زده + برچسب (رنگ: قرمز؛ حاشیه - پایین: 0 ؛ ) /* وقتی چک باکس فعال است، بلوک های حاوی محتوا را نشان دهید */. پنهان کردن: علامت زده + برچسب + div (نمایش: بلوک؛ پسزمینه: #efefef؛ - moz- box- shadow: inset 3px 3px 10px #7d8e8f; - webkit- box- shadow: inset 3px 3px 10px #7d8e8f; box- shadow: inset 3px 3px 10px #7d8e8f; حاشیه سمت چپ: 20px;بالشتک: 10px; /* یک انیمیشن کوچک هنگام نمایش */- webkit- انیمیشن: fade ease- در 0. 5s. - moz- انیمیشن: fade ease- در 0. 5s; انیمیشن: fade ease- در 0. 5s; ) /* انیمیشن زمانی که بلوک های مخفی ظاهر می شوند */@- moz- فریم های کلیدی محو می شوند ( از ( کدورت: 0 ; ) به ( تیرگی: 1 ) ) @- webkit- فریم های کلیدی محو می شوند ( از ( کدورت: 0 ; ) به ( تیرگی: 1 ) ) فریم های کلیدی @ محو می شوند ( از ( کدورت: 0 ; ) به ( کدورت: 1 ) ) . پنهان کردن + برچسب: قبل ( پس زمینه - رنگ: #1e90ff؛ رنگ: #fff; محتوا: " \002 B"; نمایش: بلوک؛ شناور به سمت چپ؛ اندازه فونت: 14px; فونت-وزن: پررنگ; ارتفاع: 16 پیکسل؛ ارتفاع خط: 16 پیکسل. حاشیه: 3px 5px; text- align: center; عرض: 16 پیکسل؛ - webkit- border- شعاع: 50%؛ - moz- border- شعاع: 50%; شعاع مرزی: 50%; ) . پنهان کردن: علامت زده + برچسب: قبل ( محتوا: " \221 2" ; } |
/* مخفی کردن چک باکس ها و بلوک های محتوا */ .hide، .hide + label ~ div (نمایش: هیچ، نشانگر؛ نمایش: بلوک درون خطی؛ ) /* ظاهر متن برچسب زمانی که سوئیچ فعال است */ .hide:checked + label (رنگ: قرمز؛ حاشیه-پایین: 0;) /* هنگامی که چک باکس فعال است، نشان داده شود بلوکهای دارای محتوا */ . hide:checked + label + div ( display: block; background: #efefef; -moz-box-shadow: inset 3px 3px 10px #7d8e8f; -webkit-box-shadow: inset 3px 3px 10px #7d8e8 ؛ box-shadow: inset 3px 3px 10px #7d8e8f؛ حاشیه سمت چپ: 20px؛ بالشتک: 10px؛ /* کمی انیمیشن هنگام نمایش */ -webkit-animation:fade ease-in 0.5s; -moz-animation:fade ease -in 0.5s؛ انیمیشن: fade ease-in 0.5s; ) /* انیمیشن زمانی که بلوک های مخفی ظاهر می شوند */ @-moz-keyframes محو می شوند ( از ( opacity: 0; ) به ( opacity: 1 ) ) @-webkit-keyframes fade (از ( opacity: 0 ; ) to ( opacity: 1 ) ) @keyframes fade (از ( opacity: 0; ) to ( opacity: 1 ) ) .hide + label:before ( background-color: #1e90ff; رنگ: #fff; محتوا: "\002B"؛ نمایش: بلوک؛ شناور به سمت چپ؛ اندازه فونت: 14px; فونت-وزن: پررنگ; ارتفاع: 16 پیکسل؛ ارتفاع خط: 16 پیکسل. حاشیه: 3px 5px; text-align: center; عرض: 16 پیکسل؛ -webkit-border-radius: 50%؛ -moz-border-radius: 50%; شعاع مرزی: 50%; ) .hide:checked + label:before ( محتوا: "\2212"; )
با همه حساب ها، روش بدون شک خوب است، اما مثل همیشه، و اصلا تعجب آور نیست، مشکلاتی با ترمز ابدی پیشرفت، مرورگر اینترنت اکسپلورر، شبه کلاس ایجاد می شود. بررسی شدفقط از نسخه های 9 و جدیدتر این مرورگر پشتیبانی می کند. برای نسخههای قدیمیتر IE، همه چیز ثابت میماند، باید از جاوا اسکریپت استفاده کنید.
با استفاده از چک باکس های مخفی، می توانید به راحتی بلوک های سبک، لغزنده، گالری ها و موارد دیگر را پیاده سازی کنید.
با تمام احترام، اندرو
شرح
تگ HTML
عنصر
عرض منوی کشویی با طولانی ترین متن مشخص شده در تگ تعیین می شود