وقتی صفحهی وبی را باز میکنید، تنظیمات بسیاری بر روی ظاهر آن تاثیرگذار هستند. برای مثال خود مرورگر دارای تنظیماتی است که بر روی ظاهر پیشفرض عناوین و عناصر مختلف قرار گرفته شدهی بر روی صفحه تاثیر گذار است. به این موارد Browser Styles گفته میشود که با Custom Styles ما قابلیت بازنویسی را دارند. در این بین، شیوهنامههای بوت استرپ، بین Browser Styles و شیوهنامههای سفارشی ما قرار میگیرند تا ظاهر بهتری را برای عناصر مختلف صفحه ارائه دهند.
تایپوگرافی مقدماتی بوت استرپ 4
شیوهنامههای همراه با بوت استرپ، رفتار و تنظیمات پیشفرض مرورگر را بازنویسی میکنند. این بازنویسی با فایل node_modules\bootstrap\scss\_reboot.scss شروع میشود. اگر مجموعهی بوت استرپ را توسط روش معرفی شدهی در مطلب «
روشهای مختلف دریافت و نصب بوت استرپ 4» دریافت کرده باشید، کدهای کامل SASS آن، در پوشهی scss این مجموعه، موجود هستند که یکی از آنها فایل reboot است. کار آن نرمال سازی شیوهنامهها، به نحوی است که در مرورگرها مختلف و همچنین وسایل نمایشی متفاوت، یکسان به نظر برسند:
- برای مثال در این فایل از روش اندازه گیری rem استفاده شدهاست تا مدیریت اندازههای آن در سکوهای کاری مختلف قابل کنترل شود.
- در اینجا از margin-top به طور کامل صرفنظر شدهاست، تا بتوان اندازهگیری فواصل بین عناصر را بهتر محاسبه کرد. بوت استرپ 4 تنها یک margin را در پایین تمام عناصر صفحه، تنظیم میکند. بنابراین آگاهی از وجود این پیشفرض، تنظیم فواصل بین عناصر را نیز سادهتر میکند.
- در این فایل در همهجا از خاصیت inherit استفاده شدهاست تا امکان بازنویسی شیوهنامههای آن توسط custom styles ما سادهتر شود.
- پیشفرض دیگری که در این نگارش از بوت استرپ تنظیم شدهاست، border-box میباشد. به این ترتیب اندازه گیری عرض عناصر سادهتر میشوند. برای مثال اگر عرض یک div را مساوی 200px قرار دهید، یک padding پیشفرض نیز برای آن درنظر گرفته شدهاست و padding سفارشی تنظیم شدهی برای آن بیاثر خواهد بود.
- در این نگارش، فونت پیشفرض صفحه، به فونت پیشفرض سیستم تنظیم شدهاست و نه فونت از پیش تعیین شدهی خاصی. از این جهت که این قلمهای سیستمی، دارای ویژگیهای خاصی هستند که آنها را برای سکوهای کاری مختلف، منحصربفرد میکنند.
مثال: نمایش تاثیر بوت استرپ 4 بر روی تایپوگرافی پیشفرض مرورگر <body>
<div class="container">
<section class="content" id="mission">
<h1>Our Commitment <small>to you</small></h1>
<p>Wisdom Pet Medicine strives to blend the best in traditional and
<em>alternative medicine</em> in the <strong>diagnosis and
treatment</strong> of companion animals including dogs,
cats, birds, reptiles, rodents, and fish. We apply the wisdom
garnered in the <mark>centuries old tradition</mark> of
veterinary medicine, to find the safest treatments
and cures.</p>
<p>We strive to be your pet's medical <del>staff</del> experts from
youth through the senior years. <small>We build preventative
health care plans for each and every one of our patients,
based on breed, age, and sex, so that your pet receives the
most appropriate care at crucial milestones.</small> We
want to give your pet a long and healthy life.</p>
</section>
<section class="content" id="services">
<h2>Exotic Pets</h2>
<p>We offer <strong>specialized</strong> care for <em>reptiles,
rodents, birds,</em> and other exotic pets.</p>
<h3>Grooming</h3>
<p>Our therapeutic <span>grooming</span> treatments help battle
fleas, allergic dermatitis, and other challenging skin
conditions.</p>
<h4>General Health</h4>
<p>Wellness and senior exams, ultrasound, x-ray, and dental
cleanings are just a few of our general health services.</p>
<h5>Nutrition</h5>
<p>Let our nutrition experts review your pet's diet and prescribe a
custom nutrition plan for optimum health and disease
prevention.</p>
<h6>Pest Control</h6>
<p>We offer the latest advances in safe and effective prevention
and treatment of fleas, ticks, worms, heart worm, and other
parasites.</p>
<h2>Vaccinations</h2>
<p>Our veterinarians are experienced in modern vaccination
protocols that prevent many of the deadliest diseases in pets.</p>
</section>
</div>
</body>
با این خروجی:
با اعمال بوت استرپ
بدون اعمال بوت استرپ
در اینجا دو تصویر راملاحظه میکنید؛ یکی با اعمال bootstrap.min.css به صفحهاست و دیگری با حذف آن از صفحه. به این ترتیب مشاهده میکنید که صرفا اعمال بوت استرپ به یک صفحهی متداول، کیفیت نمایش آنرا با بازنویسی شیوهنامهی پیشفرض مرورگر، به نحو قابل ملاحظهای بهبود بخشیدهاست و آنرا زیباتر کردهاست.
در اینجا تنها المان بوت استرپی که به صفحه اضافه شدهاست و جزو استانداردهای HTML نیست، یک div با کلاس container است:
<body>
<div class="container">
کل محتوای صفحه جهت اعمال شیوهنامههای بوت استرپ، داخل این div قرار میگیرند. اولین تاثیر آن واکنشگرا کردن صفحهاست و همچنین یک padding را نیز به قسمتهای چپ و راست صفحه اضافه کردهاست.
در این مثال تاثیر بوت استرپ را بر روی شیوهنامههای پیشفرض خصوصا h1 تا h6، مشاهده میکنید.
روش دیگر تعریف headings در اینجا، استفاده از کلاسهایی با نامهای مشابه است:
<div class="h1">Test div class H1</div>
علاوه بر آن، کلاس display نیز در اینجا برای تعیین اندازهی headings سفارشی پیش بینی شدهاست که میتوان از عدد 1 تا 4 را توسط آن تنظیم کرد:
<div class="display-1">Test div class display-1</div>
با این خروجی و اندازه در مقایسه با headings استاندارد که امکان تعریف تیترهایی بزرگتر از اندازههای متداول را میسر میکنند:
همچنین اگر نیاز به بزرگتر نمایش دادن متن قسمت ابتدایی صفحه وجود داشت، میتوان از کلاس Lead استفاده کرد:
<p class="lead">Testing a lead class</p>
کلاسهای کمکی کار با متون در بوت استرپ 4
بوت استرپ 4 به همراه تعدادی کلاس کمکی کار با متون است که نیازهای متداول تایپوگرافی را برآورده میکنند:
1) کلاسهای کمکی محل قرارگیری متون
- کلاس text-justify کار کشیدن و متناسب کردن یک پاراگراف را با گوشههای سمت چپ و راست صفحه انجام میدهد.
- کلاس text-nowrap از شکسته شدن متن به چندین سطر جلوگیری میکند. برای مثال میتواند برای نمایش کدها مناسب باشد.
- کلاس متغیر text-xx-pos برای تعیین محل قرارگیری متن کاربرد دارد:
در اینجا ذکر xx اختیاری است و میتواند sm، برای اندازههای صفحهی بیشتر از 576px و یا md، برای اندازههای صفحهی بیشتر از 768px و یا lg، برای اندازههای صفحهی بیشتر از 992px و یا xl، برای اندازههای صفحهی بیشتر از 1200px باشد. این اندازههای یاد شده را در ادامه بیشتر مشاهده خواهید کرد.
همچنین pos میتواند left ،center و یا right باشد.
برای مثال کلاس text-sm-center به این معنا است که متن مدنظر در break-point ایی به نام sm، یعنی با اندازهی صفحهی بیشتر از 576px، در وسط صفحه نمایش داده خواهد شد.
2) کلاسهای نمایش upper-case و lower-case حروف
- کلاس text-lowercase کار نمایش lower-case کل یک پاراگراف اعمالی را انجام میدهد.
- کلاس text-uppercase کار نمایش upper-case کل یک پاراگراف اعمالی را انجام میدهد.
- کلاس text-capitalize، اولین حرف هر واژه را به صورت بزرگ نمایش میدهد.
3) کلاسهای شیوهی نمایش متون
کلاس font-weight-bold، کلاس font-weight-normal و کلاس font-italic نمایش ضخیم، عادی و یا italic متن را سبب میشوند.
مثال: بررسی تاثیر کلاسهای کمکی کار با متون در بوت استرپ 4 <body>
<div class="container">
<section class="content" id="mission">
<h1 class="text-center text-sm-right text-md-left text-uppercase">Our
Commitment</h1>
<p class="lead text-justify">Wisdom Pet Medicine strives to blend
the best in
traditional and <em>alternative medicine</em> in the <strong>diagnosis
and treatment</strong> of companion animals including dogs,
cats, birds, reptiles, rodents, and fish. We apply the wisdom
garnered in the <mark>centuries old tradition</mark> of
veterinary medicine, to find the safest treatments
and cures.</p>
<p class="text-nowrap text-capitalize">We strive to be your pet's
medical <del>staff</del>
experts from
youth through the senior years. <small>We build preventative
health care plans for each and every one of our patients,
based on breed, age, and sex, so that your pet receives the
most appropriate care at crucial milestones.</small> We
want to give your pet a long and healthy life.</p>
</section>
<section class="content" id="services">
<div class="display-4">Exotic Pets</div>
<p>We <span class="font-weight-bold">offer</span> <strong class="font-weight-normal">specialized</strong>
care for <em>reptiles,
rodents, birds,</em> and other exotic pets.</p>
<h3 class="text-left text-md-center text-sm-right">Grooming</h3>
<p>Our therapeutic <span>grooming</span> treatments help battle
fleas, allergic dermatitis, and other challenging skin
conditions.</p>
<h4>General Health</h4>
<p>Wellness and senior exams, ultrasound, x-ray, and dental
cleanings are just a few of our general health services.</p>
<h5>Nutrition</h5>
<p>Let our nutrition experts review your pet's diet and prescribe a
custom nutrition plan for optimum health and disease
prevention.</p>
<h6>Pest Control</h6>
<p>We offer the latest advances in safe and effective prevention
and treatment of fleas, ticks, worms, heart worm, and other
parasites.</p>
<h2>Vaccinations</h2>
<p>Our veterinarians are experienced in modern vaccination
protocols that prevent many of the deadliest diseases in pets.</p>
</section>
</div>
</body>
با این خروجی
در اینجا اگر کلاس text-right را به heading اضافه کنیم:
<h1 class="text-right">Our Commitment <small>to you</small></h1>
چنین خروجی حاصل میشود:
و یا میتوان این کلاسها را با هم ترکیب کرد:
<h1 class="text-center text-sm-right">Our Commitment <small>to you</small></h1>
این ترکیب به این معنا است:
- متن h1 در حالت عادی در وسط صفحه نمایش داده شود.
- اما متن مدنظر در break-point ایی به نام sm، یعنی با اندازهی صفحهی بیشتر از 576px، در سمت راست صفحه نمایش داده خواهد شد.
این اعداد توسط افزونهی
ViewPort نمایش داده شدهاند.
همچنین تاثیر text-justify را نیز به اولین پاراگراف
<p class="lead text-justify">
به صورت ذیل مشاهده میکنید که در مقایسه با تصویر قبلی، سبب کشیده شدن متن و تنظیم آن با سمت راست و چپ صفحه شدهاست:
و یا اگر text-nowrap را به پاراگرافی اعمال کنیم:
سبب نمایش یک سطری آن خواهد شد که در اینجا با پدید آمدن یک اسکرول بار افقی، قابل ملاحظهاست.
کلاسهای کمکی کار با لیستها و نقل قولها در بوت استرپ 4
بوت استرپ 4 به همراه کلاسهایی کمکی برای کار با لیستها و نقل قولها است؛ مانند:
- کلاس list-unstyled سبب حذف bullets از یک لیست میشود.
- برای ایجاد لیستهای Inline میتوان از کلاس list-inline بر روی المان UL و سپس list-inline-item بر روی هر LI آن، کمک گرفت.
<body>
<div class="container">
<section class="content" id="services">
<h2>Exotic Pets</h2>
<p>We offer <strong>specialized</strong> care for <em>reptiles,
rodents, birds,</em> and other exotic pets.</p>
<ul class="list-unstyled">
<li>Grooming</li>
<li>General Health</li>
<li>Nutrition</li>
<li>Pest Control</li>
<li>Vaccinations</li>
</ul>
<ul class="list-inline">
<li class="list-inline-item">Grooming</li>
<li class="list-inline-item">General Health</li>
<li class="list-inline-item">Nutrition</li>
<li class="list-inline-item">Pest Control</li>
<li class="list-inline-item">Vaccinations</li>
</ul>
</section>
</div>
</body>
در این مثال نحوهی حذف bullets و همچنین inline تعریف کردن دو لیست را مشاهده میکنید؛ با این خروجی:
در حالت لیست inline، آیتمهای لیست از چپ به راست در یک سطر نمایش داده میشوند. برای مثال میتواند برای نمایش breadcrumbs در یک سایت مناسب باشد.
همچنین برای نمایش نقل قولها میتوان از کلاس blockquote و برای نمایش بهتر امضای آن از کلاس blockquote-footer استفاده کرد:
<body>
<div class="container">
<section class="content" id="testimonials">
<h2>Testimonials</h2>
<blockquote>
During the summer, our rabbit, Tonto, began to have severe
redness and itching on his belly and feet. I'm very thankful to
the veterinarians and staff at Wisdom for the excellent care
Tonto received, and for nipping his allergies in the bud, so to
speak.
Jane
</blockquote>
<blockquote class="blockquote text-right">
When Samantha, our Siamese cat, began sleeping all the time and
urinating excessively, we brought her to see the specialists at
Wisdom. Now, two years later, Samantha is still free from any
complications of diabetes, and her blood sugar regularly tests
normal.
<div class="blockquote-footer">
The McPhersons
</div>
</blockquote>
</section>
</div>
</body>
در اینجا دو blockquote را مشاهده میکنید. مورد اول بدون کلاس blockquote است و دومی به همراه این کلاس و یک footer تعریف شدهاست. همچنین میتوان کلاسهایی مانند text-right را نیز به blockquote اضافه کرد.
البته در نگارش 4، حاشیهی خاکستری blockquote که در نگارش سوم آن وجود داشت،
حذف شدهاست.
کار با رنگها در بوت استرپ 4
بوت استرپ، به همراه تعدادی کلاس مخصوص رنگها است که از آن در همه جا استفاده میکند؛ مانند رنگهای دکمهها، پس زمینهها و متون.
1) کلاسهای تعیین رنگ متون:
برای مثال در اینجا بجای Color میتوان یکی از ثوابت ذیل آنرا قید کرد؛ مانند text-primary و یا text-danger
این کلاسها برای تعیین رنگ متون و همچنین لینکها کاربرد دارند.
2) کلاسهای تعیین رنگ پس زمینه:
در اینجا برای نمونه بجای Color میتوان یکی از ثوابت ذیل آنرا قید کرد؛ مانند bg-primary و یا bg-danger
مثال: اعمال رنگهای زمینهای بوت استرپ <body>
<div class="container">
<section class="content" id="services">
<h2 class="text-danger">Our Mission</h2>
<p class="bg-danger text-white">Wisdom Pet Medicine strives to
blend the best in
traditional and
alternative medicine in the diagnosis and treatment of
companion animals including dogs, cats, birds, reptiles,
rodents, and fish. We apply the wisdom garnered in the
centuries old tradition of veterinary medicine, to find the
safest treatments and cures.</p>
<ul>
<li><a class="text-warning" href="#">Grooming</a></li>
<li><a href="#">General Health</a></li>
<li><a href="#">Nutrition</a></li>
<li><a href="#">Pest Control</a></li>
<li><a href="#">Vaccinations</a></li>
</ul>
</section>
<section class="content" id="testimonials">
<h2>Testimonials</h2>
<blockquote class="blockquote bg-faded text-info">
During the summer, our rabbit, Tonto, began to have severe
redness and itching on his belly and feet. I'm very thankful to
the veterinarians and staff at Wisdom for the excellent care
Tonto received, and for nipping his allergies in the bud, so to
speak.
<div class="blockquote-footer">
Jane
</div>
</blockquote>
</section>
</div>
</body>
با این خروجی
در اینجا مثالهایی را از اعمال کلاسهای رنگهای بوت استرپ مشاهده میکنید. همچنین امکان ترکیب آنها مانند مثال زیر نیز وجود دارد:
<p class="bg-danger text-white">
کدهای کامل این قسمت را از اینجا میتوانید دریافت کنید: Bootstrap4_02.zip