Menu

Inline CSS: המאפיין style ו-3 דרכים להוסיף CSS

Inline CSS שם הצהרות ישירות על אלמנט בעזרת המאפיין style. למדו את התחביר, מתי סגנונות inline הם הבחירה הנכונה, איך הם גוברים על גיליונות סגנונות, ואיך הם משתווים ל-CSS פנימי וחיצוני.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

מה זה Inline CSS

Inline CSS הוא CSS שנכתב ישירות על אלמנט HTML בעזרת המאפיין style. הערך הוא רשימה של הצהרות, property: value;, והן חלות רק על האלמנט הזה.

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

תחביר

<element style="property: value; property: value;">
חלקדוגמההערות
מאפייןstyle="..."מאפיין גלובלי: מותר על כל אלמנט HTML
הצהרהcolor: #2563eb;אותו תחביר כמו בתוך כלל בגיליון סגנונות
כמה הצהרותpadding: 8px; border: 1px solid #e5e7eb;מופרדות ב-;
מירכאות בפניםstyle="font-family: 'Courier New', monospace;"השתמשו במירכאות בודדות בתוך מאפיין שעטוף במירכאות כפולות

כל מה שאינו הצהרה אסור. ל-:hover, ל-::before, ל-@media ולסלקטורים אין מקום במאפיין style.

3 הדרכים להוסיף CSS ל-HTML

CSS מגיע לדף בשלוש דרכים. הדף הזה עוסק בראשונה; ל-CSS חיצוני ופנימי יש דף משלהם.

שיטהאיפה ה-CSS נמצאהיקףשימוש נפוץ
Inlineמאפיין style על אלמנט אחדהאלמנט הזהערכים חד-פעמיים, ערכים שנקבעים ב-JavaScript
פנימיאלמנט <style> בדףהדף הזההדגמות של דף אחד, תבניות אימייל, CSS קריטי
חיצוניקובץ .css, מחובר עם <link>כל דף שמחבר אותועיצוב של אתר שלם

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

הפסקה השלישית שומרת את הריפוד ואת הרדיוס מהכלל .note ומחליפה רק את הרקע, כי הסגנון ה-inline מגדיר רק את המאפיין האחד הזה.

למה סגנונות inline מנצחים

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

היוצא מן הכלל היחיד הוא !important. הצהרה בגיליון סגנונות שמסומנת !important מנצחת הצהרת inline רגילה, ו-!important ב-inline מנצח את שתיהן. זו הסיבה שסגנונות inline מקשים על תחזוקת האתר: כדי לשנות אותם מגיליון סגנונות צריך !important, וזה מתחיל הסלמה. הדף על !important מכסה את הסדר המלא.

מתי Inline CSS הוא הכלי הנכון

סגנונות inline מתאימים כשהערך הוא נתון ולא עיצוב: הוא משתנה מאלמנט לאלמנט ונכתב על ידי תבנית או על ידי JavaScript.

המראה (צבעים, גובה, רדיוס) נמצא בגיליון הסגנונות. רק הרוחב, ששונה בכל סרגל, הוא inline. JavaScript כותב את אותו מאפיין דרך element.style:

אחרי הלחיצה, ה-HTML של הפסקה הוא style="color: rgb(245, 158, 11); font-weight: bold;". שמות מאפיינים עם מקף הופכים ל-camelCase ב-JavaScript (font-weight הוא fontWeight).

משתנה CSS הוא לרוב דרך הביניים הנקייה ביותר: הגדירו inline רק את המשתנה, style="--progress: 35%", ותנו לגיליון הסגנונות להשתמש בו. ראו משתני CSS.

איפה Inline CSS לא מספיק

  • אין מצבים ואין פסאודו-אלמנטים. אי אפשר לכתוב :hover, :focus או ::before במאפיין style.
  • אין media queries. רוחב inline לא יכול להשתנות בטלפון.
  • חזרתיות. עשרה כפתורים עם אותו סגנון inline הם עשרה מקומות לערוך.
  • קשה לדרוס. רק !important בגיליון סגנונות מנצח אותו.
  • Content Security Policy. CSP קפדני בלי 'unsafe-inline' ב-style-src חוסם מאפייני style שנכתבו ב-HTML.

טעויות נפוצות

  • לכתוב סלקטור או סוגריים בתוך style. style="p { color: red }" נזנח. רק הצהרות נכנסות לשם.
  • להשתמש ב-= במקום :. כותבים color: red, לא color=red.
  • לקנן מירכאות כפולות. style="font-family: "Arial"" סוגר את המאפיין מוקדם מדי. השתמשו במירכאות בודדות בפנים.
  • לשכוח יחידות. style="width: 200" נזנח; כתבו 200px. אורך 0 הוא היחיד שמותר לו לוותר על היחידה.
  • לעצב אתר שלם ב-inline. העבירו סגנונות שחוזרים על עצמם למחלקה בגיליון סגנונות ושמרו את סגנונות ה-inline לערכים שונים בכל אלמנט.

שאלות נפוצות

מה זה Inline CSS?

Inline CSS הוא CSS שנכתב במאפיין style של אלמנט, כמו <p style="color: red;">. ההצהרות חלות רק על האלמנט הזה, בלי סלקטור.

מהן 3 הדרכים להוסיף CSS ל-HTML?

Inline, עם המאפיין style על אלמנט; פנימי, עם אלמנט <style> בדף; וחיצוני, עם קובץ .css נפרד שמחובר באמצעות <link rel="stylesheet" href="styles.css"> בתוך <head>. קבצים חיצוניים הם הבחירה הרגילה לאתר שלם.

האם Inline CSS דורס CSS חיצוני?

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

האם Inline CSS הוא הרגל רע?

לעיצוב של אתר שלם, כן: הוא חוזר על עצמו, לא יכול להשתמש ב-:hover או ב-media queries, וקשה לדרוס אותו. הוא בסדר לערכים חד-פעמיים שנקבעים על ידי JavaScript או תבנית, כמו רוחב של סרגל התקדמות או צבע שהמשתמש בחר.

אפשר להשתמש ב-hover ב-Inline CSS?

לא. המאפיין style מקבל רק הצהרות, ולכן אי אפשר לכתוב בו פסאודו-קלאסים כמו :hover, פסאודו-אלמנטים כמו ::before וכללי @media. שימו אותם באלמנט <style> או בגיליון סגנונות.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל