آگهی
article

مقدمه ای بر CSS و استایل دهی صفحات وب

css-magic

پس از آشنایی و تسلط بر کدنویسی HTML روند فراگیری مهارتهای حرفه ای وب با مبحث دیگری تحت عنوان CSS ادامه می یابد، CSS مخففی از سرواژه های Cascading Style Sheets و در اصطلاح به معنی شیوه ای جهت شکل دهی ظاهر و فرم صفحات وب است، CSS را باید به نوعی جادوگر طراحی وب نامید چرا که کدنویسی بی روح و اسکلتی HTML با کمک CSS تبدیل به طراحی جذاب و کاربر پسند می شود، فلسفه پیدایش این زبان به آسان کردن کار طراحان صفحات وب جهت شکل دهی و فرم بندی ایده هایشان بر می گردد، پیش از این برای اینکه به فرض رنگ فونت یک متن را در صفحات مختلف یک سایت تغییر دهیم ناچار بودیم در هر صفحه فونتمان را پیدا کرده و با صرف زمان زیاد، تک تک آنها را ویرایش کنیم، اما با معرفی CSS انجام این موارد بسیار ساده تر و البته حرفه ای تر شد، بنابراین می توان گفت گام دوم در یادگیری کدنویسی و طراحی وب فراگیری CSS است.

معنی و مفهوم CSS


همان طور که پیش از این اشاره شد، CSS مخفف عبارت Cascading Style Sheets است که با ترجمه کلمه به کلمه "شیوه نامه های آبشاری" معنی می شود، منظور از شیوه نامه این است که دستورات CSS به صورت جداگانه و معمولا در فایل هایی با فرمت css (یا به صورت داخلی در کدنویسی HTML) وارد شده و مرورگر با پیروی از این دستورات، به تگ های HTML جلوه مورد انتظار را نسبت می دهد، کلمه "آبشاری یا Cascading" نیز به این دلیل است که اولویت دستورات در CSS در حالت پیش فرض به صورت سلسله مراتبی (از پائین صفحه وب به بالا) هستند و در صورت تداخل صرفا یک ویژگی غالب می شود، به فرض اگر در یک فایل استایل که در بالای صفحه وب وارد شده برای بلاکی رنگ زمینه آبی در نظر گرفته شده باشد، فایل استایلی که در ادامه در صفحه وارد شود و برای همان بلاک رنگ زمینه خاکستری تعیین کند، ویژگی غالب می شود که در پائین ترین قسمت صفحه وجود داشته باشد، بنابراین با این توصیف، رنگ خاکستری به عنوان رنگ زمینه در نظر گرفته خواهد شد و ویژگی مشترک بالادستی (پس زمینه آبی) نادیده گرفته می شود.

فرمت بندی بدون استفاده از CSS


در ابتدای پیدایش HTML به عنوان ابزاری جهت ایجاد صفحات وب، جلوه های ظاهری مانند اندازه، رنگ، ویژگی های مربوط به متن و... توسط خاصیت های داخلی و اغلب به صورت خطی اعمال می شدند، این شیوه تا مدتها تنها راه اعمال استایل به صفحات وب بود تا اینکه رفته رفته با پیشرفت و توسعه وب، طراحان با محدودیت های مختلفی روبرو شدند که نیاز به معرفی روشی ساده تر و حرفه ای تر را یادآور می شد، از این رو در سال 1998 اولین نسخه از CSS توسط کنسرسیوم جهانی وب W3C معرفی و در کنار کدهای HTML در ساخت صفحات نوین وب به کار گرفته شد، با این پیش آگاهی دو نمونه کد که با دو روش قدیمی و جدید استایل دهی شده را با هم مقایسه می کنیم، کد اول بدون استفاده از CSS و صرفا توسط خاصیت های خطی HTML فرمت بندی شده است (برای تست کافی است کد را در یک ویرایشگر متنی یا HTML کپی، ذخیره و در مرورگر اجرا کنید، همچنین می توانید از پیش نمایش آنلاین استفاده نمائید):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | صفحه وب بدون استفاده از CSS</title>
<!-- Webgoo.ir -->
</head>
<body bgcolor="#0099CC">
<div align="justify" dir="rtl">
<font color="#003366">
نمایش متن 1 بدون استفاده از CSS
</font>
</div>
<div align="justify" dir="rtl">
<font color="#003366">
نمایش متن 2 بدون استفاده از CSS
</font>
</div>
<div align="justify" dir="rtl">
<font color="#003366">
نمایش متن 3 بدون استفاده از CSS
</font>
</div>
</body>
</html>
پیش نمایش

استایل دهی با استفاده از CSS


شاید با اجرای کد بالا و مشاهده نتیجه در مرورگر به این فکر افتاده باشید که وقتی می توان به شیوه خطی به هدفمان برسیم، چه نیازی به CSS است؟! در پاسخ باید گفت که صفحات در پروژه های وب معمولا به یک یا چند مورد محدود نمی شوند که بتوانیم مورد به مورد با استایل خطی به آنها ویژگی های ظاهری را نسبت دهیم، اغلب نیاز است که یک ویژگی و حالت به تگ های مختلفی در صفحات مختلف نسبت داده شود، واضح است که به شیوه خطی باید تک تک این صفحات و تگ ها ویرایش شوند که از نظر حرفه ای قابل قبول و بهینه نیست، در دنیای حرفه ای و مخصوصا در کدنویسی وب این قانون نانوشته جاری است که کم بنویس و زیاد استفاده کن! لذا CSS با این هدف که بتوانیم یک بار استایل را تعریف و در جاهای مختلف از آن استفاده کنیم ایجاد شد، حال همان کد را به شیوه جدید استایل دهی می کنیم:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | صفحه وب با استفاده از CSS</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    background-color:#0099CC;
}
.mydiv{
    text-align:justify;
    direction:rtl;
    color:#003366;
}
</style>
</head>
<body>
<div class="mydiv">
نمایش متن 1 با استفاده از CSS
</div>
<div class="mydiv">
نمایش متن 2 با استفاده از CSS
</div>
<div class="mydiv">
نمایش متن 3 با استفاده از CSS
</div>
</body>
</html>
پیش نمایش
در کد دوم اگرچه چند بلاک div وجود دارد، اما برای فرمت بندی آنها صرفا از یک شیوه استفاده شده، در واقع یکی از قابلیت های اصلی و کلیدی CSS امکان ایجاد و تعریف کلاس (Class) و آی دی (ID) است، به اینصورت که به طور مثال با تعریف یک کلاس، از آن در صفحات مختلف و بدون تکرار کدنویسی، به دفعات دلخواه استفاده می کنیم.
چند توضیح:
- CSS یک زبان کمکی است، یعنی به خودی خود کاربرد خاصی ندارد، ولی به تگ های HTML شکل و قالب می دهد.
- برای دیدن و مقایسه کد صفحات وب قسمت پیش نمایش، کلیک راست کرده و View Page Source را انتخاب نمائید.
- کدهای CSS در صفحات وب یا به صورت درون صفحه ای یا ایمپورت به صورت فایل خارجی هستند، در شیوه درون صفحه ای استایل CSS در قسمت head صفحه یا بین تگ های HTML به صورت خطی (Inline) تعریف می شود، در شیوه ایمپورت به صورت فایل خارجی نیز استایل CSS به صورت یک فایل خارجی در قسمت head صفحه و در تگ link درج می شود.
- تگ style برای ایجاد و تعریف کدهای CSS درون صفحه ای کاربرد دارد، مانند آنچه در صفحات بالا دیدیم.
- برای ایمپورت یک فایل CSS خارجی، از تگ link و خاصیت های آن، درون تگ head استفاده می کنیم، به طور مثال:
<link rel="stylesheet" type="text/css" href="style/style.css">
در این رابطه در آموزش های بعدی بیشتر خواهیم گفت.
sectionدسته بندی: آموزش مقدماتی » CSS
related مطالب بیشتر:
» خاصیت Background و ویژگی های آن در CSS
» ویژگی های Font و Text در CSS
» کار با ویژگی margin و padding در CSS
» کار با border و outline در CSS
» نحوه تنظیم لیست با تگ ul li در CSS
commentنظرات (۳۵ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: ali
زمان: ۲۳:۲۱:۵۵ - تاریخ: ۱۳۹۱/۰۸/۰۱
سلام...
سه سالی میشه که دنبال اینجور وبی میگشتم..! ممنون بابت تمامی زحماتتون...
سبک آموزشتون خیلی خوبه...
واسه تشکر کوچیک یه هیدر خیلی ساده واستون زدم...
http://irphoto.ir/uploads/13509352071.gif
ببخشید که در مقابل زحماتتون خیلی کمه، راستش وقت زیادی واسه طراحی ندارم ...
اگه وقت کردی یه سر بزن...!
بازم ممنون...
یاعلی
پاسخ: 
نظر لطف شما است، خیلی ممنون که وقت گذاشتید.
نویسنده: setare
زمان: ۲۰:۱۷:۰۵ - تاریخ: ۱۳۹۱/۰۸/۰۲
سلام
ببخشید من تازه میخواهم کدنویسی با زبان CSS را شروع کنم. سوال من این است که برای نوشتن این کدهای CSS باید از چه نرم افزاری استفاده کنیم تا اجرا بگیریم؟
پاسخ: 
برای اجرای کدهای CSS به نرم افزار خاصی نیاز نیست، باید استایل خود را در یک صفحه HTML برای عناصر و تگ ها به کار ببرید و پس از ذخیره کردن فایل، در مرورگر آن را اجرا کرده و نتیجه کار خود را ببینید، به فرض اگر یک کلاس تعریف می کنید، آن کلاس را به یک تگ div نسبت دهید و فایل را با فرمت html ذخیره کرده و اجرا کنید.
نویسنده: shaian
زمان: ۲۲:۰۱:۰۳ - تاریخ: ۱۳۹۲/۰۶/۰۳
در ‏Dreamweaver‏ میشه از کدهای ‎ CSSاستفاده کرد.‏‎ ‎
پاسخ: 
منظورتان از استفاده مشخص نیست، دریم ویور صرفا یک محیط کدنویسی است که امکان نوشتن کدهای مربوط به وب (از جمله CSS) را فراهم می کند، اما از نظر استفاده، CSS را باید در داخل صفحات HTML استفاده کنید.
نویسنده: amir
زمان: ۱۵:۲۱:۱۸ - تاریخ: ۱۳۹۲/۱۱/۰۵
سلام
من شنیدم که اگه قالب سایت (وردپرسی) رو به css تبدیل کنیم سرعت باز شدن صفحات سایت بالا میره
لطفا یه پست راجع به افزایش سرعت باز شدن سایت بدون استفاده از پلاگین بذارید و راهنمایی کنید
*جواب روبه ایمیلم هم ارسال کنید*
همچنین چه جوری سئو سایت رو افزایش بدیم بدون این که از پلاگین خاصی استفاده کنیم
موفق باشید
یاحق
پاسخ: 
امروزه تقریبا تمام قالب های وب مبتنی بر ترکیب HTML و استایل CSS طراحی می شوند، چیزی به عنوان تبدیل به CSS وجود ندارد!
در مورد سئو نیز هیچ ترفند معجزه گری وجود ندارد، باید مجموعه ای از قواعد مربوط به بهینه کردن صفحات وب را بیاموزید که شامل مباحث زیادی می شود (به بخش بهینه سازی و همچنین منابع مرتبط با سئو مراجعه کنید).
نویسنده: بهنام
زمان: ۰۲:۴۳:۱۶ - تاریخ: ۱۳۹۲/۱۲/۰۸
سلام خسته نباشید
میشه به من بگین نقش + در سی اس اس چیست ؟ برای نمونه
.sgender input[type=radio] + label, input[type=checkbox] + label {}
پاسخ: 
علامت + یا plus برای مشخص کردن دقیق عنصری است که قصد اعمال استایل بر روی آن را داریم، به فرض حالت زیر را در نظر بگیرید:
h1 + p {font-weight: bold;}
این استایل تنها به تگ p اختصاص می یابد که بلافاصله بعد از h1 آمده باشد، در مورد استایل شما تنها به label هایی اختصاص می یابد که بلافاصله بعد از input از نوع radio یا checkbox آمده باشد.
نکته: این دستورات ممکن است در برخی مرورگر ها مانند IE 6 به خوبی عمل نکنند.
نویسنده: بهنام
زمان: ۱۶:۰۵:۴۶ - تاریخ: ۱۳۹۲/۱۲/۰۸
بله متوجه شدم ممنون از راهنماییتون
میشه بجای علامت پلاس از علامت اسپیس یا همون خط فاصله استفاده کرد هر دوش یکی هستش درسته؟
h1 + p {font-weight: bold;}
h1 p {font-weight: bold;}
اگه نه فرقشون رو بگین لطفا
پاسخ: 
طبق توضیح سایت w3.org حالت دوم (فاصله) تمام تگ های p که درون تگ h1 باشند را شامل می شود (یعنی حتی اگر بین تگ های تو در توی دیگری باشند)، اطلاعات بیشتر:
http://www.w3.org/TR/CSS21/selector.html
این مورد را باید با تست های بیشتر به صورت عملی درک کنید.
نویسنده: بهنام
زمان: ۱۷:۵۵:۵۱ - تاریخ: ۱۳۹۲/۱۲/۰۸
اگه امکانش هست این علامت ~ را هم در سی اس توضیح بدید چی کار میکنه
.switch-input:checked + .switch-label-on ~ .switch-selection{left:60px}
و علامت . بعد از یک چیزی مثلا
div.div{}
پاسخ: 
سلکتور ~ مشابه سلکتور + است با این تفاوت گه سلکتور + حالت strict یا سختگیرانه دارد، یعنی تنها عنصری را شامل می شود که بلافاصله بعد از عنصر اول آمده باشد، اما سلکتور ~ تمام تگ هایی که بعد از تگ اول آمده باشد را تا زمانی که تگ متفاوت دیگری بین آنها نباشد را شامل می شود.
استفاده از علامت نقطه، توالی تگ ها را نشان می دهد، به فرض div.div یعنی تگ div که قبل از آن تگ div دیگری باشد (در عمل تست کنید).
نویسنده: محمد
زمان: ۲۲:۰۳:۴۷ - تاریخ: ۱۳۹۲/۱۲/۲۲
سلام
در css با انتخاب یک تگ یا گروهی از تگها بهشون استایل میدیم
مثلا وقتی میخوایم به تگ a استایل بدیم در قسمت انتخابگر مینویسیم
ولی من میخوام عملیاتی برای یک تگ در استایل تگ دیگری بنویسم مثلا بگم وقتی ماوس روی تگ a اومد تگ img بچرخه !
این کار با css شدنیه؟
پاسخ: 
بله، کافی است استایل را به صورت a img بنویسید که در این صورت استایل به تگ img که داخل a باشد اعمال می شود!
مثال:
a img {
border:none;
}
نویسنده: کیانی
زمان: ۱۸:۴۵:۴۱ - تاریخ: ۱۳۹۳/۰۱/۱۴
سلام
ببخشید که اینجا این سوال رو مطرح می کنم
من یک دایو دارم که درونش چندتا عکس هستش
به طور مثال یک دایو درست کردم که مثلا طول و عرضش 200 در 200 است و درون این دایو چند تا عکس گذاشتم من میخوام این دایو رو لینک دار کنم
یعنی هر وقت موس بر روی کادر دایو قرار گرفت علامت موس به شکل دست در بیاد
ممنون میشم اگر راهنمایی کنید
پیروز باشید
پاسخ: 
از دو طریق این کار شدنی است، اول اینکه به جای div این حالت را برای تگ a در نظر بگیرید، برای اینکه تگ a قابل تنظیم باشد، از خاصیت display با مقادیر block (یا inline-block) برای آن استفاده کنید.
راه حل دوم قرار دادن تگ div درون تگ a است، به این ترتیب نیز بلاک مربوطه به صورت قابل کلیک و لینک شده نمایش داده می شود (در این حالت نیز ممکن است خاصیت display و طول و ارتفاع برای تگ a نیاز به مقداردهی باشد).
نویسنده: amir
زمان: ۱۳:۲۵:۰۵ - تاریخ: ۱۳۹۳/۰۴/۲۴
ببخشيد. من سورس اين صفحه رو نگاه كردم. و به يه مشكلي برخوردم. استفاده از شروط آي اي چه كاربردي داره و آيا تو كد نويسي ما تاثير مثبتي داره؟؟؟؟
پاسخ: 
آدرس صفحه درج نشده؟! برای دستورات شرطی IE لطفا در وب عبارت "دستورات شرطی مخصوص مرورگر IE" را جستجو کنید.
نویسنده: sajjad parhizkar
زمان: ۱۱:۵۵:۰۳ - تاریخ: ۱۳۹۳/۱۰/۳۰
سلام باز من مزاحم شدم و به شما احتیاج دارم. شرمنده
ببخشید من مثل شما حرفه ای نیستم و دانشجوی نرم افزار تازه واردم.
من الان قالب سایتمو با css , html ساختمش اما یه سوال برام پیش اومده اساسی .
به نظر شما من هاست بخرم بعد از وردپرس استفاده کنم یا یک راست از زمپ ؟؟؟؟؟؟؟ به خدا دقیقا نمیدونم ازکجاش شروع کنم تجربه ندارم. اما به این مرحله که رسیدم توش موندم . یه کمی به خودم سخت میگیرم . ولی اصلا منظور از زمپ و نفهمیدم . اما کمکم کنید ممنونم از شما .
پاسخ: 
برای یادگیری نیازی به خرید هاست آنلاین نیست، نرم افزارهایی برای شبیه سازی محیط سرور در سیستم (لوکال هاست) وجود دارند که یکی از آنها برنامه XAMPP است، نرم افزار مناسب دیگر برنامه Wamp Server است (توصیه می کنیم)، با نصب و فعالسازی این قبیل برنامه ها، می توانید بدون اتصال به اینترنت از طریق مرورگر خود سایتتان را در localhost (یعنی در محیط سیستم عاملتان) پیکربندی و فراخوانی کنید.
نویسنده: داوود
زمان: ۰۸:۳۳:۵۳ - تاریخ: ۱۳۹۴/۰۳/۱۰
سلام آقای مهندس، وقتتون بخیر و سپاسگزارم که مطالب خوب و کاربردی رو در اختیار ما قرار میدین. آقای مهندس طبق اولویت بندی اگه بخوایم کار کنیم، ابتدا style های inline در اولویت بالاتری هستند. بعدش style بندی که در بالای صفحه html نوشته شده باشه و بعدش style خارجی که به صفحه import شده باشه. درست دارم میگم دیگه ، آره؟؟
اگه پاسخ مثبت هستش پس چرا الان در این شبه کد، که مثال خودتون هم هستش، در مورد رنگ فونت درست داره اولویت بندی رو کار میکنه ولی اگه بیایم و به body یه پس زمینه رنگی بدیم از همین طریق، انگار میره و از اولویت دوم یعنی css بالای صفحه استفاده میکنه و inline رو اعمال نمیکنه.
<style type="text/css" media="screen">
body{
background-color:#0099CC;
}
.mydiv{
text-align:justify;
direction:rtl;
color:#003366
}
</style>
<!-- http://webgoo.ir -->
</head>
<body bgcolor="#000000">
<div class="mydiv">
<font color="red">نمایش متن بدون استفاده از css</font>
</div>
</body>
</html>
پاسخ: 
- منظور از استایل، در واقع ویژگی style یک تگ HTML است نه مواردی مانند bgcolor و...، به عبارتی مقایسه در صورتی صحیح است که به تگ body به این صورت استایل اختصاص دهید:
<body style="background-color:#000000">
- در مورد اینکه چرا برای body از استایل پیروی شده و برای font خیر، به این علت است که وقتی از سلکتور body در استایل CSS خود استفاده می کنید، به صورت مستقیم شامل تگ body در HTML می شود، اما برای تگ font استایل مستقیمی تعریف نکرده اید (هرچند درون کلاس mydiv قرار دارد) و لذا خاصیت های خود HTML در اولویت قرار می گیرند، اگر برای تگ font به این صورت کدها را ویرایش کنید، متوجه تغییرات خواهید شد:
.mydiv font{
text-align:justify;
direction:rtl;
color:#003366
}
نکته: معمولا نیازی به استفاده از تگ font درون بلاک div نیست!
نویسنده: داوود
زمان: ۰۷:۵۸:۴۵ - تاریخ: ۱۳۹۴/۰۳/۱۱
سلام آقای مهندس عزیز، واقعا ممنون و خوشحال شدم از اینکه پاسختون رو در اواخر شب دیدم. یه دنیا ممنون و سپاس.
آقای مهندس برای اینکه مطلب بیشتر برام جا بیفته با اینجور که شما فرمودین، پس چون من به طور مستقیم تگی رو در css ننوشته بودم اونجوری بود. یعنی باید مثلا اینجوری بنویسیم که کل تگها رو در بر بگیره:
h1
font
span
و بعدش مقادیر مورد نظر رو طبق معمول {} بهش بدیم.
نکته ای که فرمودین معمولا نیازی به استفاده از تگ font درون بلاک div نیست، یعنی اینکه ما از h1 یا p یا span استفاده می کنیم این روزها، درست میگم؟؟ دیگه نیاز نیست که تگ فونت رو داخل div بنویسیم.
میشه نکته رو یه خورده بیشتر توضیح بدین؟؟ چون تو مثال شما اگه نیازی نباشه پس mydiv font . هم در واقع نباید به این شکل نوشته بشه. ببخشید.
پاسخ: 
بله، بر اساس اصول جدید وب توصیه می شود مواردی که مربوط به استایل و شکل ظاهری می شوند و با CSS قابل اعمال هستند، حتما به همین صورت استفاده شوند نه با کدهای HTML، در اینجا نیز می توان برای font از خاصیت های متفاوتی (بسته به نیاز) در CSS استفاده کرد (در قالب کلاس، آی دی و...)، از جمله font-family، font-size، color و... و لذا نباید از این تگ استفاده کرد.
نویسنده: داوود
زمان: ۰۸:۲۳:۱۸ - تاریخ: ۱۳۹۴/۰۳/۱۱
سلام آقای مهندس، صبحتون بخیر و شادی؛
استاد در خصوص ارث بری و اینکه نحوه صحیح کد نوشتن تو css به چه نحوی باشه یه خورده دارم گیج میشم. امکانش هست یه راهنماییم بکنید یا اینکه ادامه درسها رو بخونم کاملا میفهمم.
ببینید الان در این کد:
.mydiv span{

}
منظورمون اینه که کلیه تگهای span ای که داخل کلاس mydiv هستند رو تحت تاثیر قرار بده.
حالا در این یکی:
.mydiv .span{

}
کلاس mydiv با یک فاصله از کلاس span جدا شده!
منظورمون اینه که تگهایی رو تحت تاثیر قرار بده که داخل کلاس span هستن و باز خود span داخل کلاس mydiv هستش.
حالا اگه بدون فاصله باشن؛ یعنی اینجوری:
.mydiv.span{

}
منظورمون اینه که اگه کد html ای شامل هر دو کلاس بود، اون رو تحت تاثیر قرار بده، یعنی کد html مون اینجوری باشه:
<div class="mydiv span">
راستش رو بخواین دارم تو این قضیه ها گیج میشم. البته بازم اگه راستش رو بخواین من هنوز مطالب css سایت رو کامل نخوندم و میخوام هر روز حدالامکان دروس رو بخونم.
البته دیروز تو پرسش و پاسخهایی که دیدم و تست کردم به یه نکته خیلی جالبی برخوردم که شاید خیلی از دوستان ندونسته باشن که بعد از پاسخ به این سوال اون رو هم براتون مطرح می کنم.
آقای مهندس واقعا از دروس شما و بخصوص پرسش و پاسخهای شما ممنون و متشکرم. خیلی کاربردی و عالی هستن.
در خصوص همین قضیه فرزند و پدری و نحوه اعمال صحیح کدهای css ممنون میشم اگه منبعی رو نیز سراغ دارین برام معرفی کنین.
ببخشید زیاد مطلب نوشتم. عذرخواهی می کنم.
پاسخ: 
برداشت شما صحیح است، ضمن اینکه برای اعمال یک استایل برای چندین کلاس می توان از حالت زیر استفاده کرد:
.mydiv, .span{

}
در خصوص منبع لطفا در خصوص هر موضوعی که نیاز به اطلاعات بیشتر دارید، در وب (به فارسی و انگلیسی) جستجو کنید.
نویسنده: داوود
زمان: ۰۸:۱۳:۴۹ - تاریخ: ۱۳۹۴/۰۳/۱۲
سلام آقای مهندس؛
صبحتون بخیر و خوشی انشاالله؛ خیلی ممنونم که به سوالای من پاسخ میدین. دستتون درد نکنه و یه دنیا تشکر. آقای مهندس یکی از دوستان در خصوص + و ~ سوالی پرسیده بود که شما فرموده بودین، + سخت گیرتره و فقط به عنصر بعد از تگ مورد نظر اعمال میشه ! من به نکته ی بنظرم خیلی جالبی برخورد کردم. شما میدونستین بالا یا پایین تر نوشتن این دو تا کد میتونه روی خروجی تاثیر بذاره؟؟؟ من واقعا نمیدونستم و میگن این موضوعی است به نام ارجحیت در css. واقعا جالب بود برام. آیا شما در این باره چیزی شنیده بودین؟؟
تو این آدرس یه مثال گذاشتم:
http://www.cssdesk.com/CABmJ
حالا شما اگه جای
h1~p{
color:yellow;
font-size:28px;
}
رو با
h1+p{
color:blue;
font-size:20px;
}
عوض کنین، شاهد خروجی متفاوتی خواهید بود.
واقعا چرا اینجوری میشه؟؟
البته من همون روز یه مقاله پیدا کردم که براتون میذارم،
البته اگه شما هم مطلب دیگه ای داشتین ممنون میشم در اختیار ما مبتدی ها بزارین.
http://front-end.ir/ui/css-specificity
بازم ممنون و سپاسگزارم ازتون آقای مهندس عزیز.
پاسخ: 
به طور کلی در CSS زمانی که برای یک عنصر مشابه (تگ، کلاس، آی دی و...) چند بار تکرار صورت می گیرد (در مثال شما استایل تگ h1)، بر اساس نحوه تفسیر مرورگر، آخرین دستورات کاربر در اولویت هستند و عموما زمانی از موارد مشابه مقدم تر پیروی می شود که در آخرین دستور چنین خاصیتی تعریف نشده (به فرض در یک مورد color باشد و در دیگری خیر) یا نوع دستور متفاوت باشد (این یک اصل کلی است، در طراحی واقعی معمولا نیاز چندانی به استفاده از عناصر مشابه نیست و جنبه کاربردی زیادی ندارد!)
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ کوتاه و مختصر داده خواهد شد!
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.





3 × 6
 refresh
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form مهدی
در:
سلام من از کد زیر استفاده کردم ولی وقتی که اعمال میشه کل css های سایتم میپره.. چه باید بکنم
۰۹:۵۵:۵۰ ۱۳۹۹/۰۴/۲۳

form سلماسی
در:
سلام ایا اگر از وبسایت شخصی کسی بازدید کنیم صاحب وبسایت شماره ی ما را می بیند
۲۱:۳۱:۵۳ ۱۳۹۹/۰۴/۲۲

form mahdi
در:
سلام استاد اگه براتون زحمتی نیست یه نگاه دیگه بهش بندازید ، الان ریموو ادیت درست هستن فقط برای نمایش کلیشون که وقتی رفرش میکنیم...
۱۹:۱۳:۱۵ ۱۳۹۹/۰۴/۲۲

form mahdi
در:
سلام استاد عزیز ، میتونید یه نمونه که فقط با جاوا اسکریپت کار شده نه با فریمورکاش بهم معرفی کنید ببینم؟ من هرچی گشتم پیدا...
۱۴:۴۶:۲۴ ۱۳۹۹/۰۴/۲۲

form mahdi
در:
سلام استاد عزیز و گرامی ، یه دفتر چه یادداشت با localstorage میخوام بنویسم ولی مشکل دارم، دو تا سوال دارم ممنون میشم راهنماییم...
۱۲:۰۵:۰۷ ۱۳۹۹/۰۴/۲۲

form اریا
در:
سلام و درود بزرگوار چه دستوری باید بنویسیم تا فقط مقدارهای خاصی از ارایه بتونیم نمایش بدیم. مثلا یک ارایه 6 خونه ای...
۱۶:۴۷:۳۱ ۱۳۹۹/۰۴/۲۰

form کافه کتاب
در:
سپاس خیلی وقت بود دنبالش بودم مرسی از سایت عالیتون
۱۴:۵۱:۴۳ ۱۳۹۹/۰۴/۲۰

form سجاد
در:
دمتون گرم. خیلی زحمت کشیدید
۱۳:۴۳:۱۱ ۱۳۹۹/۰۴/۲۰

form KhashayarPrk
در:
سلام. میخوام الگو تمام کلمات داخل پرانتز رو بدون پرانتز بریزه ارایه با این کد فقط یک پرانتز رو جواب میده.
۱۳:۱۳:۴۷ ۱۳۹۹/۰۴/۲۰

form Oliver
در:
چطوری دستور background رو برای جدلمون عکسش رو تنظیم کنیم و بهش طول و عرض بدیم
۱۶:۰۷:۱۷ ۱۳۹۹/۰۴/۱۸

form محمد
در:
با عرض سلام ببخشید چطوری میتونم واسه اشتراک کاربر انقضا بزارم مثلا یک ماه داخل دیتابیس ردیف تایم رو درست کردم البته تاریخ رو تبدیل...
۱۹:۱۴:۵۹ ۱۳۹۹/۰۴/۱۵

form آیدا
در:
سلام من در حال طراحی با html هستم اما طبق فیلم آموزشی پیش میرم از یه جایی به بعد هم تغییرات اعمال نمیشه...
۲۲:۴۷:۴۴ ۱۳۹۹/۰۴/۱۴

form علی
در:
سلام اگه میشه یه تکه کدی بفرستید که کاربر نتونه عکس مورد نظر رو دانلود کنه و با نگه داشتن روی عکس فقط لینکو ببینه...
۰۹:۳۰:۴۹ ۱۳۹۹/۰۴/۱۴

form sina2000
در:
با سلام و خسته نباشید طبق کد زیر استفاده میگه متغیر Pdc برای PDO است لطفا نمونه کد برای لایبرری...
۱۵:۰۳:۵۱ ۱۳۹۹/۰۴/۱۳

form محمد امین
در:
سلام ممنون از مطلبتون ببخشید من یه سایتی با شی گرایی کامل زدم الان میخوام آدرسشو بهینه کنم آدرس الان من به این صورته:...
۱۸:۲۸:۲۴ ۱۳۹۹/۰۴/۱۱
form ترنم
در:
سلام وقتتون بخیر ببخشید من کدهای مربوط منو و زیر منو رو نوشتم ولی موقع اجرا منوی اصلی رو میاره ولی زیر منوها رو...
۱۱:۰۶:۲۹ ۱۳۹۹/۰۴/۱۱
form ا
در:
سلام چرا وقتی مطالب مربوط که تو وبلاگم هست رو جستجو میکنم نمیاره ؟؟؟
۲۰:۳۱:۰۸ ۱۳۹۹/۰۴/۰۷
form amir
در:
سلام من اگه بخوام با وارد کردن یه id داخل یک text کل اون ردیف پاک بشن باید چه کنم مثلا یک text دریافت میکنم...
۰۱:۴۸:۰۵ ۱۳۹۹/۰۴/۰۷
form محمدباقر حسیبیان
در:
من این مشکل برام پیش اومده که موقع ورود به پروژه م توی لوکال هاست wamp صفحه سفیده و هیچی رو نشون نمیده و کد...
۱۶:۴۲:۳۸ ۱۳۹۹/۰۴/۰۶
form ...
در:
سلام دو سایت نوشته ای مربوط به من رو چند سال قبل لینک دانلود قرار دادن من ازشون خواستم بردارنش ولی اینکارو نکردن سایت...
۱۷:۲۶:۴۲ ۱۳۹۹/۰۴/۰۵
form مجتبی
در:
سلام میشه یک کد جاوا رو به php تبدیل کرد تا لود سایت سریع تر بشه؟
۱۳:۰۴:۲۳ ۱۳۹۹/۰۴/۰۴
form متین
در:
سلام ؛ من تازه شروع به یادگیری کردم ؛ مطلب بسیار کاربردی بود ؛ ممنون از شما دوست عزیز.
۰۱:۵۰:۰۵ ۱۳۹۹/۰۴/۰۴
form mahdi
در:
سلام استاد عزیز و گرامی امیدوارم که حالتون خوب باشه ، اگه براتون ممکنه لطفا یه آموزش خوب در زمینه وردپرس بهم معرفی کنید ،...
۲۱:۴۸:۱۳ ۱۳۹۹/۰۴/۰۳
form امید
در:
در برنامه نویسی کاربر با چه دستوری میتواند به صفحه اصلی برگردد
۱۹:۰۶:۵۶ ۱۳۹۹/۰۴/۰۳
form ali
در:
با سلام من یک پروژه طراحی کردم میخوام که وقتی کاربر روی ادامه مطلب کلیک کرد در خود صفحه بقیه مطالب را ببینه...
۱۸:۴۷:۲۲ ۱۳۹۹/۰۴/۰۳
form علی
در:
سلام و تشکر از زحمات ارزشمند شما احتراما بنده امروز از یک شماره تلفن ثابت از طریق یک رایانه و یک موبایل به طور...
۱۸:۰۱:۱۰ ۱۳۹۹/۰۴/۰۳
form oscar
در:
درود. اگر بخوایم در نمایش تاریخ و زمان که به صورت لحظه ای خودش در صفحه رفرش میشه، فقط عبارت " Mon Jun 22 2020...
۱۵:۵۹:۳۲ ۱۳۹۹/۰۴/۰۲
form علی
در:
با سلام چطور میشه فقط یک صفحه مورد نظرمون رفرش بشه نه همه صفحات سایت
۰۰:۰۳:۴۱ ۱۳۹۹/۰۳/۳۱
form Farzad
در:
الان وقتی فایل رو میخواد دانلود بکنه از خودش فایل میسازه ، به این صورت یعنی بعد از پوشه file هر پوشه ای باشه...
۱۸:۵۶:۲۱ ۱۳۹۹/۰۳/۳۰
form Farzad
در:
سلام ، خسته نباشید من فایل هایی که در هاست میزارم به این شکل هست: یعنی مشخص نیست فایل ها تو چه پوشه...
۱۳:۳۳:۴۰ ۱۳۹۹/۰۳/۳۰
form شیما طیبی
در:
سلام خیلی مطلب مفیدی بود . همیشه به وبلاگ نویسی به چشم یه کار خسته کننده نگاه میکردم ولی خب یه مقدار نظرم تغییر کرد....
۲۳:۵۲:۳۲ ۱۳۹۹/۰۳/۲۹
form احسان
در:
سلام من یک کد اسکریپت دارم که به صورت عددی تبدیل شده است. میخواستم بپرسم چطوری میتونم اسکریپت به حالت اولیه نوشته شده برگردانم و...
۲۱:۰۲:۱۳ ۱۳۹۹/۰۳/۲۷
form علی
در:
ممنون از پاسختون اما روش بالا جهت دانلود فایل کاربرد داره . من میخواستم به صورت استریم ویدئو پخش بشه اما آدرس مستقیم ویدئو...
۰۰:۳۷:۴۶ ۱۳۹۹/۰۳/۲۷
form محمد
در:
سلام مجدد ببخشید طبق فرمایش شما من در دیتابیس جدولی ساخته بودم فقط مشکلم اینجاست چطوری میتونم توسط کوکی یا سیشن با تابع دیت انقضا...
۲۲:۳۸:۰۳ ۱۳۹۹/۰۳/۲۵
form محمد
در:
با عرض سلام ببخشید چطوری میشه واسه اشتراک خریدن زمان ۱ ماهه گذاشت که بعد از گذشت ۱ ماه پیام بده دوباره اشتراک تهیه کنید...
۱۳:۱۳:۵۵ ۱۳۹۹/۰۳/۲۵
در انتظار بررسی: ۴