دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۷ دانیال روحبخش
کلیک پذیر کردن همه فضای هاور شده عنصر
جامعه Html & CSS ایجاد شده در ۲۰ شهریور ۱۴۰۱

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

استاد در این قسمت پراپرتی padding رو به تگ‌های li میدن تا فضای خالی بین عناصر با تگ رپر منو پر بشه و در زمان هاور شدن عنصردورتا دور عنصر به صورت کامل هاور بشه.

سوال من اینجاست که با این که با دادن padding به li فضای دور عنصر رو پر میکنیم اما کل اون فضا کلیک پذیر نخواهد بود. میخواستم بپرسم چطور و با چه ساختاری padding رو به تگ a بدیم تا هم کل فضای اطراف عنصر پر بشه ، و هم تمام اون فضا قابل کلیک شدن باشه.

من فایل کدهایی که نوشتم رو هم ضمیمه کردم. ممنون

درود

باید با دادن پدینگ اون فضای متن‌ها رو بیشتر کنید. کافیه استایل زیر رو اضافه کنید:

ul.menu li a {
    padding: 10px 20px 10px 20px;
    color: white;
  }
نازنین کریمی مقدم ۲۱ شهریور ۱۴۰۱، ۰۶:۳۲

یعنی ما هم به تگ اصلی nav پراپرتی padding رو میدیم، هم به تگ li و هم به تگ a ?

سوال دومم این هست که درصورتی که مطابق گفته شما padding رو به تگ a هم اضافه کنیم ، فاصله عناصر درون منو از هم بیشتر میشه و شاید طرح ui که قراره هست مطابق اون کدنویسی بشه این اندازه فاصله رو مجاز ندونسته باشه

دانیال روحبخش ۲۱ شهریور ۱۴۰۱، ۰۶:۴۶

1- بله

2- اگر با طرح نخونه، مجبورید منوی اصلی رو کلا از لیست خارج کنید و همه a‌ها رو در یک div بگذارید و فقط برای زیر منوها لیست درنظر بگیرید. راه دوم هم اینه که همینجا پدینگ و هاور رو از li برش دارید و به a بدید و برای زیرمنوها یه کلاس استایل دیگه بنویسید که پهنا رو براشون ست کنه.

نازنین کریمی مقدم ۲۱ شهریور ۱۴۰۱، ۰۷:۵۷

برای راه دومی که فرمودین ، بعد از اینکه پدینگ و هاور رو به تگ a دادیم میبایست برای عمودی کردن زیرمنوها هم پراپرتی display : block رو به a بدیم. آیا این کار اصولی و درسته؟

و سوال دومم این هست که با این کار زمانی که روی زیرمنوهای تگ li قرار میگیریم و هاور میشن ، تگ اصلی li هاور نمیشه. برای رفع این مشکل باید چیکار کرد؟

دانیال روحبخش ۲۱ شهریور ۱۴۰۱، ۰۸:۱۴

1- درسته و مشکلی نداره. اصلا این پراپرتیا برا همین هستند که بسته به کاربرد ازشون استفاده کنیم.

2- میتونید هاور li رو بذارید باشه یعنی همه هاور داشته باشند و پدینگ رو بسته به ابعاد مورد نظر به یکی یا هردو اعمال کنید. دیگه دستتون تو این موارد باز هست.


نازنین کریمی مقدم ۲۱ شهریور ۱۴۰۱، ۰۹:۲۷

ببخشید من چون متوجه توضیحتون نشدم فایل کدهام رو ضمیمه کردم خدمتتون

ببینید وقتی موس روی هرکدوم از زیرمنوها قرار میگیره و هاور میشه ، تگ اصلی li که والد زیرمنو هست همزمان هاور نمیمونه. برای رفع این مشکل چه کنم؟

دانیال روحبخش ۲۱ شهریور ۱۴۰۱، ۱۰:۰۲

هاور a رو به این صورت تغییر بدید تا به لیست مادر هم اعمال بشه:

ul.menu li:hover>a{
    background-color: bisque;
}


بهترین پاسخ
نازنین کریمی مقدم ۲۱ شهریور ۱۴۰۱، ۱۰:۵۶