نظرسنجی
بیشترین استفاده شما از اینترنت در چه زمینه ای است؟






 
خروجی RSS

طراحی لوگوی مرورگر اپرا با CSS 3.0


15 فروردین 1389
اگر از علاقه مندان به طراحی وب باشید احتمالا از نسخۀ جدید CSS و خصوصیات فوق العاده ای که به آن اضافه شده است مطلع هستید. در یکی از آموزش های قبل (ساخت گالری عکس) 2 خصوصیت از CSS 3.0 به صورت ساده معرفی شد. در این مقاله نیز دو خصوصیت دیگر به همراه ساخت طرحی به مراتب جذاب تر از قبل معرفی خواهد شد. بله این طرح همانطور که در تصویر زیر مشاهده می کنید، ساخت لوگوی مرورگر اپرا، تنها با استفاده از خصوصیات CSS 3.0 و بدون استفاده از هیچ تصویری است.
 
opera07

 در ابتدای کار عرض کنم که IE را از انجام این کار کلا معاف بفرمایید، اپرا نیز به صورت کامل قادر به نمایش این کار نیست و تنها firefox 3.6، safari 4.0 و chrome 5 به خوبی از خصوصیات مورد استفاده در این آموزش پشتیبانی می کنند.

opera01
 
بعد از توضیحات اولیه کار خود را شروع می کنیم. تمام کد html این کار به صورت زیر است و تنها از عنصر div در آن استفاده شده است:
<div id="opera-logo">
    <div class="light-shadow"></div>
    <div class="dark-shadow"></div>
    <div class="outer-edge"></div>
    <div class="highlight"></div>
    <div class="fill"></div>
    <div class="inner-edge"></div>
    <div class="inner"></div>
    <div class="ring"></div>
</div>
حالا شروع به استایل دهی تگ ها می کنیم، خصوصیات جدید نیز در حین آموزش معرفی خواهند شد:
#opera-logo
{
    margin: 0 auto;
    width: 500px;
    height: 550px;
    position: relative;
}
#opera-logo div
{
    position: absolute;
}
برای اینکه div ها را در داخل div والد موقعیت دهی کنیم، به عنصر والد position: relative و به کلیۀ div های داخلی خصوصیت position: asbsolute نسبت داده شده است.
 
برای ایجاد سایۀ زیر لوگو از دو تگ div استفاده شده که یکی قسمت تاریک سایه و دیگری قسمت روشن تر سایه را ایجاد می کند، استایل مربوط به قسمت روشن سایه به صورت زیر است:
#opera-logo .light-shadow
{
    width: 300px;
    height: 50px;
    left: 100px;
    top: 350px;
    -moz-border-radius: 200px/50px;
    -webkit-border-radius: 200px 50px;
    border-radius: 200px/50px;
    -moz-box-shadow: 0 100px 30px #c9c9c9;
    -webkit-box-shadow: 0 100px 30px #c9c9c9;
    box-shadow: 0 100px 30px #c9c9c9;
}
از قسمت موقعیت دهی المان که بگذریم به خصوصیت border-radius که یکی از خصوصیات جدید CSS 3.0 است می رسیم. این خصوصیت برای ایجاد گوشه های گرد کاربرد دارد. کاری که قبلا توسط تصاویر انجام میشد، در CSS 3.0 با این خصوصیت به راحتی قابل انجام است.
 
شرکت موزیلا خصوصیات جدید رو با پیشوند moz- برای فایرفاکس آماده کرده است، همچنین کروم و سافاری هم به دلیل استفاده از موتور وبکیت، از پیشوند webkit- استفاده می کنند. ناگفته نماند که اپرا 10.5 از خصوصیت border-radius بدون هیچ پیشوندی پشتیبانی می کند.
 
چهار خصوصیت دیگر برای گرد کردن گوشه های خاص به این شکل هستند:
border-radius-topright
border-radius-bottomright
border-radius-bottomleft
border-radius-topleft
 
opera02
 
نکتۀ قابل ذکر در کلاس light-shadow، به کارگیری این خصوصیت با دو مقدار و یک / در بین آن ها است. مقدار سمت چپ نشان دهندۀ تعداد پیکسلی است که در راستای محور افقی باید گرد شود و مقدار دوم تعداد پیکسل در راستای محور عمودی می باشد (این مورد رو خودتون تست کنید تا بهتر متوجه بشید)، در واقع به این شکل می توان المان هایی به شکل بیضی یا دایره ایجاد کرد. نکتۀ دیگر هم اینکه برای webkit نیازی به آوردن / نیست و به جای آن کافی است از یک space استفاده کنید.
 
خصوصیت دیگر مورد استفاده box-shadow می باشد که برای المان مورد نظر سایه ایجاد می کند. این خصوصیت در آموزش ساخت گالری عکس نیز مورد استفاده قرار گرفت، بنابراین توضیحات داده شده در آن مقاله را همین جا ذکر می کنم:
 
Box-shadow چهار پارامتر دریافت می کند که به صورت زیر است:
 
box-shadow: x-offset  y-offset  blur-radius  color
 
x-offset: این پارامتر میزان انحراف سایه را در راستای افقی بر اساس پیکسل مشخص می کند.
 
y-offset: این پارامتر میزان انحراف سایه را در راستای عمودی بر اساس پیکسل مشخص می کند.
 
blur-radius: این پارامتر میزان محو شدگی از لبه های سایه را تعیین می کند.
 
color: این گزینه هم برای تعیین رنگ سایه به کار می رود.

نمونه ای از ایجاد سایه توسط این خاصیت را در تصویر زیر مشاهده می کنید:

gallery04

 خصوصیات قسمت سایه تاریک (کلاس dark-shadow) نیز به این شکل است:

#opera-logo .dark-shadow
{
    width: 200px;
    height: 50px;
    left: 150px;
    top: 350px;
    -moz-border-radius: 200px/50px;
    -webkit-border-radius: 200px 50px;
    border-radius: 200px/50px;
    -moz-box-shadow: 0 100px 30px #535252;
    -webkit-box-shadow: 0 100px 30px #535252;
    box-shadow: 0 100px 30px #535252;
    border: 1px solid #000;
}
دو سایه را به گونه ای موقعیت می کنیم که بر روی هم قرار گیرند. با توجه به توضیحات ارائه شده در مورد box-shadow، در اینجا سایه ما در راستای افقی جابجایی ندارد اما در راستای عمودی 100 پیکسل پایین تر از خود div قرار دارد. طرح ما تا اینجا به صورت زیر خواهد بود، البته به div ها boder دادم تا کاملا مشخص باشد (بعد از تست border ها را حذف کنید):
 
opera03
 
بعد از ایجاد سایه شروع به ساخت خود لوگو می کنیم، خصوصیات مربوط به کلاس outer-edge که قسمت کروی لوگو را تشکیل می دهد به این شکل است:
#opera-logo .outer-edge
{
    width: 400px;
    height: 430px;
    left: 50px;
    top: 60px;
    -moz-border-radius: 330px/350px;
    -webkit-border-radius: 330px 350px;
    border-radius: 330px/350px;
    background: #800;
    background: -moz-linear-gradient(-90deg, #FE878A, #E71616 50%, #800000 80%, #800000 85%, #b80304);
    background: -webkit-gradient(linear, left top, left bottom, from(#FE878A),
                                 color-stop(50%, #E71616), color-stop(80%, #800000),
                                 color-stop(85%, #800000), to(#b80304));
}
با دادن مقدار 330px در راستای افقی و 350px در راستای عمودی به خصوصیت border-radius قسمت کروی لوگو را ایجاد می کنیم. پارامتر جدید در این قسمت خصوصیت مربوط به Gradient است که یک شیب رنگ را برای ما ایجاد می کند.
 
برای ایجاد شیب رنگ، mozilla و webkit دو سینتکس متفاوت دارند که در ادامه توضیح خواهم داد.
 
-moz-linear-gradient در موزیلا به عنوان یه مقدار برای خصوصیت background/background-image به کار می رود و یک شیب رنگ خطی را ایجاد می کند. پارامتر های این خصوصیت به این شکل می باشند:
 
 
-moz-linear-gradient([<point>|<angle>],<color>,<color>,...,<color>]);
 
 
<point>: این پارامتر مکان شروع شیب رنگ را مشخص می کند. در واقع معادل background-position است که می تواند مقادیر top, bottom, left, right, center را بگیرد. همچنین به جای این مقادیر می توان از مقادیر درصدی و یا پیکسلی نیز استفاده کرد.
 
<angle>: این پارامتر زاویۀ شیب رنگ را مشخص خواهد کرد.
 
<color>: رنگ های شیب رنگی ما توسط این پارامتر تعیین می شوند، به شکلی که <color> اول رنگ ابتدا و <color> آخر رنگ انتها را مشخص می کند. در این بین نیز می توان از رنگ های دیگری استفاده کرد و آن ها را با کاراکتر "," از هم جدا نمود. در ادامۀ رنگی که تعیین می شود می توان موقعیت آن رنگ را در شیب رنگی تعیین کرد.

به مثال زیر توجه کنید:
 
opera04
background: -moz-linear-gradient(-45deg, red,orange 60%,blue);
 
در این مثال سه رنگ قرمز، نارنجی و آبی برای شیب رنگ مشخص شده است. زاویۀ شیب رنگ نیز 45- درجه است که باعث می شود شیب ما از گوشه سمت چپ بالا شروع و به گوشه سمت راست پایین ختم شود. به جای مقدار 45deg- می توان از top left برای تعیین موقعیت استفاده کرد که باز هم همین نتیجه به دست می آید.
 
نکته قابل ذکر دیگر این است که بعد از رنگ نارنجی مقدار %60 قرار گرفته است. این مقدار مشخص می کند که رنگ نارنجی باید در چه مکانی قرار گیرد. مثلا اگر به جای 60، مقدار 50 درصد بدهیم، رنگ نارنجی ما در راستای قطر مربع قرار خواهد گرفت. همچنین به جای مقادیر درصدی از مقادیر px، em و ... هم می توان بهره برد.
 
اما در مورد webkit دستور کلی به صورت زیر است:
 

-webkit-gradient(<type>, <point>, <point>, from(color), color-stop(<point>, color), to(color));

 
<type>: نوع Gradient را تعیین می کند که می تواند linear باشد یا radial. (در مورد radial در این مقاله صحبت نخواهد شد و در صورت تمایل خودتان جستجو کنید)
 
<point>: همانند موزیلا.
 
(from(color: رنگ ابتدایی برای Gradient را تعیین می کند.
 
(color-stop(<point>, color: رنگ های میانی برای gradient در webkit توسط این تابع مشخص می شوند. قسمت <point> موقعیت قرار گیری رنگ (همانند موزیلا) و color خود رنگ را مشخص می کند.
 
(to(color: رنگ انتهایی را در Gradient مشخص می کند.
 
به مثال زیر توجه کنید:
 
opera05
background: -webkit-gradient(linear, left center, right center, from(blue), color-stop(50%, red), to(yellow));
 
خوب فکر می کنم با توضیحات ارائه شده، خصوصیات CSS کلاس outer-edge به خوبی واضح باشد.
اگر نگاهی به کار خود تا انجا بیاندازیم، به این صورت خواهد بود:

opera06
سایر کلاس ها نیز خصوصیت جدیدی ندارند و تنها با تغییر اندازه div ها و ایجاد دایره های داخلی سبک های خاصی را ایجاد می کنند. مثلا کلاس highlight همانند کلاس outer-edge است اما کمی ارتفاع div و رنگ gradient در آن تغییر یافته است. به همین دلیل از توضیحات اضافی در مورد دیگر کلاس ها خودداری می کنم. خصوصیات دیگر کلاس ها:
#opera-logo .highlight
{
    width: 400px;
    height: 427px;
    left: 50px;
    top: 63px;
    -moz-border-radius: 330px/350px;
    -webkit-border-radius: 330px 350px;
    border-radius: 330px/350px;
    background: #d40009;
    background: -moz-linear-gradient(-90deg, #FCC, #E71616 50%, #d40009);
    background: -webkit-gradient(linear, left top, left bottom, from(#FCC),color-stop(50%, #E71616), to(#d40009));
}
#opera-logo .fill
{
    width: 400px;
    height: 420px;
    left: 50px;
    top: 70px;
    -moz-border-radius: 330px/350px;
    -webkit-border-radius: 330px 350px;
    border-radius: 330px/350px;
    background: #E71616;
    background: -moz-linear-gradient(-90deg, #FE878A, #E71616 50%, #800000 80%, #800000 85%, #b80304);
    background: -webkit-gradient(linear, left top, left bottom, from(#FE878A),
                    color-stop(50%, #E71616), color-stop(80%, #800000),
                    color-stop(85%, #800000), to(#b80304));
}
#opera-logo .inner-edge
{
    width: 150px;
    height: 350px;
    left: 175px;
    top: 100px;
    -moz-border-radius: 110px/250px;
    -webkit-border-radius: 110px 250px;
    border-radius: 110px/250px;
    background: #d20000;
    background: -moz-linear-gradient(-90deg, #cc3836, #d9100f 50%, #d20000);
    background: -webkit-gradient(linear, left top, left bottom, from(#cc3836),
                color-stop(50%, #d9100f), to(#d20000));
}
#opera-logo .inner
{
    width: 144px;
    height: 344px;
    left: 178px;
    top: 103px;
    -moz-border-radius: 110px/250px;
    -webkit-border-radius: 110px 250px;
    border-radius: 110px/250px;
    background: #b80000;
    background: -moz-linear-gradient(-90deg, #9a0000, #b80000);
    background: -webkit-gradient(linear, left top, left bottom, from(#9a0000), to(#b80000));
}
#opera-logo .ring
{
    width: 120px;
    height: 320px;
    left: 190px;
    top: 115px;
    -moz-border-radius: 100px/250px;
    -webkit-border-radius: 110px 250px;
    border-radius: 100px/250px;
    background-color: #fff;
}
در نهایت با اعمال کلیه خصوصیات، طرح ما به شکل زیر در خواهد آمد:
 
opera07
 
 

download دانلود: کد html + css لوگوی اپرا

تعداد آراء: 15 رای
یادداشت ها
آریا
1389/01/16 - 19:58:00
از همه اساتید دانشجویان مهندسان وکلیه دوستانی که با رایانه سر و کار دارند خالصانه می خواهم به یاری من بشتابند واقعا یک مهندس کامپیوتر چه باید بداند؟یک مکانیک می داند باید ماشین را به کار بی اندازد آشپز می داند باید غذا تحویل دهد ولی یک مهندس کامپیوتر باید چه کند و چه تحویل دهد؟به عنوان مثال از برنامه #cچگونه استفاده کند که در بازار کار موفق باشد!کاش عمران خوانده بودم و به راحتی می دانستم باید خانه ای را به سر انجام برسانم,به قول آگهی تلویزیون هم اکنون نیازمند یاری سبزتان هستیم.
عماد:
سلام ببینید لزوما یک مهندس نرم افزار، برنامه نویس نیست. یکی قدرت تحلیل نرم افزاریش قویتره، یکی تحلیل و طراحی دیتابیس و یکی هم برنامه نویسیش و ... شما توی هر کدوم از اینا متخصص باشی مطمئنا جذب بازار کار میشی. انا در مورد زبان #C، برای یادگیری این زبان پیشنهاد می کنم ابتدا یک کتاب بخونی که ترجیحا انگلیسی خیلی بهتره. بعد از اون دستت میاد که باید چیکار کنی و اصلا برنامه های ویندوزی کار کنی یا وب. اما به هر حال هر چقدر اطلاعات شما بیشتر باشه مسلما از رقبای خودتون جلوترید و بهتر میتونید فعالیت کنید. موفق باشید :08
saman
1389/01/19 - 22:29:00
سلام آیا مایل به تبادل لینک با وب سایت دانلود تک هستید www.downloadtak.com در صورت تمایل از طریق نظرات سایت نام لینک پیشنهادی خود را بگید تا لینک کنم سپس ما لینکمون را به شما اعلام میکنیم با تشکر مدیریت سایت
ElectRobot
1389/01/21 - 21:14:00
سلام دوست عزیز وب سایت جامعی در مورد کامپیوتر ارائه کرده اید. از مطلب CSS 3 هم ممنون. دوست من می خواستم اگر مایل به تبادل لینک با وب سایت من هستی من را با عنوان ( پروژه و آموزش دانشجویی ) در وب سایت خود لینک نمایید و به من اطلاع دهید تا شما را با چه نامی لینک نمایم. pagerank = 2 اگر تمایل داشتید تقاضا دارم تا بعضی از مطالب شما را در وب سایت خود با منبع شما قرار دهم. با تشکر وب سایت : http://www.electrobot.org انجمن سایت : http://porojesara.ir
vahid1990
1389/02/01 - 18:36:00
salam khaste nabashi .computere man vaghti safhe mozila baz mishe vaghti safhe web ro bala va paeen mikonam boride boride neshon mide .chi kar konam?????????????? :09 :14
مجید
1389/02/02 - 18:34:00
سلام دوست من سایت مفید و خوب داری لذت بردم اگه با سایت من که پیج 3 داره تبادل می کنی لطفا با نام عکس لینک کن و خبرم کن لینکت کنم منتظرت هستم. http://bo2aks.com
امیر
1389/02/05 - 17:44:00
تمایل به تبادل لینک با سایت شما را دارم در صورت موافقت بنده را بانام علمی,کتاب,مجله,مقاله,خبری,برنامه,جزوه,هک یا قسمتی از آن http://oonieknafar.blogfa.com لینک کرده سپس به من خبردهید تا شما را باچه نامی لینک کنم با تشکر ستوده
مهرداد
1389/02/11 - 12:03:00
با سلام از سايت خوب شما دوست عزيز ما براي دومين باره داريم به شما ميگيم چرا لينك مارو قرار نمي ديد با تشكر
عماد:
سلام دوست عزیز شرایط تبادل لینک ذکر شده در اینجا: http://www.irpcn.com/link-exchange.html سایت شما هنوز پیج رنکی نداره :08 WWW.2M-SOFT.VCP.IR
abolfazl
1389/02/14 - 21:46:00
salam matalebe khobi dari www.sandownload.com دانلود آسان و رايگان با سان دانلود ba tabadole link movafeghi? jahat tabadole link bad az sabte linke man behem etela bede ta shoma ro linke konam ba tashakor
سعید شعبانی
1389/02/16 - 17:31:00
سلام عماد جان. خوبی؟ دستت درد نکنه! آپدیت ها عالی بود. ولی بالاخره اون لباستو به ما ندادی هاااااا. دمت گرم :06 راستی کسی آشنا داری که دامین و ... بده؟؟ برای وبلاگ گروهی خودمون می خوایم. khatme-ghoran.blogfa.com اگر پسوند ir باشه خیلی عالیه.
عماد:
سلااااااااااااااااام :06 افتخار دادی داش سعید، از این ورا؟ :06 خواهش میکنم، وظیفست :08 ولی بلاخره تو هم خبر داری که ما رو کچل کردی؟ :06 در مورد دامین والا آشنا ندارم، خودمم همین جوری ثبت کردم اما اگه جای معتبر ثبت کنی مشکلی پیش نمیاد. در مورد جاش بگو بعدا بهت بگم اگه خواستی. بسییییییییی خوشحال شدیم :08
نیما اشرفی
1389/02/27 - 13:05:00
سلام دوست عزیز سایت خوبی داری به وبلاگ من هم سر بزن خوشحال میشم اگه مایل به تبادل لینک هستی منو با اسمه \" جدیدترین خبرهای کامپیوتر - اینترنت -موبایل \" لینک کن اگه دوست داشتی لینکت کنم/ فقط یه نظر بده تا لینکت کنم موفق باشی با تشکر - نوسنده وبلاگ http://classicnima.blogfa.com
نرگس
1389/06/09 - 22:51:00
خيلي خوب بود
یادداشت خود را ثبت کنید



کد امنیتی:    =
loader
در حال ارسال - چند لحظه صبر کنید...