قانون font-face@ در CSS3
تا قبل از CSS3 طراحان وب باید از فونت هایی استفاده می کردند که روی سیستم کاربر نصب شده بود.
با استفاده از CSS3 می توانید هر فونتی را که می خواهید استفاده نمایید.
فقط کافی است فونت مورد نیازتان را روی سرور آپلود کنید و نوشتن خود را با فونت مورد علاقه تان آغاز کنید. هر جا که نیاز به فونت باشد بصورت خودکار، دانلود می شود.
فونت های شما با استفاده از قانون font-face@ در CSS3 تعریف می شوند.
پشتیبانی مرورگرها
خاصیت | پشتیبانی مرورگرها | ||||
---|---|---|---|---|---|
@font-face | ![]() | ![]() | ![]() | ![]() | ![]() |
مرورگرهای Internet Explorer 9+, Firefox, Chrome, Safari, Opera فونت های از نوع WOFF یا (Web Open Font Format) را پشتیبانی می کنند.
مرورگرهای Chrome, Safari, Opera فونت های از نوع TTF یا (True Type Fonts) و OTF یا (OpenType Fonts) را پشتیبانی می کنند.
همچنین مرورگرهای Chrome, Safari, Opera فونت های SVG را پشتیبانی می کنند.
همچنین Internet Explorer فونت های EOT یا (Embedded OpenType) را پشتیبانی می کند.
توجه: Internet Explorer 8 به پایین از font-face@ پشتیبانی نمی کند.
استفاده از فونت های مورد علاقه تان
با استفاده از قانون font-face@ ابتدا باید یک نام برای فونت خود مشخص نمایید (مثلاً myFirstFont) و سپس آنرا به فایل فونتی که قبلاً آپلود کرده اید هدایت کنید.
![]() | نکته: برای فونتِ URL، از حروف کوچک استفاده نمایید. استفاده از حروف بزرگ در IE می تواند نتیجه های متفاوت و غیر منتظره ای داشته باشد. |
---|
برای نسبت دادن یک فونت به یک عنصر، باید از خاصیت font-family استفاده کنید:
مثال (فونت در CSS3)
@font-face
{
font-family: myFirstFont;
src: url(sansation_light.woff);
}
div
{
font-family:myFirstFont;
}
</style>
ضخامت (Bold) فونت در CSS3
باید نسخه درشت فونت خود را که شامل توضیحاتی برای Bold کردن متن است، اضافه نمایید:
مثال (فونت در CSS3)
{
font-family: myFirstFont;
src: url(sansation_bold.woff);
font-weight:bold;
}
فایل "Sansation_Bold.woff" یک فایل دیگر است که شامل کاراکترهای Bold برای فونت Sansation است.
مرورگرها از این فایل زمانی استفاده می کنند که یک قطعه از متن با فونت "myFirstFont"، ضخیم (Bold) شده باشد.
در این روش شما می توانید، قوانین font-face@ زیادی برای یک فونت داشته باشید.
توصیف گر های فونت در CSS3
در جدول زیر، لیستی از تمام خاصیت هایی که می توان در قانون font-face@ تعریف کرد، آمده است:
توصیف گر | مقدار | توضیحات |
---|---|---|
font-family | name | الزامی است. نام فونت را مشخص می کند. |
src | URL | الزامی است. URL فایل فونت را مشخص می کند. |
font-stretch | normal condensed ultra-condensed extra-condensed semi-condensed expanded semi-expanded extra-expanded ultra-expanded | اختیاری است. میزان کشیدگی کاراکترها را مشخص می کند. مقدار پیشفرض "normal" است. |
font-style | normal italic oblique | اختیاری است. سبک یا Style فونت را مشخص می کند. مقدار پیشفرض "normal" است. |
font-weight | normal bold 100 200 300 400 500 600 700 800 900 | اختیاری است. ضخامت فونت را مشخص می کند. مقدار پیشفرض "normal" است. |
unicode-range | unicode-range | اختیاری است. محدوده کاراکترهای UNICODE را مشخص می کند. مقدار پیشفرض "U+0-10FFFF" است. |
@font-face {
font-family: MyFont;
src: url(/../fonts/IRANSansWeb.woff);
}
body{
font-family: 'MyFont';
}
p.font
{
font-family:myfont;
}
@font-face
{
font-family:myfont;
src:url(Fonts/BYekan.woff);
font-size:60px;
}
کد درست اینه:
p.font
{
font-family:myf ont;
font-size:60px;
}
@font-face
{
font-family:myf ont;
src: url(/Fonts/B Yekan.woff);
}
منظور از این جمله که نوشتید "هر جا که نیاز به فونت باشد بصورت خودکار، دانلود می شود" چیه ؟
یعنی چی دانلود میشه واسه کی دانلود میشه ؟ متوجه نمیشم
مطمئناً تا به حال این تجربه رو داشتید یا شنیدید که شخصی فایل ورد یا PDF رو برای چاپ میبره. ولی وقتی تو سیستم دیگه اون فایل رو میبینه، فونتش با چیزی که تو سیستم خودش میبینه فرق داره. علت این امر این هست که در سیستم شما فونتی وجود داره که در سیستم اون شخص نیست.
در مورد وب هم همین مفهوم هست. هیچ تضمینی نداره سایتی از فونتی استفاده میکنه، اون فونت در تمامی سیستمهایی که افراد اون سایت رو مشاهده میکنن، وجود داشته باشه. برای اینکه سایت در تمامی سیستمها به یک شکل و فونت نمایش داده بشه، باید از درون خودش (سرور) اقدام به نمایش محتوا با اون فونت کنه. وقتی هم که شما اون سایت رو با اون فونت موردنظر میبینی، در واقع داری اون فونت رو از سرور دانلود میکنی.
منظور از دانلود خودکار فونت همینه!!!
اگر دقت کنی تو خیلی از سایتها تا زمانی که سایت کامل لود نشده، محتوا با فونت معمولی (tahoma) نشون داده میشه، و وقتی که لود سایت کامل شد (فونت موردنظر سایت رو سیستم شما دانلود شد)، محتوای سایت به صورت درست نمایش داده میشه.
برای زبان ایتالیایی از یکی از تگ های زیر در قسمت head صفحه استفاده کنید، احتمالا مشکل برطرف خواهد شد:
<meta charset="iso-8859-1">
یا
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
امکان داره بیشتر در مورد @font-face راهنمایی کنید یعنی باید مثل عکس هامون برای پروژه یک فولدر فونت هم بسازیم و فونت دلخواهمون رو توش کپی کنیم ؟ و بعد چیکار کنیم دیگه؟
اگر یک search ساده در اینترنت انجام بدید، می توانید مثلاً فایل های مربوط به فونت Yekan را دنلود کنید و بعد از اینکه آنها را در شاخه font قرار دادید، بصورتی که در بالا آموزش داده شده است، عمل نمایید.
ولی من وقتی فایل html و css پروژهمو جابجا میکنم خروجی به هم میریزه چیکار کنم میخواهم همونجور که گفتید شاخه style رو جدا کنم یعنی یک فولدر بسازم و فونتها و عکسها و فایل css رو داخلش بذارم شاید سوالام خیلی مبتدی باشه ولی نیاز به کمک شما دارم ! مرسی
فقط فایل های با فرمت woff قابل قبول هست ... تبدیل فونت هایی مثل BNazanin و ... به صورتی که قابل استفاده در صفحات وب باشد کار ساده ای نیست، در واقع تخصصی است.
قسمت دوم سوال:
زمانی که فایل های CSS را جابه جا می کنید، بدلیل اینکه آدرس فایل CSS تغییر می کند، دیگر روی صفحات HTML اعمال نمی شود ...
باید لینک به فایل CSS که در بالای تمام صفحات قرار دارد را اصلاح کنید، قسمت قرمز رنگ در کد زیر:<link rel="stylesheet" href="New_Address" type="text/css"/>
در ضمن توجه داشته باشید که عکس ها در یک فولدر جداگانه بنام images که در root اصلی پروژه است باید قرار داشته باشد.
desktop
dev
start up 1
(html,css,images,fonts)
الان root یعنی کجا؟ و اگر بخوام کلا پروژمو ببرم داخل یک درایو سیستم چیکار کنم؟