در ادامه سلسله مقالات آموزش CSS در این مقاله در مورد خصوصیت white-space
در سی اس اس صحبت خواهیم کرد.
زمانی که متنی را داخل صفحه وب قرار می دهید،رفتار پیش فرض مروگر به این صورت است که فاصله های خالی بین کلمات و متون را نادیده گرفته و فقط یک فاصله بین آنها قرار می دهد ( مگر آنکه از کاراکتر خاص
به منظور ایجاد فاصله استفاده کرده باشید) همچنین متون فقط زمانی شکسته شده و به خط بعد منتقل می شوند که محتوای متن به انتهای والد خود برسد و مرورگر شکست خط هایی که در ادیتور خود ایجاد کرده ایم را نادیده می گیرد.
از ویژگی white-space
به منظور کنترل فضاهای خالی موجود در متن استفاده می کنیم که همانطور که گفتیم فضای خالی می تواند یک تک فاصله ای باشد که توسط کلید space
یا tab
ایجاد شده است، یا یک سرخط باشد که توسط کلید enter
ایجاد شده است.
فرض کنید قصد داریم در سایت خود شعری را نمایش دهیم،قطعا نیاز خواهیم داشت بین مصرع های هر بیت فاصله ایجاد کرده و هر بیت را نیز در خطی جداگانه نمایش دهیم،اما در زمان نمایش خروجی فاصله های خالی و شکست خط ها نادیده گرفته می شوند و شعر ما به درستی نمایش داده نخواهد شد اما با استفاده از ویژگی white-space
می توانیم این موضوع را کنترل کنیم.
مقادیر white-space
مقادیری که این ویژگی می تواند بپذیرد را در قطعه کد زیر مشاهده می کنید که در ادامه هر کدام را جداگانه بررسی خواهیم کرد.
white-space: normal | pre | nowrap | pre-wrap | pre-line
مقدار normal
این مقدار،مقدار پیش فرض مرورگر می باشد. در این حالت تمام فضاهای خالی متن یک عنصر از بین می رود وشکست خط ه نیز نادیده گرفته می شوند. متن خروجی زمانی به خط بعد شکسته می شود که به لبه عنصر نگهدارنده اش برسد و دیگری فضایی برای آن خط وجود نداشته باشد. به عنوان مثال اگر بین کلمات خود 3 فاصله (space) قرار داده باشیم در زمان نمایش خروجی این 3 فاصله از بین رفته و فقط یک فاصله بین کلمات قرار داده می شود.اگر این ویژگی را تغییر دادید و قصد داشتید آن را به حالت پیش فرض برگردانید می توانید از کد زیر استفاده کنید.
p {
white-space: normal;
}
مقدار pre
از این مقدار زمانی استفاده می کنیم که بخواهیم متون به همان صورتی در خروجی نمایش داده شوند که در کد نوشته شده اند. یعنی فضاهای خالی و خطوط جدید ایجاد شده حفظ شوند. این مقدار از نام تگ <pre>
در HTML که دقیقا همین وظیفه را به عهده دارد گرفته شده است.در این حالت با توجه این که متن فقط زمانی می شکند که در کد خود یک خط جدید ایجاد کرده باشید احتمال سرریز شدن متن از والد خود وجود دارد که باید با اسفتاده از خاصیت overflow
, text-overflow
این مسئله را کنترل کنید
p {
white-space: pre;
overflow:hidden;
text-overflow:ellipsis;
}
مقدار pre-wrap
از این حالت زمانی استفاده می شود که که بخواهید تمام حالات pre
داشته باشید اما زمانی که متن به انتهای والد خود می رسد شکسته شده و به خط بعد منتقل شود.در این حالت چون متن با رسیدن به لبه عنصر نگهدارنده اش شکسته می شود دیگر سرریزی اتفاق نخواهد افتاد و نیازی به کنترل سرریز متن ندارید.
p {
white-space: pre-wrap;
}
مقدار nowrap
این مقدار زمانی کاربرد دارد که بخواهید متن همان حالت normal
را داشته باشد یعنی فضاهای خالی از بین بروند اما به هیچ عنوان متن شکسته نشود.این حالت نیز می تواند موجب سرریز متن از والد خود شود که باید این مسئله را کنترل کنید.
p {
overflow:hidden;
text-overflow:clip;
white-space: nowrap;
}
مقدار nowrap
با استفاده از این مقدار می توانید فضاهای خالی را از بین ببرید اما سرخط ها را به همان صورت که در کد نوشته شده اند حفظ کنید و همینطور زمانی که متن به لبه نگهدارنده اش برسد بشکند.در این حالت نیز با توجه به شکسته شدن متن،مسئله سرریز متن وجود نخواهد داشت.
p {
white-space: pre-line;
}
جدول زیر تمام مقادیر و رفتارهای آنها را بصورت خلاصه بیان می کند:
مقدار |
خط جدید |
Space و tab |
شکستن به خط بعد |
normal |
از بین می رود |
از بین می رود |
می شکند |
pre |
حفظ می شود |
حفظ می شود |
نمی شکند |
nowrap |
از بین می رود |
از بین می رود |
نمی شکند |
pre-wrap |
حفظ می شود |
حفظ می شود |
می شکند |
pre-line |
حفظ می شود |
از بین می رود |
می شکند |
نکته : از این ویژگی جدا از متن برای عناصر خطی دیگر هم می شود استفاده کرد. مثلا اگر می خواهیم تصاویر را مجبور کنیم تا در یک خط در کنار هم باقی بمانند می توانیم از مقادیر این ویژگی بهره ببریم.
برای آشنایی بیشتر با این ویژگی می توانید دموی زیر را بررسی کنید
امیدوارم مطاطعه این مقاله برای شما مفید بوده باشد.با ادامه آموزش های CSS با ما همراه باشید.
کامنت جدید ...