View Full Version : مبتدی: منظور از عدم استفاده بیش از یکبار از ID در صفحه دقیقاً چیه؟
sahel65
سه شنبه 06 تیر 1391, 20:29 عصر
سلام دوستان؛
طبق تعریفی که ما از ID داریم اینه که در هر صفحه نباید بیش از یکبار از هر ID استفاده شود. در غیر اینصورت صفحه اعتبار خود را از دست می دهد.
میشه دلیل این مورد رو بگید.
همچنین طبق مورد فوق پس الان این کار من درست نیست دیگه؛ درسته؟
ابتدا تعریف شناسه border
#border { border: green thin solid }
<h3 id="border"> اين يك سرفصل با اندازه 3 است </h3>
<div id="border"> اين قسمت يك div است </div>
و دو خط فوق هم استفاده از شناسه فوق در یک صفحه.
چون در اینجا دارم از یک ID دوبار در صفحه استفاده می کنم پس کارم اشتباهه دیگه درسته؟
ممنونم
ravand
چهارشنبه 07 تیر 1391, 09:07 صبح
کی این حرف رو زده؟ اصلا از کدهای css استفاده میکنن برای همین علت . که مجبور نباشد به هر قسمتی چند بار کد بدن. برای همین به هر div یه id میدن که کارشون ساده تر و بهتر بشه. شما اگه بخوای به هر div یه id جداگانه بدی که خیلی باید کدنویسی کنی.
sahel65
چهارشنبه 07 تیر 1391, 11:45 صبح
یعنی من اشتباه برداشت کردم؟
http://img4up.com/up2/52614311996268748650.gif
Saber Mogaddas
چهارشنبه 07 تیر 1391, 14:45 عصر
سلام
کاملا درست هست و نام هر id منحصر به فرد هست و استفاده از دو نام مشابه در id خلاف استاندارد های w3c هست برای اینکه بتونید از یه نام برای تگ های مختلف استفاده کنید باید از کلاس استفاده کنید مثل مثال شما با این تفاوت که باید از class استفاده شه :
زمانی که بخواهید از یک نام برای استایل دادن به چند تگ استفاده کنید باید از class استفاده کنید..
<h3 class="border"> اين يك سرفصل با اندازه 3 است </h3>
<div class="border"> اين قسمت يك div است </div>
.border { border: green thin solid }
موفق باشید..
--قابل توجه آقای راوند برای اینکه صفحه ما به صورت بهینه طراحی شه باید طراحیمون رو به صورت استاندارد انجام دهیم به لینک های معتبر زیر توجه کنید :
http://www.tizag.com/cssT/cssid.php
http://webdesign.about.com/cs/css/qt/tipcssclassvsid.htm
ravand
چهارشنبه 07 تیر 1391, 14:50 عصر
والله من شنیدم از id استفاده بشه بهتر از class هست . برای همین بیشتر از id استفاده کردم. و تا حالا هم مشکلی در مورد عدم سازگار نداشتم.
فکر نمیکنم یه روزی ارائه دهندگان مرورگر بیان کاری بکنن که این همه قالب توی وب دچار مشکل بشه.
Saber Mogaddas
چهارشنبه 07 تیر 1391, 15:02 عصر
سلام
id در همه قسمت های برنامه نویسی منحصر به فرد هست چرا میتونیم در صفحه های جدا گانه از دو نام مشابه استفاده کنیم ولی استفاده از یک نام مشابه برای id در یک صفحه درست و استاندارد نیست و برای اینکار از class استفاده میشه توصیه می کنم که تحقیق کنید در این مورد و فکر نکی کنم سایتی باشه که از یک نوع id برای تگ های هم استایل خود استفاده کرده باشه و اگه استفاده شده باشه از دانش کم سرچشمه می گیره..
ravand
چهارشنبه 07 تیر 1391, 15:15 عصر
من کاری به استاندارد ندارم ولی من توی قالب هام بار ها و بارها از id تکراری استفاده کردم و مشکلی با مرورگرهای مختلف نداشتم.
الان این قالبی هست که من آزمایشی ساختم شما کاری به ظاهرش نداشته باش که زشت هست یا زیبا ، این فقط جنبه ی آموزشی داره.
<!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>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
A{ text-decoration: none; }
#asli{
width:900px;
border:2px solid #B013F1;
}
/* http://barnamenevisi.blogsky.com */
#mokaab{
width:890px;
border:0px;
}
#header{
width:885px;
height:150px;
border:2px solid #0A54EA;
text-align:center;
background-color:#D19BFA;
margin-top:7px;
padding-top:5px;
}
#matn-header{
width:800px;
height:100px;
padding-top:30px;
line-height: 10%;
}
#menu{
width:255px;
float:right;
text-align:right;
}
#onvan-rast{
width:250px;
border:2px solid #0A54EA;
text-align:center;
float:right;
direction:rtl;
text-align:right;
margin-bottom:10px;
}
#title{
font-family: Tahoma;
font-size: 8pt;
width:247px;
border:2px solid #0A54EA;
text-align:right;
direction:rtl;
}
#dakhel-menu{
padding: 10px 10px 10px 6px; line-height: 100%;
}
#chap{
direction:rtl;
width:615px;
border:0px;
float:left;
text-algin:right;
}
#onvan-matlab{
width:605px;
border:2px solid #0A54EA;
text-align:right;
float:left;
direction:rtl;
}
#matlab{
direction:rtl;
width:605px;
border:2px solid #EA0A2F;
float:left;
margin-bottom:10px;
}
</style>
</head>
<body>
<div align="center">
<div id="asli">
<div align="center">
<div id="mokaab">
<div align="center">
<div id="header">
<div align="center">
<div id="matn-header">
<?php
include("onvan.php");
?>
</div>
</div>
</div>
</div>
<br>
<div id="menu">
<div id="onvan-rast">
<div id="title">
درباره ی من
</div>
<div id="dakhel-menu">
<div align="center">
<?php include_once("aks.php"); ?>
</div>
<br>
<?php include_once("profile-ghaleb.php"); ?>
</div>
</div>
<div id="onvan-rast">
<div id="title">
منوی اصلی
</div>
<div id="dakhel-menu">
<a href="ghaleb.php">صفحه نخست</a><br>
<a href="show-profile.php" target="_blank" onclick="window.open('show-profile.php','newpage','resizable=1,width=440,heig ht=580,top=60,left=60');return false;">درباره ی ما</a><br>
<a href="contact.php" target="_blank" onclick="window.open('contact.php','newpage','resizable=1,w idth=440,height=400,top=60,left=60');return false;">تماس با ما</a>
</div>
</div>
<div id="onvan-rast">
<div id="title">
پیوندها
</div>
<div id="dakhel-menu">
<?php
include_once("peyvand.php");
?>
</div>
</div>
<div id="onvan-rast">
<div id="title">
موضوعات
</div>
<div id="dakhel-menu">
<?php
include_once("menu.php");
db_connect3();
?>
</div>
</div>
</div>
<div id="chap">
<?php
include_once("chap.php");
db_connect();
?>
</div>
<div style="clear: both;font-size: 2pt"> </div>
</div>
</div>
</div>
</div>
</body>
</html>
الان این قسمت ها رو چند بار تکرار کردم و مشکلی ایجاد نشده:
<div id="onvan-rast">
<div id="title">
sahel65
چهارشنبه 07 تیر 1391, 18:16 عصر
از هر دو دوست عزیزم ممنون و سپاسگزارم.
آقا صابر پس در واقع یعنی الان این کدی که در اول نوشتم درست نیست دیگه؟؟؟ مگه اینکه هر کدوم از خطوط ذیل تو صفحات جداگانه قرار بگیرند؟ درسته؟؟؟
<h3 id="border"> اين يك سرفصل با اندازه 3 است </h3>
<div id="border"> اين قسمت يك div است </div>
پس اینجور که کلا فهمیدم اینکه در یک صفحه دو تا ID مشابه قرار نگیرن بهتره؟؟
Saber Mogaddas
پنج شنبه 08 تیر 1391, 10:44 صبح
سلام
می تونید این کار رو انجام بدید ولی درست نیست اگه تمایل دارید کار شما حرفه ای باشه و از لحاظ کد نویسی بهینه باشید بجای استفاده از id از class که مختص به همین کار هست استفاده کنید همانطور که در مثال توضیح دادم .
من کاری به استاندارد ندارم ولی من توی قالب هام بار ها و بارها از id تکراری استفاده کردم و مشکلی با مرورگرهای مختلف نداشتم.
آقای راوند به این نکته توجه داشته باشید که یک طراح خوب و حرفه ای باید درکد نویسی استانداردهای معلوم شده رو رعایت کنه تا به کد بهینه رسیده باشه درسته مشکلی پیش نخواهد اومد و من چنین حرفی نگفتم ولی استفاده از دو نام مشابه در یک صفحه توسط id باعث خواهد شد که کد های ما بهینه نباشه برای انجام این کار class هست که مختص برای این کار هست .برای مثال اگه شما تو vs برنامه نویسی کرده باشید به این کار اجازه داده نمیشه و خطا می گیره و زمان کپی یک id در همان صفحه به صورت خودکار نام id تغییر پیدا می کنه این یه قانون برنامه نویسی هست و در میان طراح های وب نیز رایج هست ..
برای روشن شدن قضیه شما همین تکه کدی که برای مثال گذاشتید رو در استاندارد w3c در قسمت Validate by directe input قرار بدید و تست کنید و به error های ID "onvan-rast" already defined و یا ID "title" already defined و .. توجه کنید..
تو هیچ منبع و مرجعی موثقی این کار تایید نشده چون id در یک صفحه منحصر به فر برای یک تگ هست.
موفق باشید
cyrusthegreat
دوشنبه 12 تیر 1391, 14:57 عصر
دوست عزیز ravand
مسئله به اینکه جواب میده و در مرورگر به مشکل بر نمی خورید اصلا ربطی نداره. کد شما استاندارد نیست. شما می تونید برای باد کردن لاستیک ماشین، هم از دهنتون استفاده کنید هم از پمپ. هردو جواب میده. ولی آیا درست هست هردو راه؟ خیر
در جواب دوست عزیزمون که سوال رو پرسیدن بگم که، استفاده از دو ID به این دلیل استاندارد نیست، چون انتخابگری در JS بر اساس ID انجام میشه. بخاطر همین شما نمی تونید از چندین ID استفاده کنید. در اون موقع، شما نمی تونید به راحتی از انتخابگر JS استفاده کنید. این یه استاندارد هست.
mamali-mohammad
دوشنبه 12 تیر 1391, 15:16 عصر
بله درسته
شما اگه قرار منحصر به فرد باشه باید از ID استفاده کنید
اما اگه قرار از یه متد چندین بار استفاده بشه باید از CLASS استفاده کنید
این یه حالت VALID بودن به کار میده و اجازه توسعه راحتر هم میده
clover
جمعه 16 تیر 1391, 13:33 عصر
من کاری به استاندارد ندارم ولی من توی قالب هام بار ها و بارها از id تکراری استفاده کردم و مشکلی با مرورگرهای مختلف نداشتم.
با کفش میشه نماز خوند؟ به هر حال کاری ندارم چون من بارها و بارها خوندم و شده :لبخندساده:
به هر حال شما می تونید بسیاری از استانداردهای W3C رو نقض کنید و سایتتون توی n مرورگر مختلف به درستی نمایش داده بشه، اما آیا میشه تضمین کرد که توی مرورگر n+1 هم درست نمایش داده میشه، اصلا آیا میشه تضمین کرد که توی هر شرایطی درست کار می کنه، مثلا در هنگام استفاده از یک کد جاوا اسکریپت برای اعمال یک استایل به کلیه ی المنت هایی که آی دی یکسان دارند؟
دوست عزیز، اگر کاری اشتباه هست و ما ندونسته داریم انجامش میدیم، نباید بعد از اطلاع از اشتباه بودن اون کار، روی اشتباه خودمون پافشاری کنیم.
تعصب نداشته باشید، من هم هزاران اشتباه داشتم که در همین سایت (گاهی وقتا پست های ابتدایی خودم رو می خونم) و هزاران جای دیگه اطرافیانم بهم تذکر دادند، باید قبول کرد.
موفق باشید
Hamid.mohammadian
دوشنبه 11 دی 1391, 11:12 صبح
ببخشید من نیاز دارم که خاصیت droggable رو به طور جداگانه به هر بلوکم بدم.چطور میتونم اینکار رو کنم.چون یک ای دی در اختیار دارم و استفاده چند ای دی ممکن نیست.علاوه بر این ایا ممکنه که چند کلاس در یک دایو قرار بگیرند؟
Mohsen.
دوشنبه 11 دی 1391, 11:53 صبح
بله. شما میتونید کلاس ها رو با فاصله از هم جدا کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.