הוספת link ל-css

drbunsen

New member
הוספת link ל-css

יש לי כמה קבצי CSS באפליקציה: אחד ל-master ואחד לכל דף, בנפרד. איפה אני מוסיף את תגית ה-link המיועדת לכל דף בנפרד? (אם אני מוסיף אותה בדף עצמו מחוץ ל-contentplaceholder אני מקבל שגיאה בזמן ריצה, ואם אני מוסיף אותה בתוכו - אני מקבל שגיאה ב-VWD ב-design-time. מתיש משהו...)
 
זו בעיה רצינית.

צריך להוסיף אותם ל master page . הבעיה היא, ואני מניח שזו הסיבה שאתה נמנע מזה, היא שאז כל הדפים יהיו כבדים שלא לצורך,כי כולם טוענים את כל ה CSS כאשר כל אחד צריך אחד בלבד. אפשר כמובן לנסות לצמצם אותם ולכנס אותם לקובץ אחד או למספר קטן של קבצים, אבל הבעיה בהחלט קיימת. אם למישהו יש פיתרון - אשמח לשמוע.
 

J u n k y

New member
אני לא רואה כ"כ בעיה

בזה שכל העמודים טוענים את כל קבצי ה - CSS - כי הדפדפן שומר אותם ב - cache.
 

drbunsen

New member
אולי לא מבחינת ביצועים,

אבל כן מבחינות אחרות: החלת עיצובים שונים על אותו אלמנט כתלות בדף, וכד'.
 

24sharon

New member
אם יש לך לכל דף קובץ CSS

נפרד, יש כאן איזושהיא בניה מעט לקויה, שהרי מטרת קובץ CSS היא לאגד עיצוב כללי. במידה ויש לך רק שימוש יחידני של CSS לא צריך להכניס אותו לקובץ נפרד אלא להשתמש בתגיד STYLE בראש העמוד או אפילו בצורה של INLINE. במידה ויש לך מעט קבצים תוכל ליצור THEME ולהגדיר אותו בתגיד הPAGE Theme="btl" StylesheetTheme="btl" בהצלחה
 
לא לגמרי נכון.

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

drbunsen

New member
מממ....לא מסכים ../images/Emo2.gif

יש כמה מטרות לשימוש ב-CSS, למשל - הפרדה של העיצוב מהתוכן, עד כמה שאפשר. יש הגיון רב, לדעתי, בהפרדה לקבצים: אחד יכיל את ה-LAYOUT של האתר ועיצוב כללי (וזה ייכנס ב-CSS של הMASTER ). לכל דף יש LAYOUT פנימי משלו, שלא צריך לעניין את כל הדפים האחרים - ואלו ייכנסו ב-CSS משלו. לגבי THEMES - המחשבה חלפה במוחי (הקודח...), אבל נראה לי שזה להרוג יתוש עם גדוד טנקים (ושני מסוקים מלמעלה+ השייטת בדרך). חן חן
 

24sharon

New member
OK

לשימושך:
Dim cssLink As New HtmlLink() cssLink.Href = "~/styles.css" cssLink.Attributes.Add("rel", "stylesheet") cssLink.Attributes.Add("type", "text/css") Header.Controls.Add(cssLink)​
בהצלחה VB אמנם אבל אין בעיה להמר לC, במיוחד שיש כבר את מילות המפתח.
 

drbunsen

New member
אמנם התכוונתי לפתרון

לא בקוד, אבל עושה רושם שלא תהיה ברירה. תודה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבהרבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה רבה
 

drbunsen

New member
טוב, אז למי שמעוניין:

בתוספת קצת יצירתיות - הנה הפתרון:
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Dim pagename As String = System.IO.Path.GetFileNameWithoutExtension(Request.PhysicalPath).ToLower Dim csslink As New HtmlLink csslink.Href = "~/CSS/" & pagename & ".css" csslink.Attributes.Add("rel", "stylesheet") csslink.Attributes.Add("type", "text/css") Me.Page.Header.Controls.Add(csslink) End Sub​
שמות קבצי ה-CSS זהים לשמות קבצי ה-ASPX, ואירוע INIT של הMASTER טוען אותם. היתרון: קוד במקום אחד בלבד. ותודה לגאולה שהביאתני עד הלום
 
למעלה