کاربرد ویژگی position و float در CSS

از جمله مباحث پیشرفته در زمینه استایل نویسی وب با زبان CSS، بحث استفاده از ویژگی position و float برای شناور کردن عناصر مختلف در صفحات به نحو دلخواه و مورد انتظار است، آشنایی با این خاصیت ها را می توان نقطه آغاز استایل نویسی حرفه ای برشمرد چرا که معمولا در بسیاری از جلوه های ویژه و امکانات مورد نیاز برای ساخت واسط کاربری (UI یا User Interface) مناسب در صفحات وب این خواص استاندارد استفاده خواهند شد، به طور مثال منوهای طراحی شده با CSS، باکس های شناور و واکنش پذیر (Interactive)، افزونه ها و Widget ها و مواردی از این دست، لذا در ادامه آموزش های مقدماتی این بخش می خواهیم به توضیح در رابطه با کاربرد دو خاصیت position و float در CSS بپردازیم.
خاصیت position
همان طور که پیش از این اشاره شد خاصیت position جزء خاصیت های کلیدی و حرفه ای در CSS محسوب می شود، این خاصیت امکان تعریف موقعیت و استقرار عناصر به صورت ثابت یا شناور در هر نقطه از صفحه نمایش کاربر را میسر می کند که در طراحی وب بسیار کاربرد دارد، ویژگی position مقادیر متعددی به شرح زیر می پذیرد:
- مقادیر static
مقادیر static یا ایستا حالت پیش فرض عناصر در صفحات وب است که در واقع با این خاصیت موقعیت یک عنصر در کنار سایر عناصر موجود در صفحات HTML پردازش و مشخص می شود.
- مقادیر relative
مقادیر relative یا نسبی به معنی تعیین موقعیت عنصر از محل قرارگیری معمول خود در صفحه وب است، در این حالت در نظر گرفتن مقدار برای خاصیت های top، right، bottom، left بر روی عنصر نسبت به محل قرارگیری نرمال آن اعمال می شود.
- مقادیر absolute
مقادیر absolute یا مطلق به معنی تعیین موقعیت عنصر از نزدیکترین تگ والد خود است که یکی از حالت های position (به غیر از static) را داشته باشد، اگر هیچ کدام از تگ های بالادستی با خاصیت position مقداردهی نشده باشند، در حالت پیش فرض عنصر absolute از تگ body یا سند HTML پیروی خواهد کرد، به طور مثال از این خاصیت می توانیم برای شناورسازی یک عنصر در بالاترین سطح صفحه وب استفاده کنیم.
- مقادیر fixed
مقادیر fixed یا تثبیت شده به معنی ثابت شدن موقعیت عنصر در محلی تعریف شده است که حتی با اسکرول نیز تغییر نخواهد کرد.
- مقادیر sticky
مقادیر sticky یا چسبنده موقعیت عنصر را با توجه به اسکرول بار صفحه مشخص می کند و در واقع ترکیبی از مقادیر relative و fixed است، موقعیت عنصر در این حالت در هنگام اسکرول نسبت به Viewport صفحه به صورت relative تعیین و در همان نقطه ثابت و fixed می شود.
در ادامه هر یک از مقادیر بالا را همراه با مثال بررسی خواهیم کرد.
خاصیت position با مقادیر static
از خاصیت position با مقادیر static زمانی استفاده می کنیم که بخواهیم یک عنصر به صورت پیش فرض و نرمال در کنار سایر عناصر موجود در سند HTML پردازش شود، این مقدار چندان کاربردی نیست و کمتر استفاده می شود چرا که بدون استفاده از آن نیز عناصر صفحه وب به صورت Static پردازش می شوند، مگر اینکه بخواهیم خاصیتی که قبلا به یک عنصر داده شده است را دوباره نویسی و به حالت پیش فرض تغییر دهیم که به این حالت در اصطلاح برنامه نویسی Override می گویند.
<style>
.static {
position: static;
width: 200px;
height: 100px;
background: #88C2FF;
}
</style>
<div class="static">بلاک با خاصیت position static</div>
برای بررسی مثال با پیش نمایش آنلاین، لطفا به انتهای این آموزش مراجعه کنید.خاصیت position با مقادیر relative
از خاصیت position با مقادیر relative زمانی استفاده می کنیم که بخواهیم یک عنصر نسبت به محل قرارگیری نرمال خود در صفحه وب مقادیر مربوط به موقعیت را اعمال کند، به طور مثال اگر برای عنصر با خاصیت position و مقدار relative خاصیت top در نظر بگیریم، موقعیت عنصر از همان محلی که قرار دارد بر اساس مقدار top تغییر خواهد کرد.
<style>
.relative {
position: relative;
width: 200px;
height: 100px;
background: #F90;
border: 1px solid #999;
top: 40px;
}
</style>
<div class="relative">بلاک با خاصیت position relative</div>
برای بررسی مثال با پیش نمایش آنلاین، لطفا به انتهای این آموزش مراجعه کنید.موقعیت قرارگیری عناصر دارای خاصیت position با مقادیر relative را می توانیم با خاصیت های top، right، bottom، left تغییر دهیم، همچنین امکان اعمال خاصیت z-index بر روی این عناصر وجود دارد.
خاصیت position با مقادیر absolute
از خاصیت position با مقادیر absolute زمانی استفاده می کنیم که بخواهیم یک عنصر (به فرض بلاک div) نسبت به تگ والد خود یا نسبت به کل صفحه وب به صورت شناور درآید، در این حالت عنصر به صورت پیش فرض به ابتدای موقعیت بلاک والد یا سند HTML (گوشه بالای پنجره مرورگر) منتقل می شود و برای اعمال تغییرات سفارشی بیشتر می توانیم از خاصیت های top، right، bottom، left استفاده کنیم.
<style>
.relative {
position: relative;
width: 200px;
height: 100px;
background: #F90;
border: 1px solid #999;
}
.absolute {
position: absolute;
width: 220px;
height: 50px;
background: #F90;
border: 1px solid #999;
top: 30px;
left: -30%;
}
</style>
<div class="relative">
بلاک والد با خاصیت position relative
<div class="absolute">
بلاک فرزند با خاصیت position absolute
</div>
</div>
برای بررسی مثال با پیش نمایش آنلاین، لطفا به انتهای این آموزش مراجعه کنید.یکی از کاربردهای متداول خاصیت position با مقادیر absolute در صفحات وب ایجاد منوهای شناور است که معمولا ساختاری مشابه با نمونه کد بالا دارند، یعنی به تگ والد خاصیت position با مقادیر relative و به تگ فرزند خاصیت position با مقادیر absolute می دهیم.
خاصیت position با مقادیر fixed
از position با مقادیر fixed زمانی استفاده می کنیم که بخواهیم یک عنصر به صورت ثابت در یک قسمت از صفحه نمایش قرار گیرد و حتی با اسکرول نیز تغییری نکند، به عنوان مثال این شیوه ای است که برخی طراحان قالب از آن در کدنویسی های خود (معمولا بیشتر در قالب وبلاگ ها) برای ثابت کردن تصویر پس زمینه استفاده می کنند.
<style>
.fixed {
position: fixed;
width: 200px;
height: 100px;
background: #FF9A9B;
border: 1px solid #999;
top: 8px;
left: 8px;
}
</style>
<div class="fixed">بلاک با خاصیت position fixed</div>
برای بررسی مثال با پیش نمایش آنلاین، لطفا به انتهای این آموزش مراجعه کنید.خاصیت float
در کنار خاصیت position که می توانیم با آن یک عنصر را در راستای محور Xها و Yها (کل صفحه) شناور کنیم، خاصیت دیگری به نام float وجود دارد که برای شناور کردن عنصر صرفا در راستای محور Xها (محور افقی) در دو سمت چپ (Left) و راست (Right) در درون تگ والد خود به کار می رود، منظور از والد تگی است که عنصر شناور شده در درون آن قرار دارد و به اصطلاح Container یا ظرف آن است، به فرض اگر بخواهیم بلاک مربوط به نمایش تصویر بندانگشتی در یک مطلب به سمت چپ یا راست پاراگراف متمایل باشد از float با مقادیر left یا right استفاده می کنیم.
مثال:
<style>
.block {
width: 220px;
height: 220px;
background: #9EBBFF;
border: 1px solid #999;
text-align: justify;
padding: 4px;
top: 8px;
left: 8px;
}
.float {
width: 100px;
height: 100px;
background: #424AE4;
color: #FFFFFF;
float: left;
padding: 4px;
margin: 4px;
text-align: right;
}
.rtl {
direction: rtl;
}
</style>
<div class="block rtl">
<div class="float">بلاک مربوط به نمایش تصویر بندانگشتی در مطلب با خاصیت float و مقدار left</div>
<p>تفاوت خاصیت float با خاصیت position و مقادیر absolute در این است که با float عنصر صرفا در سمت چپ یا راست تگ والد خود شناور می شود اما همچنان بر روی موقعیت سایر عناصر مجاور تاثیرگذار است اما در مورد خاصیت position با مقادیر absolute عنصر به صورت کامل در سند HTML شناور می شود و بر روی موقعیت عناصر مجاور خود تاثیری ندارد.</p>
</div>
در ادامه شرح مقادیری که float می پذیرد را بررسی می کنیم.- مقادیر right
از float با مقادیر right زمانی استفاده می کنیم که بخواهیم عنصر به سمت راست تگ والد خود متمایل شود.
- مقادیر left
از float با مقادیر left زمانی استفاده می کنیم که بخواهیم عنصر به سمت چپ تگ والد خود متمایل شود.
- مقادیر none
از float با مقادیر none زمانی استفاده می کنیم که بخواهیم مقادیر پیشین مربوط به float را برای یک عنصر دوباره نویسی و خنثی کنیم، در واقع این حالت پیش فرض float است.
نکته 1: در استایل نویسی کاربردی معمولا مواردی پیش می آید که در کنار استفاده از خاصیت float ناچاریم از خاصیت clear با مقادیر both نیز برای همپوشانی بلاک های تو در تو استفاده کنیم.
نکته 2: برای چینش بلاک ها در کنار هم و در یک ردیف افقی معمولا از خاصیت display با مقادیر inline-block استفاده می کنیم، اما استفاده از خاصیت float نیز می تواند در مواردی با توجه به نیاز طراحی وب به کار گرفته شود.
مثال و پیش نمایش آنلاین
برای آشنایی بیشتر با خاصیت های position و float در CSS، مثال و پیش نمایش آنلاین را با نمونه کد زیر بررسی می کنیم.
<!doctype html>
<html lang="fa">
<head>
<meta charset="utf-8">
<title>وبگو | استفاده از خاصیت position و float در CSS</title>
<!-- Webgoo.ir -->
<style>
body {
font-family: Tahoma, Geneva, sans-serif;
font-size: 12px;
direction: rtl;
height: 1500px;
}
.static {
position: static;
width: 200px;
height: 100px;
background: #88C2FF;
margin: 4px;
}
.relative {
position: relative;
width: 200px;
height: 100px;
background: #F90;
border: 1px solid #999;
margin: 4px;
}
.absolute {
position: absolute;
width: 220px;
height: 50px;
background: #F90;
border: 1px solid #999;
top: 30px;
left: -30%;
}
.fixed {
position: fixed;
width: 200px;
height: 100px;
background: #FF9A9B;
border: 1px solid #999;
top: 8px;
left: 8px;
}
.block {
width: 220px;
height: 220px;
background: #9EBBFF;
border: 1px solid #999;
text-align: justify;
padding: 4px;
top: 8px;
left: 8px;
}
.float {
width: 100px;
height: 100px;
background: #424AE4;
color: #FFFFFF;
float: left;
padding: 4px;
margin: 4px;
text-align: right;
}
</style>
</head>
<body>
<div class="static">بلاک با خاصیت position static</div>
<div class="relative">
بلاک والد با خاصیت position relative
<div class="absolute">
بلاک فرزند با خاصیت position absolute
</div>
</div>
<div class="fixed">بلاک با خاصیت position fixed، برای بررسی بیشتر به پائین صفحه اسکرول کنید.</div>
<div class="block">
<div class="float">بلاک مربوط به نمایش تصویر بندانگشتی در مطلب با خاصیت float و مقدار left</div>
<p>تفاوت خاصیت float با خاصیت position و مقادیر absolute در این است که با float عنصر صرفا در سمت چپ یا راست تگ والد خود شناور می شود اما همچنان بر روی موقعیت سایر عناصر مجاور تاثیرگذار است اما در مورد خاصیت position با مقادیر absolute عنصر به صورت کامل در سند HTML شناور می شود و بر روی موقعیت عناصر مجاور خود تاثیری ندارد.</p>
</div>
</body>
</html>
پیش نمایش آنلایندسته بندی: آموزش مقدماتی » CSS
برچسب ها: CSS
« بعدی

کار با ویژگی margin و padding در CSS
سلکتور آی دی (ID) و کلاس (Class) در CSS
خاصیت Background و ویژگی های آن در CSS
نحوه تنظیم استایل لینک (Link) در CSS
کاربرد خاصیت display در CSS
دیدگاه


داوود
۱۱:۴۹ ۱۳۹۴/۰۴/۲۲
سلام آقای مهندس؛ خیلی ممنون بابت مطلب خوبی که قرار دادین. استاد من میخواستم برای اینکه این خاصیت رو درک کنم برای خودم یه مثال بزنم. اومدم و توی یه کادر چهار تا مربع رو در گوشه ها قرار دادم؛ حالا قبل از اینکه کد رو بذارم چند مورد سوال برام پیش اومد:
الف) ما خاصیتی نداریم تو css که اینجوری بشه بهش مقدار داد:
ب) شیوه ای که من استفاده کردم و کد رو در این لینک گذاشتم آیا از نظر شما درست هستش یا نه؟؟
الف) ما خاصیتی نداریم تو css که اینجوری بشه بهش مقدار داد:
property:top left;
آیا همچین خاصیتی نداریم تو css که مثلا بهش بگیم کجا و کجا قرار بگیره؟؟ من فکر میکردم با position میشه همچین کاری کرد.ب) شیوه ای که من استفاده کردم و کد رو در این لینک گذاشتم آیا از نظر شما درست هستش یا نه؟؟
http://jsfiddle.net/dLztuw2L
ج) اگه دقت کنید میبینید که مقادیر فاصله از بالای برای عنصرهای سوم و چهارم (که هر دوتاشون هم در پایین و در یک جا قرار دارن) متفاوته!! آیا این بخاطر وجود float برای عنصر چهارم هستش؟؟ اگه بخوایم این دو تا با فاصله ارتفاع یکسانی (از بالا) در جای فعلی (دقیقا تو گوشه ها) قرار بگیرن، میخواست که از clear استفاده کنم؟؟!!سلام
- استفاده از این حالت صرفا در موارد خاصی (مانند background-position) مجاز است، برای سایر موارد باید با توجه به هدف و نیاز از position یا خاصیت های top right bottom left و float استفاده کرد.
- شیوه در CSS با توجه به هدف و شرایط طراحی انتخاب می شود، روش شما ایراد خاصی ندارد (البته بررسی ما قاعدتا اجمالی خواهد بود، ممکن است با ریزبینی برخی خاصیت ها اضافه باشند یا یک هدف با کدنویسی کمتر هم قابل دسترسی باشد که در این صورت بهینه تر است).
- خیر! اگر float را حذف کنید، متوجه می شوید که هیچ تاثیری ندارد و دو عنصر بر روی هم نمایش داده می شوند، در اینجا چون مقدار bottom هر دو صفر است، فاصله top کمتر، نادیده گرفته می شود (البته مشخص نیست چرا دو عنصر را با دو مقدار متفاوت top تنظیم کرده اید و در عین حال انتظار دارید فاصله از پائین صفر پیکسل باشد، در صورتی که هر دو در یک بلاک والد قرار دارند و در عمل چنین حالتی شدنی نیست!).
- استفاده از این حالت صرفا در موارد خاصی (مانند background-position) مجاز است، برای سایر موارد باید با توجه به هدف و نیاز از position یا خاصیت های top right bottom left و float استفاده کرد.
- شیوه در CSS با توجه به هدف و شرایط طراحی انتخاب می شود، روش شما ایراد خاصی ندارد (البته بررسی ما قاعدتا اجمالی خواهد بود، ممکن است با ریزبینی برخی خاصیت ها اضافه باشند یا یک هدف با کدنویسی کمتر هم قابل دسترسی باشد که در این صورت بهینه تر است).
- خیر! اگر float را حذف کنید، متوجه می شوید که هیچ تاثیری ندارد و دو عنصر بر روی هم نمایش داده می شوند، در اینجا چون مقدار bottom هر دو صفر است، فاصله top کمتر، نادیده گرفته می شود (البته مشخص نیست چرا دو عنصر را با دو مقدار متفاوت top تنظیم کرده اید و در عین حال انتظار دارید فاصله از پائین صفر پیکسل باشد، در صورتی که هر دو در یک بلاک والد قرار دارند و در عمل چنین حالتی شدنی نیست!).
پوریا
۱۲:۴۹ ۱۳۹۴/۰۳/۳۱
من وقتی position رو fixed میکنم کلا div نشون داده نمیشه
کجا اشتباه کردم؟
کجا اشتباه کردم؟
خواص دستورات CSS متاثر از هم و همچنین نحوه تعریف کدهای HTML است، لطفا آدرس یک نمونه صفحه جهت بررسی را درج کنید!
نفس اصولی
۱۲:۵۷ ۱۳۹۴/۰۳/۰۳
سلام. مرسی از سایت خوبتون... من میخواستم پست های وبسایتم رو به صورت افقی بچینم اما هر کاری میکنم نمیشه با float هم نتونستم درستش کنم.... ممنون میشم راهنمایی کنید...
حذف شد
سلام
چینش بلاک ها در کنار هم یا توسط خاصیت float انجام می گیرد و یا توسط خاصیت display با مقادیر inline یا inline-block، اما اینکه این خاصیت ها باید به کدام تگ ها اختصاص داده شوند، بستگی به خروجی و سورس HTML مورد نظر دارد، در مورد مشکل شما، صرفا بلاک های اصلی که کل یک پست را شامل می شوند باید این خاصیت ها را بگیرند (که ظاهرا این کار را انجام داده اید)، اما از آنجایی که تنظیم استایل CSS بسیار حساس و نیازمند تجربه طراحی وب است، ممکن است با کوچکترین اشتباه به نتیجه مورد نظر نرسید و به فرض بلاک های شما با دیگر المان های صفحه ناسازگاری یا استایل ها با هم تداخل داشته باشند که در این حالت باید سورس کامل صفحه + سورس قالب وبلاگ بررسی شود.
چینش بلاک ها در کنار هم یا توسط خاصیت float انجام می گیرد و یا توسط خاصیت display با مقادیر inline یا inline-block، اما اینکه این خاصیت ها باید به کدام تگ ها اختصاص داده شوند، بستگی به خروجی و سورس HTML مورد نظر دارد، در مورد مشکل شما، صرفا بلاک های اصلی که کل یک پست را شامل می شوند باید این خاصیت ها را بگیرند (که ظاهرا این کار را انجام داده اید)، اما از آنجایی که تنظیم استایل CSS بسیار حساس و نیازمند تجربه طراحی وب است، ممکن است با کوچکترین اشتباه به نتیجه مورد نظر نرسید و به فرض بلاک های شما با دیگر المان های صفحه ناسازگاری یا استایل ها با هم تداخل داشته باشند که در این حالت باید سورس کامل صفحه + سورس قالب وبلاگ بررسی شود.
peyman yousefi
۱۴:۱۸ ۱۳۹۴/۰۲/۳۱
با سلام خدمت دوستان خوبم
می خواهم یک pop up menu با استفاده از زبان html و css مانند وب سایت زیر طراحی کنم.
کسی می تواند در این زمینه راهنمایی کند؟
تشکر
می خواهم یک pop up menu با استفاده از زبان html و css مانند وب سایت زیر طراحی کنم.
کسی می تواند در این زمینه راهنمایی کند؟
تشکر
gowebsite.ir
سلام
می توانید از نمونه سورس کدهای همان سایت یا منوهای جی کئوری موجود در وب استفاده کنید (لطفا در وب جستجو کنید، نمونه های زیادی وجود دارد!)
نکته: طراحی این موارد نیازمند حداقل آشنایی با CSS، HTML و jQuery است.
می توانید از نمونه سورس کدهای همان سایت یا منوهای جی کئوری موجود در وب استفاده کنید (لطفا در وب جستجو کنید، نمونه های زیادی وجود دارد!)
نکته: طراحی این موارد نیازمند حداقل آشنایی با CSS، HTML و jQuery است.
۰۱:۵۱ ۱۳۹۳/۱۰/۱۴
درود به شما.
همانطور که فرمودید چند مورد را بعنوان نمونه مطرح می کنم:
- "مقادیر absolute یا مطلق به معنی موقعیت عنصر از بالاترین تگ والد (معمولا body یا سند HTML) است."
در واقع absolute positioning عنصر مورد نظر را از "جریان عادی" سند وب (document normal flow) خارج کرده و مکان قرارگیری آن عنصر وابسته به "بلاک دربرگیرنده" آن (box's containing block) خواهد بود و نه الزاما عنصر والد و یا body و غیره.
برای عناصری که بصورت absolute در صفحه قرار گرفته اند، "بلاک دربرگیرنده" می تواند توسط نزدیکترین عنصر والد که دارای position: relative است، "احداث" شود. و در غیراینصورت، "بلاک دربرگیرنده" عنصر همان "بلاک دربرگیرنده مبنا" (initial containing block که ابعادی برابر با viewport دارد) خواهد بود.
منبع: http://www.w3.org/TR/CSS2/visudet.html#containing-block-details
---
- "مقادیر relative یا نسبی به معنی موقعیت عنصر از تگ والد"
نه الزاما. relative positioning امکان قرارگیری عنصر نسبت به "مکان اولیه خودش" را میسر می سازد. عنوان مثال ممکن است یک عنصر در وسط عنصر والد خود قرار گرفته باشد و بخواهیم از موقعیت کنونی آن را اندکی جابجا کنیم بدون آنکه اثری روی عناصر دیگر بگذارد.
منبع: http://www.w3.org/TR/CSS21/visuren.html#relative-positioning
---
- "مقادیر fixed یا تثبیت شده به معنی ثابت شدن موقعیت عنصر در محلی تعریف شده است"
بله. و این "محلی" همان initial containing block است که عنصر html در آن قرار گرفته است.
---
با تقدیم احترام.
همانطور که فرمودید چند مورد را بعنوان نمونه مطرح می کنم:
- "مقادیر absolute یا مطلق به معنی موقعیت عنصر از بالاترین تگ والد (معمولا body یا سند HTML) است."
در واقع absolute positioning عنصر مورد نظر را از "جریان عادی" سند وب (document normal flow) خارج کرده و مکان قرارگیری آن عنصر وابسته به "بلاک دربرگیرنده" آن (box's containing block) خواهد بود و نه الزاما عنصر والد و یا body و غیره.
برای عناصری که بصورت absolute در صفحه قرار گرفته اند، "بلاک دربرگیرنده" می تواند توسط نزدیکترین عنصر والد که دارای position: relative است، "احداث" شود. و در غیراینصورت، "بلاک دربرگیرنده" عنصر همان "بلاک دربرگیرنده مبنا" (initial containing block که ابعادی برابر با viewport دارد) خواهد بود.
منبع: http://www.w3.org/TR/CSS2/visudet.html#containing-block-details
---
- "مقادیر relative یا نسبی به معنی موقعیت عنصر از تگ والد"
نه الزاما. relative positioning امکان قرارگیری عنصر نسبت به "مکان اولیه خودش" را میسر می سازد. عنوان مثال ممکن است یک عنصر در وسط عنصر والد خود قرار گرفته باشد و بخواهیم از موقعیت کنونی آن را اندکی جابجا کنیم بدون آنکه اثری روی عناصر دیگر بگذارد.
منبع: http://www.w3.org/TR/CSS21/visuren.html#relative-positioning
---
- "مقادیر fixed یا تثبیت شده به معنی ثابت شدن موقعیت عنصر در محلی تعریف شده است"
بله. و این "محلی" همان initial containing block است که عنصر html در آن قرار گرفته است.
---
با تقدیم احترام.
سلام
سپاس فراوان از وقتی که صرف کردید، در نگارش مطالب بیشتر تکیه بر جنبه کاربردی شده، انشاا.. در بازبینی (هم زمان با انتشار نسخه جدید سایت) موارد زائد حذف و توضیحات لازم مطابق با اطلاعات مرجع اضافه خواهد شد.
سپاس فراوان از وقتی که صرف کردید، در نگارش مطالب بیشتر تکیه بر جنبه کاربردی شده، انشاا.. در بازبینی (هم زمان با انتشار نسخه جدید سایت) موارد زائد حذف و توضیحات لازم مطابق با اطلاعات مرجع اضافه خواهد شد.
۱۷:۲۷ ۱۳۹۳/۰۹/۲۴
سلام. من خیلی اتفاقی با این مطلب مواجه شدم و پس از خوندن آن مایلم دو مورد را طرح کنم:
1. سپاسگزارم از نگارنده بابت به اشتراک گذاری داشته های خود و پاسخگویی و صرف وقت برای مخاطبان, بدون چشم داشت که بسیار ارزشمند است.
2. علی رغم آنکه مطالب بحث شده راهگشا هستند، متاسفانه در بسیاری از پاراف ها و تعاریف اشکالات فنی به چشم می خورد. و تنها دلیل این مسئله عدم اطلاع جامعه وب ایران از specification های CSS است. تجربیات عالی هستند اما همواره بر واقعایات منطبق نیستند. امیدوارم نگارندگان این سایت پر مخاطف در این راستا تلاش بیشتری انجام دهند.
1. سپاسگزارم از نگارنده بابت به اشتراک گذاری داشته های خود و پاسخگویی و صرف وقت برای مخاطبان, بدون چشم داشت که بسیار ارزشمند است.
2. علی رغم آنکه مطالب بحث شده راهگشا هستند، متاسفانه در بسیاری از پاراف ها و تعاریف اشکالات فنی به چشم می خورد. و تنها دلیل این مسئله عدم اطلاع جامعه وب ایران از specification های CSS است. تجربیات عالی هستند اما همواره بر واقعایات منطبق نیستند. امیدوارم نگارندگان این سایت پر مخاطف در این راستا تلاش بیشتری انجام دهند.
سلام
خیلی ممنون از توجه شما، در صورت امکان لطفا چند قسمت از موارد اشتباه را به همراه تصحیح شده آن درج یا یک مرجع معرفی کنید تا مقایسه و بررسی و در نهایت آموزش اصلاح شود.
خیلی ممنون از توجه شما، در صورت امکان لطفا چند قسمت از موارد اشتباه را به همراه تصحیح شده آن درج یا یک مرجع معرفی کنید تا مقایسه و بررسی و در نهایت آموزش اصلاح شود.
mohsen
۲۱:۰۹ ۱۳۹۳/۰۹/۲۱
سلام
برادر با این float مشکل دارم
وقتی به دیو flot میدم
کادر راست و چپ از div مادر خارج میشن
میشه راهنمایی کنید
اینم دمو
برادر با این float مشکل دارم
وقتی به دیو flot میدم
کادر راست و چپ از div مادر خارج میشن
میشه راهنمایی کنید
اینم دمو
http://rozup.ir/up/aks410/ind.html
سلام
برای تگ والد مقدار height تنظیم نکرده اید، همچنین می توانید در انتهای بلاک والد (در برخی شرایط)، از بلاکی با خاصیت clear و مقدار both استفاده کنید.
برای تگ والد مقدار height تنظیم نکرده اید، همچنین می توانید در انتهای بلاک والد (در برخی شرایط)، از بلاکی با خاصیت clear و مقدار both استفاده کنید.
۰۰:۲۸ ۱۳۹۳/۰۹/۰۳
ممنون. از آدم هایی که به دیگران چیز یاد میدن خوشم میاد. خدا کمکتون کنه.
۱۶:۵۱ ۱۳۹۳/۰۷/۲۲
سلام. من برای وبلاگم یه عکس پس زمینه گذاشتم ولی برای هر مانیتوری یه جوری میاد. یعنی برای مانیتور 19 اینچ کامل میاد ولی برای مانیتوری مثلا 15 اینج یه قسمت عکس نمیاد (چون ابعاد عکس بزرگ تر از صفحه نمایشه) خیلی سعی کردم درستش کنم تو سایتای مختلف رفتم توی گوکل سرچ کردم ابعاد عکس رو تغییر دادم و ..... ولی نشد.
میشه راهنمایی کنید که چی کار کنم تا عکس پس زمینه متناسب با صفحه نمایش بطور خود کار تنظیم بشه؟
با تشکر
میشه راهنمایی کنید که چی کار کنم تا عکس پس زمینه متناسب با صفحه نمایش بطور خود کار تنظیم بشه؟
با تشکر
سلام
ایجاد پس زمینه برای صفحات وب اصول حرفه ای خاصی دارد و نمی توانید یک عکس ثابت با ابعاد بسیار وسیع برای کلیه صفحه نمایش ها تعریف کنید، یا باید از روش هایی مانند تصاویری که در کناره ها قرار می گیرند (نه به طور کامل در وسط وبلاگ)، یا به فرض از المان های تصویری که در بلاک های کناری (در دو طرف) قرار می گیرند و با کوچک و بزرگ شدن صفحه، بلاک آنها تغییر اندازه می دهد (نه پس زمینه) استفاده کنید، در کل باید تکنیک های طراحی با CSS را بلد باشید که خود آموزش های مفصل و جداگانه ای دارد.
ایجاد پس زمینه برای صفحات وب اصول حرفه ای خاصی دارد و نمی توانید یک عکس ثابت با ابعاد بسیار وسیع برای کلیه صفحه نمایش ها تعریف کنید، یا باید از روش هایی مانند تصاویری که در کناره ها قرار می گیرند (نه به طور کامل در وسط وبلاگ)، یا به فرض از المان های تصویری که در بلاک های کناری (در دو طرف) قرار می گیرند و با کوچک و بزرگ شدن صفحه، بلاک آنها تغییر اندازه می دهد (نه پس زمینه) استفاده کنید، در کل باید تکنیک های طراحی با CSS را بلد باشید که خود آموزش های مفصل و جداگانه ای دارد.
۱۶:۳۰ ۱۳۹۳/۰۷/۱۶
سلام
در css چطوری میشه عکسی را از یک سمت صفحه وارد و از سمت دیگه خارج کرد؟ طوریکه با تغییر سایز صفحه یا مرورگر بهم نریزه؟
باتشکر
در css چطوری میشه عکسی را از یک سمت صفحه وارد و از سمت دیگه خارج کرد؟ طوریکه با تغییر سایز صفحه یا مرورگر بهم نریزه؟
باتشکر
سلام
این موارد معمولا باید با جاوا اسکریپت یا جی کئوری انجام شوند، هر چند خاصیت های transition و translate3d نیز کاربرد دارند:
این موارد معمولا باید با جاوا اسکریپت یا جی کئوری انجام شوند، هر چند خاصیت های transition و translate3d نیز کاربرد دارند:
http://jsfiddle.net/mishik/cKeQ2
با اعمال تغییرات در margin می توانید مطابق نیازتان رفتار تصویر را کنترل کنید، همچنین آموزش لینک زیر نیز مفید است:http://www.kirupa.com/html5/animating_movement_smoothly_using_css.htm
مجتبی
۱۷:۱۵ ۱۳۹۳/۰۷/۰۳
سلام من دو تا div دارم که میخوام یکی از اونها از راست از صفحه بیرون باشه و دیگری از چپ بیرون از صفحه باشه که دیده نشن بعد با animate بیارمشون داخل ... یکیشون رو از چپ با
ممنون
position:relative ;left:-100
میبرم بیرون اما اون یکی که میخوام از راست بره بیرون از سمت راست اسکرول میندازه و بیرون نمیره ... لطفا کمکم کنید ... باید چیکار کنم که بدون اسکرول انداختن از صفحه خارج بشهممنون
سلام
مقدار relative از تگ والد محاسبه می شود، شاید استفاده از absolute مشکل را حل کند، البته این مشکل بدون بررسی دقیق کدها و استایل صفحه شما قابل تشخیص و رفع نیست!
مقدار relative از تگ والد محاسبه می شود، شاید استفاده از absolute مشکل را حل کند، البته این مشکل بدون بررسی دقیق کدها و استایل صفحه شما قابل تشخیص و رفع نیست!
رها
۱۸:۲۶ ۱۳۹۳/۰۶/۱۰
سلام. میخاستم بدونم واسه اینکه wrapper خاصیت height نداشته باشه و خودش ارتفاعش با توجه به محتواش تغییر کنه. باید از float استفاده کنم یا از position. آخه وقتی قالب اصلی که شامل (wrapper, leftside, rightside, footer) وقتی با خاصیت float کار میکنم درست انجام میشه. اما وقتی از float استفاده نمیکنم و از position استفاده میکنم حتما باید به wrapper و باقیشون height بدم. خواهش میکنم کمکم کنید
سلام
سوالتان سربسته و مبهم است!
خاصیت های CSS در تعامل با عناصر HTML ممکن است رفتار و نتیجه متفاوتی نشان دهند، لذا بدون بررسی دقیق صفحه و سورس آن نمی توان پاسخ خاصی داد، ضمن اینکه هیچ کدام از خاصیت های ذکر شده ارتباط مستقیمی به ارتفاع بلاک ندارند و مربوط به موقعیت هستند.
سوالتان سربسته و مبهم است!
خاصیت های CSS در تعامل با عناصر HTML ممکن است رفتار و نتیجه متفاوتی نشان دهند، لذا بدون بررسی دقیق صفحه و سورس آن نمی توان پاسخ خاصی داد، ضمن اینکه هیچ کدام از خاصیت های ذکر شده ارتباط مستقیمی به ارتفاع بلاک ندارند و مربوط به موقعیت هستند.
حمیدرضا حیدری
۱۲:۱۱ ۱۳۹۳/۰۶/۰۷
سلام و خسته نباشید بابت مطالب آموزندتون من خیلی از مطالبتون استفاده کردم.
یک سوال:
من یک منو دارم که بهش خاصیت position:fixed
دادم و منو با اسکرول سر جاش می مونه تا اینجا مشکلی نیست ولی وقتی یک دایو دیگه بعد از منو قرار می دم این دایو میره زیر منو و به بالای مرورگر میچسبه من می خوام کاری کنم که این دایو بعد از منو قرار بگیره اینم کد html و css من.
یک سوال:
من یک منو دارم که بهش خاصیت position:fixed
دادم و منو با اسکرول سر جاش می مونه تا اینجا مشکلی نیست ولی وقتی یک دایو دیگه بعد از منو قرار می دم این دایو میره زیر منو و به بالای مرورگر میچسبه من می خوام کاری کنم که این دایو بعد از منو قرار بگیره اینم کد html و css من.
http://uplod.ir/heq6b2mcb1u4/index.zip.htm
ممنون میشم جواب بدید .سلام
حالت مد نظر شما به تنهایی با CSS قابل ایجاد نیست، باید از جاوا اسکریپت یا جی کئوری در کنار آن برای کنترل رفتار بلاک ها در حین اسکرول استفاده کنید، مثال:
حالت مد نظر شما به تنهایی با CSS قابل ایجاد نیست، باید از جاوا اسکریپت یا جی کئوری در کنار آن برای کنترل رفتار بلاک ها در حین اسکرول استفاده کنید، مثال:
http://codepen.io/anon/pen/BdkLf
http://jsfiddle.net/glee/yLRVZ
در این مثال ها یک بلاک بعد از ایجاد اسکرول در اندازه ای مشخص ثابت می شود که این رفتار را باید برای بلاک های خود ایجاد کنید.مژگان
۱۰:۵۴ ۱۳۹۳/۰۴/۲۳
ok
خب اونوقت 50px- و 100px- را بر چه اساسی دادی؟
خب اونوقت 50px- و 100px- را بر چه اساسی دادی؟
گفتیم، بر اساس اندازه ارتفاع و عرض بلاک! (در اینجا بلاکی فرضی به ابعاد 100 و 200 پیکسل در نظر گرفته شده که نصف آن به صورت منفی برای margin می شود 50- و 100-)، در کل با کم و زیاد کردن عددها می توانید تغییر رفتار بلاک را مشاهده کنید و این بهترین حالت برای درک نحوه عملکرد خاصیت ها است.
مژگان
۱۱:۰۶ ۱۳۹۳/۰۴/۱۶
سلام
ممنون از کمکت مشکلم به طور کامل حل شد. فقط اگه میشه راجب اعدادی که داده بودی منظورم %50 و 150- اینا بیشتر توضیح بدی؟ چرا باید نصف ارتفاع و نصف پهنا مارجین بدم؟
ممنون از کمکت مشکلم به طور کامل حل شد. فقط اگه میشه راجب اعدادی که داده بودی منظورم %50 و 150- اینا بیشتر توضیح بدی؟ چرا باید نصف ارتفاع و نصف پهنا مارجین بدم؟
سلام
مبنا ساده است، فرض کنید یک صفحه نمایش 200 پیکسلی دارید و یک بلاک 100 پیکسلی، قاعداتا اگر margin را نیز 100 پیکسل بدهید، بلاک 100 پیکسل از همان طرف فاصله می گیرد و با عرض خودش که 100 پیکسل است (100 + 100) کاملا به دیواره صفحه نمایش می چسبد، لذا باید 50 پیکسل margin دهید که از هر طرف 50 پیکسل فاصله داشته باشد (50 + 100 + 50).
مبنا ساده است، فرض کنید یک صفحه نمایش 200 پیکسلی دارید و یک بلاک 100 پیکسلی، قاعداتا اگر margin را نیز 100 پیکسل بدهید، بلاک 100 پیکسل از همان طرف فاصله می گیرد و با عرض خودش که 100 پیکسل است (100 + 100) کاملا به دیواره صفحه نمایش می چسبد، لذا باید 50 پیکسل margin دهید که از هر طرف 50 پیکسل فاصله داشته باشد (50 + 100 + 50).
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.