ورود

View Full Version : تغییر سایز فونت بر حسب طول نوشته



mohammaduir
یک شنبه 05 دی 1395, 09:01 صبح
سلام وقت بخیر.
من یک دیو دارم که توی این دیو یه متنی از بانک اطلاعاتی وارد میشه و هر بار ممکنه این متن یه چیزی باشه

مثلاً اگر اندازه این دیو 700px باشه؛ من میخام نوشته ای که توی این دیو می‌افته قشنگ فیتِ این دیو بشه. حالا اگر بعداً یه جمله کوتاه تر توش افتاد با بزرگ شدن سایزش فیت بشه یا اگر جمله بزرگ بود با کوچیک شدن سایز فیت بشه
آیا راهی هست؟

یه چیزی مثل عکس ضمیمه. با تغییر متن سایز به گونه ای خودش تنظیم شه که طول دیو رو بگیره


به عبارت دیگه وقتی نوشته توی دیو میافته، اگه طولانی بود سطر بعدی نره؛ سایز نوشته کوچیک شه تا توی یه خط جا بشه. یا اگر نوشته کوچیکه اونقدر بزرگ شه که تمام خط رو بگیره

alireza_s_84
یک شنبه 05 دی 1395, 11:34 صبح
سلام وقت بخیر.
من یک دیو دارم که توی این دیو یه متنی از بانک اطلاعاتی وارد میشه و هر بار ممکنه این متن یه چیزی باشه

مثلاً اگر اندازه این دیو 700px باشه؛ من میخام نوشته ای که توی این دیو می‌افته قشنگ فیتِ این دیو بشه. حالا اگر بعداً یه جمله کوتاه تر توش افتاد با بزرگ شدن سایزش فیت بشه یا اگر جمله بزرگ بود با کوچیک شدن سایز فیت بشه
آیا راهی هست؟

یه چیزی مثل عکس ضمیمه. با تغییر متن سایز به گونه ای خودش تنظیم شه که طول دیو رو بگیره


به عبارت دیگه وقتی نوشته توی دیو میافته، اگه طولانی بود سطر بعدی نره؛ سایز نوشته کوچیک شه تا توی یه خط جا بشه. یا اگر نوشته کوچیکه اونقدر بزرگ شه که تمام خط رو بگیره
font-size: 4vw
از واحدهای جدید vw و vh توی css3 میتونید استفاده کنید:
http://www.w3schools.com/cssref/css_units.asp

mohammaduir
یک شنبه 05 دی 1395, 13:40 عصر
این چیزی که شما فرمودید با چیزی که مد نظر من هست فرق داره. واحد های اندازه گیری فقط یه سایز ثابت رو میده
منظور من اینه که متن داخل دیو فقط توی یک سطر نوشته بشه. اگه طولش از طول div کمتر بود سایز متن اتوماتیک بزرگ بشه تا طول متن اندازه طول div بشه و بالعکس

codedeveloper
یک شنبه 05 دی 1395, 14:03 عصر
سلام دوست عزیز،
این مطلب رو به صورت نمونه قرار میدم، از روی این میتونید به چیزی که میخواستین برسین.
شما نیاز دارید که میزان فضای اشغال شده توسط متن و فونتی که اون متن داره رو بدست بیارین و بعد این مقدار رو با اندازه div مقایسه کنید و اقدام لازم رو انجام بدین، برای این کار از این استفاده کنید...
string measureString = "Measure String";
Font stringFont = new Font("Arial", 16);

// Measure string.
SizeF stringSize = new SizeF();
stringSize = e.Graphics.MeasureString(measureString, stringFont);

// Draw rectangle representing size of string.
e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);

// Draw string to screen.
e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0));

alireza_s_84
یک شنبه 05 دی 1395, 14:39 عصر
این چیزی که شما فرمودید با چیزی که مد نظر من هست فرق داره. واحد های اندازه گیری فقط یه سایز ثابت رو میده
منظور من اینه که متن داخل دیو فقط توی یک سطر نوشته بشه. اگه طولش از طول div کمتر بود سایز متن اتوماتیک بزرگ بشه تا طول متن اندازه طول div بشه و بالعکس
این ذو واحد اندازه ثابتی نمیدن بر اساس المنت شما مقدار مییرن اون لینک رو مطالعه بفرمایید

mohammaduir
یک شنبه 05 دی 1395, 14:44 عصر
چی شد من که هیچی نفهمیدی اخوی:(

mohammaduir
یک شنبه 05 دی 1395, 14:57 عصر
این ذو واحد اندازه ثابتی نمیدن بر اساس المنت شما مقدار مییرن اون لینک رو مطالعه بفرمایید
خوندم
اما منظور من اینه که هر چی مینویسم توی یه خط جا بگیره. اگه کوچیکتر از خطه سایزش بزرگ شه. اگر بزرگتر از یک خط میشه سایزش کوچیک شه
ااما با این مطلبی که فرمودید اینکار رو نمیشه کرد

amir6268
دوشنبه 06 دی 1395, 18:16 عصر
یک راهش اینه که با جاوا اسکریپت طول رشته رو حساب کنی بر اساس اندازه ای که بهت میده سایز فونت رو تغییر بدی ...
یه چیزی مثل این :
http://www.w3schools.com/code/tryit.asp?filename=FB5LID4A1VO9

باز کردی روی Run کلیک کن و بعدشم روی انجام بده ...
حالا دیگه خودت کاملش کن ...

دانیال دزفولی
دوشنبه 06 دی 1395, 23:09 عصر
http://simplefocus.com/flowtype/
http://fittextjs.com/