אתר שנראה טוב עם Bootstrap


כרטיסים, רשת והתאמה לנייד; בסיס עובד גם למי שטרם השלים עיצוב אישי

נבנה אזור פתיחה וכרטיסים עם Bootstrap. נסדר את התוכן בעמודות ונבדוק שהאתר נוח לקריאה גם בטלפון.

חזרה: מעצבים עם CSS

מה נלמד

  • להשתמש ב־container, row ו־col.
  • להרכיב card וכפתור.
  • לשלב מחלקות Bootstrap עם CSS אישי.

פותחים ומריצים

פתחו את תיקיית הפרויקט שבה עבדתם, שמרו את הקבצים והריצו את האתר. בדקו שהשינוי מהמפגש הקודם מופיע לפני שמנסים שינוי חדש.

בונים בשלושה אזורים

אזור הפתיחה משתמש בשתי עמודות במסך גדול. אזור הכרטיסים משתמש בשלוש עמודות מ־md ומעלה; במסך צר הכרטיסים נערמים. g-4 קובע רווחים ו־h-100 משווה גובה. בחרו בכל פעם מחלקת Bootstrap אחת ושנו אותה כדי לראות מה היא עושה. קובצי Bootstrap נמצאים בתיקיית wwwroot/lib/bootstrap.

השינויים בקוד

RazorTaba/Pages/Index.cshtml

בקובץ הקיים בצעו את השינוי הבא. סימני + ו־- מציינים שינוי ואינם חלק מהקוד:

--- a/RazorTaba/Pages/Index.cshtml
+++ b/RazorTaba/Pages/Index.cshtml
@@ -2,16 +2,24 @@
 @model IndexModel
 @{
     ViewData["Title"] = "בית";
 }
-<section class="intro">
-<h1>החיות שלי</h1>
-<p>ברוכים הבאים לפינה שלי בטבע. נכיר חיות, נקרא עליהן ונלמד איך מטפלים בהן.</p>
-<h2>מה תמצאו כאן?</h2>
-<ul>
-    <li>חיות שיש להן סיפור</li>
-    <li>מדריכי טיפול קצרים</li>
-    <li>המלצות שלי להיכרות מקרוב</li>
-</ul>
-<a href="https://he.wikipedia.org/wiki/שועל">לקריאה על שועלים</a>
-<img src="~/images/fox.svg" alt="איור של שועל" width="180" />
+<section class="intro row g-4 align-items-center mx-0">
+    <div class="col-lg-8">
+        <p class="eyebrow">הפינה שלי בטבע</p>
+        <h1>לכל חיה יש סיפור.<br />בואו להכיר.</h1>
+        <p class="lead">מגלים, מתעדים ולומדים לטפל. אתר קטן עם מקום גדול לסקרנות.</p>
+        <a class="btn btn-light btn-lg" href="#meet">מכירים את החיות ↓</a>
+    </div>
+    <div class="col-lg-4 text-center">
+        <img class="hero-image" src="~/images/fox.svg" alt="איור שועל כתום" />
+    </div>
+</section>
+<section id="meet" class="py-5">
+    <p class="eyebrow">נפגשים מקרוב</p>
+    <h2 class="mb-4">שלוש חיות, שלושה סיפורים</h2>
+    <div class="row g-4">
+        <div class="col-md-4"><article class="card h-100"><div class="animal-art" aria-hidden="true">🦊</div><div class="card-body"><h3>נורי השועל</h3><p>סקרן, זריז ותמיד מוכן לגלות משהו חדש.</p></div></article></div>
+        <div class="col-md-4"><article class="card h-100"><div class="animal-art mint" aria-hidden="true">🐢</div><div class="card-body"><h3>תום הצב</h3><p>לא ממהר לשום מקום. יש הרבה מה ללמוד ממנו.</p></div></article></div>
+        <div class="col-md-4"><article class="card h-100"><div class="animal-art lilac" aria-hidden="true">🦉</div><div class="card-body"><h3>לונה הינשופה</h3><p>כשהשמש יורדת, הסיפור שלה רק מתחיל.</p></div></article></div>
+    </div>
 </section>

RazorTaba/wwwroot/css/site.css

בקובץ הקיים בצעו את השינוי הבא. סימני + ו־- מציינים שינוי ואינם חלק מהקוד:

--- a/RazorTaba/wwwroot/css/site.css
+++ b/RazorTaba/wwwroot/css/site.css
@@ -11,4 +11,14 @@ a { color: var(--forest); text-underline-offset: .25em; }
 .intro { background: var(--forest); color: #fff; border-radius: 1.5rem; padding: 3rem; }
 .intro h1 { font-size: clamp(2rem, 6vw, 4rem); font-weight: 800; }
 .intro a { color: var(--accent); }
 footer { border-top: 1px solid #d8dfd3; margin-top: 3rem; color: var(--leaf); }
+
+.eyebrow { letter-spacing: .08em; font-weight: 700; font-size: .9rem; }
+.hero-image { width: min(100%, 17rem); transform: rotate(-5deg); border-radius: 2rem; }
+.card { border: 1px solid #d8dfd3; border-radius: 1.25rem; overflow: hidden; box-shadow: 0 .4rem 1.5rem #173f3508; }
+.animal-art { background: #fae5d3; font-size: 5rem; text-align: center; padding: 1.5rem; }
+.mint { background: #e1e9d9; }
+.lilac { background: #ebe3ee; }
+.btn { border-radius: .75rem; }
+.btn-primary { background: var(--forest); border-color: var(--forest); }
+.btn-primary:hover { background: var(--leaf); border-color: var(--leaf); }

מריצים ובודקים

  1. במסך רחב רואים שלושה כרטיסים בשורה.
  2. ברוחב טלפון הכרטיסים נערמים בלי גלילה אופקית.
  3. הכפתור גולל לאזור החיות.

משימה אישית ובדיקת הבנה

התאימו שלושה כרטיסים לנושא שלכם. החליפו תוכן קודם, ורק אחר כך צבעים. בדקו שהכרטיסים נשארים קריאים גם כשאורך הטקסט שונה.

בסיום שינוי: שמרו את הקבצים, בדקו את האתר בדפדפן והסבירו מה שיניתם. המשיכו להתנסות בתוכן ובעיצוב באותה תיקיית פרויקט.

AI יכול לעזור להבין הודעת שגיאה ולנפות תקלה. אתם אחראים לכתוב, לבדוק ולהסביר את הקוד; אין להפעיל סוכן שיכתוב את הפרויקט.

בדיקת ניגודיות של הכפתור

בדקו את צבע הטקסט בכפתור הבהיר „מכירים את החיות”. הכלל .intro a חל גם עליו וצובע את הטקסט בצבע ההדגשה. כדי לקבל טקסט כהה על הרקע הבהיר, פתחו את wwwroot/css/site.css והוסיפו בסוף הקובץ, אחרי הכלל .btn-primary:hover, את ההערה ואת הכלל הממוקד שמופיעים כאן. השאירו את הכללים הקיימים במקומם.

--- a/RazorTaba/wwwroot/css/site.css
+++ b/RazorTaba/wwwroot/css/site.css
@@ -22,3 +22,6 @@
 .btn { border-radius: .75rem; }
 .btn-primary { background: var(--forest); border-color: var(--forest); }
 .btn-primary:hover { background: var(--leaf); border-color: var(--leaf); }
+
+/* הכפתור הבהיר זקוק לטקסט כהה, גם כשהוא נמצא בתוך אזור הפתיחה. */
+.intro .btn-light { color: var(--forest); }

שמרו ורעננו את הדף. ודאו שהטקסט בכפתור הבהיר כהה וקריא ושהלחיצה עליו עדיין גוללת אל הכרטיסים. הכלל החדש חל רק על כפתור עם המחלקה btn-light שנמצא בתוך אזור עם המחלקה intro.


המשך