View Full Version : سوال: قرار دادن تو در توی Div
hesamy2004
سه شنبه 16 فروردین 1390, 08:29 صبح
دوستان در قسمت body صفحه یه Div قرار دادم و میخوام در داخل این دو div دیگه در کنار هم داشته باشم. یکی 75 درصد صفحه رو بگیره و دیگری 25 درصد باقیمانده رو. div اولی مطالب وبلاگه و div دومی هم سایدباره.
حالا مشکلم اینجاست که نمیدونم چره هرسه div رو روی همدیگه نشون میده! این کد CSS هست:
#body_container{
clear: both;
margin: 10px 160px;
border: 1px solid #3F0;
}
div.body_contents{
float: left;
margin-right: 25%;
border: 1px solid #960;
}
div.sidebar{
float: right;
margin-left: 75%;
border: 1px solid #F0F;
}
و شکل خروجی رو در ضمیمه مشاهده میکنید.
در قسمت کد هم اینو نوشتم:
<!-- Code of body starts here-->
<div id="body_container">
asdASDDS Dad sfsdf sfd fadf
sdf af
sf sdf sdfadfasdf
dfsdfasdf
sdfsdf adf
asdfsdf sdf sdf
dfsdfasdf sdf dfadfasdfasdf fdsasf fdsasdfadsf fdsasdfadsfd
<div class="body_contents">
body contents.
asdASDDS Dad sfsdf sfd fadf
sdf af
sf sdf sdfadfasdf
dfsdfasdf
sdfsdf adf
asdfsdf sdf sdf
dfsdfasdf sdf dfadfasdfasdf fdsasf fdsasdfadsf fdsasdfadsfd
</div>
<div class="sidebar">
sidebar. <br/>
asdASDDS Dad sfsdf sfd fadf
sdf af
sf sdf sdfadfasdf
dfsdfasdf
sdfsdf adf
asdfsdf sdf sdf
dfsdfasdf sdf dfadfasdfasdf fdsasf fdsasdfadsf fdsasdfadsfd
</div>
</div>
hesamy2004
سه شنبه 16 فروردین 1390, 09:03 صبح
در داخل سورس برنامه این خط رو اضافه کردم:
<br style="clear:both;" />
مشکل اول حل شد یعنی دو div در داخل div بزرگتر قرار گرفتند ولی هنوز این دوتا بغل همیگه نرفتن :خجالت:
colors
سه شنبه 16 فروردین 1390, 09:32 صبح
درود
دوست من از اول یکی براتون ساختم - امیدوارم کارتونو راه بندازه.
کدهای CSS
<style>
#div1{ position:absolute; background:#CCC; width:900px; height:500px}
#div2 { position:relative; border:1px solid red; width:25%; height:100%; float:right}
#div3 { position: relative; border:1px solid blue; width:74%; height:350px}
</style>
اینم کدهای HTML
<!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>Untitled Document</title>
</head>
<body>
<div id="div1">
<div id="div2">
</div>
<div id="div3">
</div>
</div>
</body>
</html>
رضا قربانی
سه شنبه 16 فروردین 1390, 09:49 صبح
استفاده از پوزیشن خوب نیست و اصلا استاندارد نیست.
دوست چرا از <TABLE> <TR> <TD> استفاده نمی کنی ، باعث نظم و هماهنگی قالبتون می شه و به نظر من شما هم از جداول استفاده کنی بهتره.
جدول رو 100% در نظر بگیرید و بقیه کار های لازم رو انجام بدید
hesamy2004
سه شنبه 16 فروردین 1390, 09:55 صبح
دمت گرم رفیق خیلی مرام گذاشتی. اصلاً انتظار نداشتم تینطوری وقت بزاری :تشویق:
راستش یه مشکلی هست. برای div اولی نمیخوام دقیق معلوم کنم چند پیکسل طول و عرضشه علت اینه که براوزرهای مختلف جورهای متفاوتی نمایش میدن و از قالب صفحه ام بیرون میره یا تو بعضی دیگه خیلی میره تو. برای همین یه مقدار کدی رو که زحمت کشیدی نوشتی بالا پایین کردم و این شد:
#body_container{
height: auto;
width: auto;
position:relative;
margin: 10px 160px;
border: 1px solid #3F0;
}
div.body_contents{
height: auto;
width: auto;
float: left;
position:relative;
margin-right: 25%;
border: 1px solid #960;
}
div.sidebar{
height: auto;
width: auto;
margin-left: 75%;
border: 1px solid #F0F;
}
حالا یه مشکل جدید پیدا کرده همونطور که در تصویر ضمیمه میبینی متن div کوچیکتر خیلی پایین اومده و از سطر بعد از div قبلی شروع شده. چرا اینطوری شد؟
hesamy2004
سه شنبه 16 فروردین 1390, 09:58 صبح
استفاده از پوزیشن خوب نیست و اصلا استاندارد نیست.
دوست چرا از <TABLE> <TR> <TD> استفاده نمی کنی ، باعث نظم و هماهنگی قالبتون می شه و به نظر من شما هم از جداول استفاده کنی بهتره.
جدول رو 100% در نظر بگیرید و بقیه کار های لازم رو انجام بدید
ممنون از نظرت. راستش من چند وقتیه وارد دنیای طراحی سایت شدم. تو W3c نوشته بود برای طراحی صفحه از جدول استفاده نکنید و تا میتونید از div استفاده کنید. برای همین از این روش اومدم. اگه موفق نشدم همه چیز رو درست تنظیم کنم حتماً به این روش عمل میکنم.
بازم ممنون.
Spring_64
سه شنبه 16 فروردین 1390, 10:16 صبح
سلام div اول رو width=100% بذاريد و به جاي استفاده از margin براي دايو هاي داخلي width=25%,74%يا width=24%,75% قرار دهيد چون دايو ها در داخل هم قرار مي گيرند لازم است مجموعشان يك درصد كمتر از width در بر گيرنده شان باشد.:متفکر:
البته floatبراي دايو هاي داخلي فراموش نشود.
hesamy2004
سه شنبه 16 فروردین 1390, 11:40 صبح
سلام div اول رو width=100% بذاريد و به جاي استفاده از margin براي دايو هاي داخلي width=25%,74%يا width=24%,75% قرار دهيد چون دايو ها در داخل هم قرار مي گيرند لازم است مجموعشان يك درصد كمتر از width در بر گيرنده شان باشد.:متفکر:
البته floatبراي دايو هاي داخلي فراموش نشود.
ممنونم از لطفت. کد رو مثله زیر همونطور که اشاره کردی تغییر دادم:
#body_container{
margin: 10px 160px;
height: auto;
width: 100%;
clear: both;
border: 1px solid #3F0;
}
div.body_contents{
height: auto;
width: 74%;
float: left;
border: 1px solid #960;
}
div.sidebar{
height: auto;
width: 25%;
float: right;
border: 1px solid #F0F;
}
هر سه div در قالب خودشون قرار گرفتن ولی مشکلی که پیش اومد این بود که الان div سمت راست از کادرم زده بیرون.
colors
سه شنبه 16 فروردین 1390, 11:57 صبح
خوب اینم هم نظر شخصیه دوستمونه
ستفاده از پوزیشن خوب نیست و اصلا استاندارد نیست.
دوست چرا از <TABLE> <TR> <TD> استفاده نمی کنی ، باعث نظم و هماهنگی قالبتون می شه و به نظر من شما هم از جداول استفاده کنی بهتره.
جدول رو 100% در نظر بگیرید و بقیه کار های لازم رو انجام بدید
دوست من استفاده از تیبل غیر استاندارد ترین نحوه کد نویسی برای صفحات متن گذاری شده یا همون HTML است . و استفاده از پوزیشن باعث قابلیت انعطاف پذیری دیوها میشه و این بهترین روش برای ساخت همچین قالبی است.
و برای حل مشکل کدهای، CSS رو به این شکل زیر تغییر بده
#body_container{
height: auto;
width: 99%;
position:relative;
border: 2px solid #3F0;
position: absolute
}
div.body_contents{
height: auto;
width:25%;
float: right;
position:relative;
border: 1px solid #960;
}
div.sidebar{
height: auto;
width: 74%;
border: 1px solid #F0F;
position:relative;
}
سوالی بود در خدمتم
alibabaei2
سه شنبه 16 فروردین 1390, 18:05 عصر
وقتی به دو دیو float می دهید پایین اون ها یک تگ <p> بگذارید و به این تگ کلاس زیر را دهید . ببینید این کارو بکنید درست میشه
.clear
{clear:both;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.