parsgreen.com
article

کار با ویژگی margin و padding در css

css-margin-padding

در ادامه مباحث آموزش مقدماتی css این بار می خواهیم به مبحث کار با ویژگی های padding و margin بپردازیم، با ذکر این مقدمه که استفاده از ویژگی های مذکور در فرم دهی، اسکلت بندی چارچوب کار و طراحی صفحات و قالب های وب، امری فراگیر و تقریبا اجتناب ناپذیر است، به طور مثال برای تنظیم موقعیت بلاک ها، فاصله لایه ها از هم ، نمایش سفارشی محتوای درون لایه ها، جداول و خیلی چیزهای دیگر، از padding و margin و تنظیمات زیر مجموعه آنها استفاده می شود که در ادامه آموزش، به تفصیل در مورد آن خواهیم گفت.

ویژگی margin در css


همانطور که از عنوان این عبارت مشخص است، ویژگی margin برای تنظیم فاصله ی حاشیه ها استفاده می شود، به فرض اگر بخواهیم بلاک div اصلی صفحه، از کناره ها و در واقع از تگ body به میزان چند پیکسل فاصله داشته باشد، کافی است برای آن بلاک، مقادیر حاشیه را در قسمت بالا (top)، به میزان مشخصی در یک کلاس (class) یا آی دی (id) تعریف کنیم، به طور مثال:
.main-block{
    margin-top:4px;
    display:block;    
}
به این صورت، بلاک div با کلاس فرضی main-block از تگ body و در واقع از حاشیه بالای صفحه نمایش، به میزان 4 پیکسل فاصله می گیرد.
مقادیر مربوط به اندازه حاشیه را می توان به چند صورت زیر تعیین کرد، اما مناسب ترین و متداول ترین شیوه در حالت معمول، تعیین مقادیر به پیکسل (px) است.
- تعیین مقادیر به پیکسل (picture element)، به فرض 4px، 0px و... (پیکسل ها مقادیری ثابت هستند)، از واحد px بیشتر برای نمایش محتوا در صفحه نمایش (مانیتور) استفاده می شود.
- تعیین مقادیر به Points، به فرض 2pt، 6pt و... (هر pt برابر 1/72 اینچ است)، از واحد pt بیشتر برای کارهای چاپی استفاده می شود.
- تعیین مقادیر به Ems، به فرض 1em، 0.5em و... (هر em برابر با 16 پیکسل و 12 pt است)، به دلیل قابلیت غیر ثابت و مقیاس پذیر (scalable)، این واحد در طراحی صفحات وب برای گوشی های تلفن همراه و دستگاه های مانند آن مناسب است.
- تعیین مقادیر به سانتی متر (CentiMeter)، به فرض 5cm ، 10cm و...، استفاده از این شیوه در وب، چندان مرسوم نیست.
- تعیین مقادیر به درصد (Percent)، به فرض %10 ، %50 و...، در این حالت اندازه بلاک با توجه به اندازه صفحه نمایش، مقادیری متغیر خواهد بود؛ این واحد نیز در طراحی صفحات وب برای گوشی های تلفن همراه و دستگاه های مانند آن مناسب است.
- تعیین مقادیر به صورت خودکار (auto) و حالت وراثتی (inherit) از بلاک والد.

نحوه تعریف ویژگی margin


ویژگی margin را می توان به دو صورت عادی و مختصر تعریف کرد، در شیوه عادی برای کل جهت های بالا، پائین، چپ و راست به صورت یکجا یا جداگانه، margin تعریف می شود، به طور مثال:
.main-block{
    margin:auto;
}
مثال بالا به این معنی است که مرورگر مقادیر پیش فرض حاشیه را برای جهت های بالا، پائین، چپ و راست در نظر می گیرد.
و یا:
.main-block{
    margin-bottom:4px;
    margin-left:2px;
    margin-right:2px;
    margin-top:4px;
}
و یا:
.main-block{
    margin-left:50%;
    margin-right:30em;
    margin-bottom:20pt;
    margin-top:inherit;
}
و همچنین:
.main-block{
    margin-right:auto;
    margin-left:auto;
}
اما در حالت مختصر نویسی، به جای نوشتن مقادیر و جهت های بالا، پائین، چپ و راست، با نوشتن مقادیر آنها در یک خط، به همان هدف اما با کدنویسی کمتر می رسیم، به فرض:
.main-block{
    margin:10px 15px 20px 25px;
}
اعداد در کلاس فوق، به ترتیب نشانگر جهت بالا (top) راست (right) پائین (bottom) و چپ (left) هستند، در واقع مثال برابر است با کد css زیر:
.main-block{
    margin-top:10px;
    margin-right:15px;
    margin-bottom:20px;
    margin-left:25px;
}
و همین طور مختصر نویسی به صورت زیر:
.main-block{
    margin:10px 15px 20px;
}
برابر است با این کلاس css:
.main-block{
    margin-top:10px;
    margin-right:15px;
    margin-bottom:20px;
    margin-left:15px;
}
و همچنین:
.main-block{
    margin:10px 15px;
}
برابر است با:
.main-block{
    margin-top:10px;
    margin-right:15px;
}

ویژگی padding در css


بر عکس ویژگی margin که فاصله دو بلاک یا دو لایه را در صفحات وب تعیین می کند، ویژگی padding میزان فاصله و حاشیه ی محتوای درون یک بلاک را مشخص می کند، به فرض اگر بخواهیم مطالب داخلی یک لایه به میزان 4 پیکسل از کناره های آن فاصله داشته باشد، کافیست برای استایل یا کلاس مربوط به آن لایه، یک مقدار padding در نظر بگیریم، به طور مثال:
.main-block{
    padding:4px;
}
آنچه در مورد ویژگی margin گفتیم، تا حدود زیادی در مورد padding نیز قابل اعمال است، به طور مثال برای تعریف مقادیر جهت های بالا، پائین، چپ و راست به صورت زیر، padding را مقدار می دهیم:
.main-block{
    padding-top:4px;
    padding-bottom:6px;
    padding-left:8px;
    padding-right:10px;
}
و در شیوه مختصر نویسی:
.main-block{
    padding:4px 10px 6px 8px;
}
همانطور که پیش تر گفتیم، اعداد در کلاس فوق، به ترتیب نشانگر جهت بالا (top) راست (right) پائین (bottom) و چپ (left) هستند.

مثال و پیش نمایش آنلاین


جهت بررسی و آشنایی بیشتر با ویژگی های padding و margin می توانید از کد زیر و پیش نمایش آنلاین آن استفاده کنید.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | حاشیه و نمایش محتوا در css</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
    margin:0px;
    padding:0px;
    background-color:#333;
    color:#CCC;
}
.main-block{
    display:block;
    color:#666;
    background-color:#CCC;
    height:400px;
    width:400px;
    margin-top:100px;
    margin-right:auto;
    margin-left:auto;
    margin-bottom:10px;
    padding:8px;
}
</style>
</head>
<body>
<div class="main-block">
بر عکس ویژگی margin که فاصله دو بلاک یا دو لایه را در صفحات وب تعیین می کند، ویژگی padding میزان فاصله و حاشیه ی محتوای درون یک بلاک را مشخص می کند.
</div>
<hr />
با تنظیم مقادیر margin-right و margin-left به صورت auto، بلاک div در وسط صفحه تنظیم می شود.
</body>
</html>
پیش نمایش
نکته: ویژگی های padding و margin ممکن است در برخی نسخه های مرورگر اینترنت اکسپلورر به خوبی نمایش داده نشوند، لذا اگر با این نوع مشکلات مواجه شدید، برای این نوع مرورگرها، باید استایل مخصوصی تعریف کنید.
sectionدسته بندی: آموزش مقدماتی » CSS
related مطالب بیشتر:
» آشنایی با کلاس (class) و آی دی (id) در css
» نحوه تنظیم لینک (link) در استایل css
» کار با Backgrounds و ویژگی های آن در CSS
» کاربرد خاصیت height و width در css
» کار با ویژگی position و float در CSS
commentنظرات (۲۹ یادداشت برای این مطلب ارسال شده است)
نویسنده: حسنلو
زمان: ۲۰:۱۷:۵۶ - تاریخ: ۱۳۹۱/۱۲/۱۵
با سلام
میخواستم کناره هایه صفحه سایتم رو مثل سایت شما درست کنم می تونید راهنماییم کنید چطور انجامش بدم
با فتوشاپ درست کردم فقط نمیدونم با چه کدی وارد کنم که ایمیجم از حاشیه به یک اندازه باشه
پاسخ: 
سلام
کد مشخصی وجود ندارد، همان طور که قبلا گفتیم، باید استایل نویسی با css را فرا بگیرید، به این تریتب می توان برای بلاک های div با استفاده از خاصیت های مربوط به پس زمینه، تصاویر را تنظیم کرد، اگر css بلد نباشید توضیح این مسئله ممکن نیست.
در قسمت طراحی وب و آموزش کاربردی css مطالبی در این رابطه وجود دارد.
نویسنده: شکوفه
زمان: ۰۱:۲۳:۰۷ - تاریخ: ۱۳۹۲/۰۴/۱۳
سلام
یه سوال داشتم، اینکه یک دکمه را در قسمتی از صفحه قرار دادم ولی وقتی صفحه را مینیمایز میکنم همان مقدار که فرضا مارجین دادم داخل صفحه میآید. چکار کنم که ثابت سرجاش بمونه و این مشکل را رفع کنم.
مرسی که وقت گذاشتید
پاسخ: 
سلام
این مشکل نیاز به بررسی کدها و استایل CSS دارد، بدون دیدن سورس کدها نمی توان پاسخ داد، شاید ایراد از بلاکی است که دکمه در آن قرار گرفته، به طور مثال هنگامی که از مقدار دهی در صدی به جای پیکسل استفاده می کنید، طبیعی است که خصوصیات بلاک متناسب با عرض کلی صفحه تغییر می کند و در نتیجه عناصر داخل آن بلاک نیز به همین صورت.
نویسنده: tarahomiasl
زمان: ۱۵:۰۵:۰۵ - تاریخ: ۱۳۹۲/۰۴/۲۱
سلام و خسته نباشید، من افزونه
widget-css-classes.1.2.1
رو برای دادن استایل خاص برای هر ابزارک فعال کردم، حالا میخوام محتویات یه ابزارک خاص فاصله ای از کنار سایدبار نداشته باشه، چه کدی باید وارد کنم؟
پاسخ: 
سلام
ظاهرا سوال شما در مورد وردپرس است که متاسفانه اطلاعی در این خصوص نداریم، لطفا سوالات مربوط به CMS ها را در انجمن ها و سایت های مربوطه مطرح کنید.
نویسنده: نگار
زمان: ۱۳:۳۷:۲۱ - تاریخ: ۱۳۹۲/۰۵/۰۲
به صاحب سايت تبريك ميگم خيلي زحمت ميكشي براي مردم. دستت درد نكنه
نویسنده: علی
زمان: ۲۰:۳۰:۱۹ - تاریخ: ۱۳۹۲/۰۵/۱۱
سلام بنده مشکلی دارم که تا الان هیچ کس نتونسته حلش کنه
سوال راجع به بلوک تبلیغاتی بلاگم داشتم
این عکس رو مشاهده بفرمایید
طبق فلش می خوام اون عکس بیاد سمت راست ولی نمیاد
چجوری حرکتش بدم؟
http://www.8pic.ir/images/83040855789582935954.jpg
من فقط می خوام توی همین یک بلوک تغییر ایجاد کنم
padding , .. تمامی بلوک های تبلیغاتی وبلاگ رو تغییر میده
<div class="adblock">
<a href="https://alliexfinancial.com/?ref=rapidleech"><img
src="https://alliexfinancial.com/images/alliex160x600.gif" alt="دریافت 15% سود پس از هفت روز"/></a>
</div>
پاسخ: 
سلام
می توانید به روش های زیر این کار را انجام دهید:
- استفاده از تگ center در HTML (توصیه نمی شود):
<div class="adblock">
<center>
<a>...</a>
</center>
</div>
- استفاده از استایل CSS خطی:
<div class="adblock" style="padding-left:12px; text-align:right;">
<a>...</a>
</div>
- تعریف استایل در کلاس مربوطه یا تعریف یک id یکتا برای بلاک:
<style type="text/css">
#adblock_special{
padding-left:12px;
text-align:right;
}
</style>
<div class="adblock" id="adblock_special">
<a>...</a>
</div>
نویسنده: علی
زمان: ۲۳:۱۴:۰۲ - تاریخ: ۱۳۹۲/۰۵/۱۱
سومین کد کار کرد!!
فقط می تونم بگم بی نظیری! واقعا کسی نتونسته بود
برای تشکر کوچک
آدرس سایتتون رو لینک کردم
دو سوال دیگه داشتم اگه امکانش هست و هر وقت تونستید راهنماییم کنید:
سوال اول
در وبلاگ من کد آخرین مطالب در پایین صفحه هست و بصورت افقی چطور اون رو به سمت راست وبلاگ بیارم و مثل دیگر سایتها و وبلاگها:
http://earn1sec.mihanblog.com
سوال دوم
من طبق عکس پایین دو جابه جایی می خواستم انجام بدم
یکی عنوان سایت
و دیگری بلوک سرچ
http://upload7.ir/images/63755705721460500569.jpg
ممنون می شم راهنمایی کنید.
قالب:
http://uploadtak.com/images/y5999_New_Text_Document_2.rar
پاسخ: 
متاسفانه به دلیل کمبود فرصت، امکان انجام تغییرات سفارشی برای کاربران وجود ندارد، لطفا با یک طراح قالب موضوع را مطرح کنید یا اینکه وقت بگذارید و CSS را یاد بگیرید.
نویسنده: علی
زمان: ۱۹:۱۰:۰۴ - تاریخ: ۱۳۹۲/۰۵/۱۵
جناب من تغییر سفارشی نمی خوام
بی زحمت راهنمایی کنید
پاسخ: 
منظور از تغییرات سفارشی، درخواست هایی است که نیاز به ویرایش سورس کد وبلاگ و به فرض تغییر سلیقه ای چینش محتوا و... دارند، راهنمایی خاصی نمی توان در مورد مشکل شما داشت چون باید زمینه قبلی در CSS داشته باشید، تغییر بدون تسلط بر این موضوع، مشکلات دیگری در ظاهر وبلاگ شما ایجاد می کند.
نویسنده: پگاه
زمان: ۱۲:۱۷:۱۱ - تاریخ: ۱۳۹۲/۰۷/۱۶
در سایت w3schools گفته که padding-right و padding-left به width اضافه میشه اما اینطور که من تست کردم اگر به المان width بدیم padding به width اضافه میشه اما اگر به المان width ندیم padding به width اضافه نمیشه و عرض المان ثابت می مونه
پس درستش چیه؟
پاسخ: 
padding در هر صورت به width اضافه می شود، برای اطمینان مقادیر زیادی برای آن در نظر بگیرید، مثال:
<style type="text/css">
.test{
padding:50px;
border:1px solid #999;
}
</style>
<div class="test"></div>
نویسنده: پگاه
زمان: ۰۷:۳۶:۰۴ - تاریخ: ۱۳۹۲/۰۷/۱۷
با تشکر از پاسختون
اتفاقا در همین مثالی که زدید هم همینطوره وقتی به div پراپرتی width رو ندیم عرض کل صفحه رو اشغال می کنه و وقتی padding:50px می دیم عرضی که div در صفحه اشغال کرده هیچ فرقی نمی کنه خودتون امتحان کنید
پاسخ: 
هنگامی که بلاک خاصیت width ندارد، در واقع حالت پیش فرض (auto) برای آن در نظر گرفته می شود، مشخص است که در این صورت padding با مقدار 50 پیکسل تاثیری در ظاهر بلاک نخواهد داشت (چون مقادیر auto آن را در خود حل می کند!)، اما اگر به فرض حالت زیر را در نظر بگیرید:
<style type="text/css">
.test{
padding:50px;
border:1px solid #999;
width:100%;
}
</style>
<div class="test"></div>
قاعدتا نباید اسکرول افقی داشته باشیم (اگر گفته شما درست باشد)، اما به جهت اضافه شدن 50 + 50 پیکسل حاشیه، 100 پیکسل بیشتر از 100 درصد عرض خواهیم داشت و در نتیجه اسکرول افقی.
نویسنده: Bardia
زمان: ۲۰:۲۳:۳۳ - تاریخ: ۱۳۹۲/۱۰/۰۸
سلام.
فقط یه نکته :
از مقادیر منفی هم میشه برای این تگ استفاده کرد.
پاسخ: 
سلام
خیلی ممنون از یادآوری.
نویسنده: مریم
زمان: ۰۰:۳۲:۰۰ - تاریخ: ۱۳۹۲/۱۰/۲۴
سلام سایت خیلی خوبی دارید وخیلی ممنون بابت زحمتتون.
میخوام قسمت هد سایتم مثه سایت زیر باشه.
http://tehran.academia.edu/
بیشتر گیر کارم سر این هست که چطور قسمت رنگی زیر سفید رفته. چطور میتونم این کار رو بکنم.
ممنون میشم در اولین فرصت پاسخ بدید. چون سریعا نیاز دارم.
پاسخ: 
سلام
پیش از هر چیز باید با تکنیک های حرفه ای CSS و طراحی وب آشنا باشید، به فرض این قابلیت را می توان با تعریف یک یا چند div برای هدر و در نظر گرفتن پس زمینه سفید و سپس متصل کردن قسمت هدر با قسمت اصلی و همپوشانی آن با رنگ مشابه بدست آورد، هر چند درک این تکنیک تنها در صورتی ممکن است که قبلا قالب های ساده تر را طراحی و با تکنیک های پایه مانند تبدیل طرح از فتوشاپ به HTML آشنا باشید.
نویسنده: hamed
زمان: ۱۸:۰۱:۰۷ - تاریخ: ۱۳۹۳/۰۳/۱۰
سلام من وقتی از word-warp:break word استفاده می کنم دچار مشکل میشم چون هرخط بطور جداگانه تفسیر میشه و وقتی بخوام پشت خطوط رنگ زمینه بندازم یا border تعریف کنم برای هر خط بطور جداگانه رنگ زمینه و border تعریف میکنه در حالی که میخوام یک رنگ زمینه و border برای تمام خطوط استفاده بشه
پاسخ: 
سلام
هر چند نمونه کدی قرار نداده اید، اما به نظر اگر ابتدا یک بلاک والد (بلاک اصلی) داشه باشید و خاصیت های مربوط به رنگ و خط حاشیه را به آن اختصاص دهید،‌ سپس یک بلاک سطح پائین تر در درون آن داشته باشید و خاصیت های دیگر را نسبت دهید، مشکل حل خواهد شد.
نویسنده: neda
زمان: ۱۵:۵۳:۴۲ - تاریخ: ۱۳۹۳/۰۴/۲۹
سلام دوست عزیز من میخوام margin-right متفاوت از مرورگر های دیگه برای IE V7 تعریف کنم اما نمیدونم چطوری.
چون در مرورگر های دیگه margin-right=27px صحیح کار میکنه ولی در IE v7 باید 0 باشه
اگه میتونید راهنمایی کنید ممنون
پاسخ: 
سلام
لطفا در وب عبارت "تنظیمات CSS مخصوص مرورگر اینترنت اکسپلورر" را جستجو کنید.
نویسنده: حسام
زمان: ۱۶:۵۴:۳۸ - تاریخ: ۱۳۹۳/۱۰/۲۹
متشکرم ... واقعا فقط یه طراح وبه که میتونه تلاش و وقتی رو که برای نوشتن این مطالب مفید و ارزشمند گذاشته شده رو درک کنه :)
نویسنده: محسن
زمان: ۱۹:۵۳:۰۹ - تاریخ: ۱۳۹۴/۰۳/۰۳
با سلام
چگونه از تاثیر padding بر سایر المان ها جلوگیری کنیم. منظورم اینه که مثلا دو تا div داریم که دایو دوم زیر دایو اول و مثلا در موقعیت 500px از بالا قرار دارد حالا اگه مقدار padding دایو اول رو فرضا 20px قرار بدیم اونوقت دایو دوم از موقعیت 500px به موقعیت 520px می ره.
چی کار کنم که از اتفاق جلوگیری شود
پاسخ: 
سلام
می توانید استایل زیر را به بلاک خود اضافه کنید:
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
البته این روش برای مرورگر اینترنت اکسپلورر صرفا از نسخه 8 به بعد کار می کند (که امروزه مشکل چندانی نیست!)، روش دیگر استفاده از width یا height به صورت auto و استفاده از margin-left یا margin-right است.
paged صفحه 1 از 2




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

6 × 9
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...