مقدمة في Bootstrap 5 Text/Typography
-
بنتعلم في هذا الدرس كيفية التعامل مع Typography Classes في Bootstrap 5 مثل font-size،line-height، <p> elements و global settings, headings, body text وغيرها
تمام نبدأ
Global settings
يحتوي Bootstrap على اعدادت معرفة مسبقا لكثير من الاشياء مثل لكل من global display و typography و link styles. واكيد بنقدر نغير على هذه الاعدادات.
من الامثلة على ذلك :
- حجم خط الافتراضي 1rem (16 بكسل) ، وline-height هو 1.5.
- p> elements> تحتوي على margin-top: 0 و margin-bottom: 1rem (والي بساوي 16 بكسل).
Headings
تستخدم جميع HTML headings ، من <h1> إلى <h6> ، في Bootstrap . والوضع الافتراضي لها بكون bolder font-weight بالاضافة الى ان هذا Headings بكون responsive حسب حجم الشاشة
في HTML كنا بنكتب هذه Headings بالطريقة التالية(استخدام اوامر HTML) :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h1>h1. Bootstrap heading</h1>
<h2>h2. Bootstrap heading</h2>
<h3>h3. Bootstrap heading</h3>
<h4>h4. Bootstrap heading</h4>
<h5>h5. Bootstrap heading</h5>
<h6>h6. Bootstrap heading</h6>
</div>
</body>
</html>
شغل الصفحة وشوف النتيجة:
طيب كيف ممكن نستخدم Heading في Bootstrap ولنتعلم كيف طبق الكود التالي:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<p class="h1">h1. Bootstrap heading</p>
<p class="h2">h2. Bootstrap heading</p>
<p class="h3">h3. Bootstrap heading</p>
<p class="h4">h4. Bootstrap heading</p>
<p class="h5">h5. Bootstrap heading</p>
<p class="h6">h6. Bootstrap heading</p>
</div>
</body>
</html>
شغل الصفحة وشوف النتيجة:
النتيجة نفسها لكن الفرق هو الكود، في الكود الاخير الخاص Bootstrap استخدمنا Class مع p> Elements> باسم كل Heading (يعني Bootstrap يحتوي غلى class لكل Heading بالمواصفات الافتراضية لكل Tag)
Customizing headings
يمكن التحكم ب Headings وتغير الخاصئص الافتراضية لها
نطبق المثال التالي حتي نفهم الموضوع :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h2>
h2. Bootstrap heading
<small class="text-muted">Customizing headings</small>
</h2>
<p class="h1">h1. Bootstrap heading</p>
<p class="h2">h2. Bootstrap heading</p>
<p class="h3">h3. Bootstrap heading</p>
<p class="h4">h4. Bootstrap heading</p>
<p class="h5">h5. Bootstrap heading</p>
<p class="h6">h6. Bootstrap heading</p>
</div>
</body>
</html>
عملنا في المثال السابق تطبيق ل <h2> واضفنا داخلها مباشرة نص يحتوي على h2. Bootstrap heading وبعدها اضفنا نص داخل small> tag> وطبقنا عليه class باسم text-muted .
شغل الصفحة وشوف النتيجة :
لاحظ النتيجة ان حجم <h2> تم التغيير عليه وهاذ الي بنسميه Customizing headings
Display headings
تُستخدم Display headings بحيث أكثر بروز من العناوين العادية (حجم خط أكبر ووزن خط أخف lighter font-weight) ، ويوجد classes 6 للاختيار من بينها: display-1 to .display-6.
نطبق مثال ونفهم الموضوع:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h1 class="display-1">Display 1</h1>
<h1 class="display-2">Display 2</h1>
<h1 class="display-3">Display 3</h1>
<h1 class="display-4">Display 4</h1>
<h1 class="display-5">Display 5</h1>
<h1 class="display-6">Display 6</h1>
</div>
</body>
</html>
شغل الصفحة وشوف النتيحة:
Lead
يستخدم لجعل النص بارز، وغالبا يستخدم مع الفقرات
نطبق المثال التالي في صفحة HTML
<!DOCTYPE html><html lang="en"><head> <title>Welcome, Bootstrap Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script></head><body> <div class="container"> <p class="lead"> This is a lead paragraph. It stands out from regular paragraphs. </p> <p > This is paragraph without lead. It stands out from regular paragraphs. </p> </div></body></html>
شغل الصفحة ونشوف النتيجة:
شوف الفرق بين الفقرتين الاول مع Lead والثاني بدون Lead
<mark>
يتم اضافة خلفية بلون مختلف عند تطبيق هذا الامر
نشوف المثال التالي :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<p class="lead">
This is a lead paragraph. It stands out from regular paragraphs.
</p>
<p>
This is paragraph without lead. It stands out from regular paragraphs.
</p>
<h1>Highlight Text</h1>
<p>Use the mark element (or the .mark class) to <mark>highlight</mark> text.</p>
</div>
</body>
</html>

يستخدم لاضافة inline ل HTML5 elements
نطبق المثال التالي:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<p>You can use the mark tag to <mark>highlight</mark> text.</p>
<p><del>This line of text is meant to be treated as deleted text.</del></p>
<p><s>This line of text is meant to be treated as no longer accurate.</s></p>
<p><ins>This line of text is meant to be treated as an addition to the document.</ins></p>
<p><u>This line of text will render as underlined.</u></p>
<p><small>This line of text is meant to be treated as fine print.</small></p>
<p><strong>This line rendered as bold text.</strong></p>
<p><em>This line rendered as italicized text.</em></p>
</div>
</body>
</html>
شغل الصفحة ونشوف النتيجة:
ملاحظات على الكود السابق:
ينصح بعدم استخدام هذه tags للأغراض الدلالية semantic purpose:
يمثل <mark> نصًا تم تمييزه أو تمييزه لأغراض مرجعية أو تدوين reference or notation purposes.
يمثل <small> التعليقات الجانبية side-comments والحروف الصغيرة small print، مثل حقوق النشر والنص القانني copyright and legal text.
تمثل <s> العنصر الذي لم يعد ذا صلة no longer relevant أو لم يعد دقيقًا no longer accurate.
يمثل <u> امتدادًا لنص مضمّن inline text يجب تقديمه بطريقة تشير إلى أنه يحتوي على تعليق توضيحي غير نصي non-textual annotation.
إذا كنت تريد تنسيق النص الخاص بك ، فيجب عليك استخدام classes التالية بدلاً من ذلك:
mark. سيطبق نفس الأنماط مثل <mark>.
small. سيطبق نفس الأنماط مثل <small>.
سيطبق text-decoration-underline. نفس أنماط <u>.
text-decoration-line-through. سيطبق نفس الأنماط مثل <s>.
يمكن استخدام tags التالية <b> و <i>
في HTML5 يستخدم <b> لابراز الكلمات أو العبارات ، بينما <i> في الغالب مخصصة للصوت والمصطلحات الفنية وما إلى ذلك.
abbr> Abbreviations>
يستخدم هذا الامر في Bootstrap 5 لاضافة حد سفلي منقط ومؤشر مع علامة استفهام عند التمرير
طريقة الكتابة بتكون :
<abbr title="Cascading Style Sheets">CSS</abbr>
نطبق الكود التالي في صفحة HTML ونشوف النتيجة:
<!DOCTYPE html><html lang="en"><head><title>Welcome, Bootstrap Example</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script></head><body><div class="container"><p>You can use<abbr title="Cascading Style Sheets">CSS</abbr>to style your <abbr title="HyperText Markup Language">HTML</abbr>.</p></div></body></html>
نتيجة التنفيذ:
Blockquotes
يستخدم هذا الامر عند الاقتباس من محتوى آخر quoting blocks،وايضا عند التسمية naming a source .
نطبق المثال التالي ونشوف النتيجة:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<h1>Blockquotes</h1>
<p>The blockquote element is used to present content from another source:</p>
<blockquote class="blockquote">
<p>A well-known quote, contained in a blockquote element.</p>
</blockquote>
</body>
</html>
النتيجة بتكون:
Naming a source
لتطبيق Naming a source يجب وضع blockquote خارج <blockquote>. عند تقديم الاسناد attribution، وتوضع <blockquote> في <figure> وبنستخدم <figcaption> أو block level element (على سبيل المثال ، <p>) مع blockquote-footer class. تأكد من التفاف Naming a source في <cite> أيضًا.
نطبق المثال التالي حتى نفهم الموضوع:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<h1>Blockquotes</h1>
<p>The blockquote element is used to present content from another source:</p>
<figure>
<blockquote class="blockquote">
<p>A well-known quote, contained in a blockquote element.</p>
</blockquote>
<figcaption class="blockquote-footer">
Someone famous in <cite title="Source Title">Source Title</cite>
</figcaption>
</figure>
</body>
</html>
نتيجة التنفيذ بتكون :
<Description Lists <dl
يستخدم مع description list ويمكن محاذاة النصوص بشكل افقي على شكل شبكة ويمكن اقتطاع جزء من النص باستخدام text-truncate class.
نطبق المثال التالي حتي نفهم الموضوع:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<dl class="row">
<dt class="col-sm-3">Description lists</dt>
<dd class="col-sm-9">A description list is perfect for defining terms.</dd>
<dt class="col-sm-3">Term</dt>
<dd class="col-sm-9">
<p>Definition for the term.</p>
<p>And some more placeholder definition text.</p>
</dd>
<dt class="col-sm-3">Another term</dt>
<dd class="col-sm-9">This definition is short, so no extra paragraphs or anything.</dd>
<dt class="col-sm-3 text-truncate">Truncated term is truncated</dt>
<dd class="col-sm-9">This can be useful when space is tight. Adds an ellipsis at the end.</dd>
<dt class="col-sm-3">Nesting</dt>
<dd class="col-sm-9">
<dl class="row">
<dt class="col-sm-4">Nested definition list</dt>
<dd class="col-sm-8">I heard you like definition lists. Let me put a definition list inside your definition list.</dd>
</dl>
</dd>
</dl>
</body>
</html>
شغل الصفحة وشوف النتيجة:
لاحظ النتيجة الي هي عبارة عن List مع وصف لكل Item في الجزء الي عليه مربع احمر استخدمنا text-truncate والي بيعني ان سيتم اقتطاع النص عند الحاجة، جرب تكبر او تصغر المتصفح وشوف النتيجة
<Code Snippets <code
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<h1>Code Snippets</h1>
<p>Inline snippets of code should be embedded in the code element:</p>
<p>The following HTML elements: <code>span</code>, <code>section</code>, and <code>div</code> defines a section in a document.</p>
</body>
</html>
نتيجة التنفيذ بتكون :
<Keyboard Inputs <kbd
يستخدم عند الحاجة الى اضافة نص للدلالة على اختصار من لوحة المفاتيح>
نطبق الكود التالي :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h1>Keyboard Inputs</h1>
<p>To indicate input that is typically entered via the keyboard, use the kbd element:</p>
<p>Use <kbd>ctrl + S</kbd> To Save Document.</p>
<p>Use <kbd>ctrl + P</kbd> To Print Document.</p>
</div>
</body>
</html>
شغل الصفحة ونشوف النتيجة :
<pre>
يستخدم عند الحاجة الى اضافة نص كم هو بنفس التنسيق والها استخدمات كتيره منها مثلا اذا كان المطلوب اضافة كود برمجي حتى نعرضو مثل ما هو. ممكن ايضا عند الحاجة الى اضافة نص شعر مثلا وغيرها.
نطبق المثال التالي :
<!DOCTYPE html>
<html lang="en" >
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container" dir="ltr">
<pre >
$lead-font-size: $font-size-base * 1.25;
$lead-font-weight: 300;
$small-font-size: .875em;
$sub-sup-font-size: .75em;
</pre>
</div>
</body>
</html>
شغل الصفحة وبتكون النتيجة:
الجدول التالي يعرض مجموعة من Typography Classes
اسم Class | الوصف والاستخدام |
.lead | يستخدم لجعل النصوص او الفقرات بارزة |
.text-start | يستخدم لمحاذاة النص إلى اليسار |
.text-break | يتم عرض النص الطويل بسطر واحد ولن يتم كسر السطر بسطر آخر |
.text-center | يستخدم لمحاذاة النص الى الوسط |
.text-decoration-none | يزيل التسطير من الرابط |
.text-end | يستخدم لمحاذاة النص الى اليمين |
.text-nowrap | يشير إلى عدم التفاف النص |
.text-lowercase | يشير إلى نص صغير |
.text-uppercase | يشير إلى نص بأحرف كبيرة uppercased |
text-capitalize | يشير إلى نص بأحرف كبيرة capitalized |
.initialism | يعرض النص داخل عنصر <abbr> بحجم خط أصغر قليلاً |
.list-unstyled | يزيل نمط القائمة الافتراضي والهامش الأيسر في عناصر القائمة (يعمل على كل من <ul> و <ol>). تنطبق هذه الفئة فقط على عناصر القائمة الفرعية المباشرة (لإزالة نمط القائمة الافتراضي من أي قوائم متداخلة ، قم بتطبيق هذه الفئة على أي قوائم متداخلة أيضًا) |
.list-inline | يضع جميع عناصر القائمة في سطر واحد (يُستخدم مع عنصر .list-inline-item في كل عنصر من العناصر <li>) |
طبق المثال التالي حتي تشوف شو الفرق بينهم :
<!DOCTYPE html>
<html lang="en" >
<head>
<title>Welcome, Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<h2>Typography Classes</h2>
<p class="lead">This paragraph stands out.</p>
<p class="text-star">This paragraph stands out.</p>
<p class="text-break">This paragraph stands out.</p>
<p class="text-center">This paragraph stands out.</p>
<p class="text-decoration-none">This paragraph stands out.</p>
<p class="text-end">This paragraph stands out.</p>
<p class="text-nowrap">No wrap text. No wrap text. No wrap text. No wrap text.</p>
<p class="text-lowercase">This paragraph stands out.</p>
<p class="text-uppercase">This paragraph stands out.</p>
<p class="text-capitalize">This paragraph stands out.</p>
<h2>Typography</h2>
<p>The <abbr title="World Health Organization">WHO</abbr> was founded in 1948. (normal abbr)</p>
<p>The <abbr title="World Health Organization" class="initialism">WHO</abbr> was founded in 1948. (slightly smaller abbr)</p>
<p>The class .list-unstyled removes the default list-style and left margin on list items (immediate children only):</p>
<ul class="list-unstyled">
<li>Coffee</li>
<li>
Tea
<ul>
<li>Black tea</li>
<li>Green tea</li>
</ul>
</li>
<li>Milk</li>
</ul>
<h2>Typography</h2>
<p>The class .list-inline places all list items on a single line, when used together with the .list-inline-item:</p>
<ul class="list-inline">
<li class="list-inline-item">Coffee</li>
<li class="list-inline-item">Tea</li>
<li class="list-inline-item">Milk</li>
</ul>
</body>
</html>
اترك تعليقك