שלח תשובה

זירת השאלות

856
צפיות
4
תשובות

יישור אנכי של אובייקט בלי טבלאות

,‏ 2 במאי, 2008

האתר שאני בונה הוא נמוך וצר (בערך 300 פיקסלים גובה על 700 רוחב).

אני רוצה למרכז אותו אנכית על הדפדפן של הגולש, בלי להישתמש בטבלה עם TD ו-vertical-align:middle.

אפשר לעשות כזה דבר?

ואגב, בלי קשר, אם הקידוד של העמוד הוא xhtml ואני מנסה לעשות טבלה עם 100% גובה – הוא לא נותן לי… ז"א הגובה לא נמתח 100% כל על הדפדפן. בלי הגדרת doctype זה עובד טוב. למה זה?


תודה לעונים

תגיות:

4 תשובות

  1. ניר טייב הגיב:

    הנוסחא היא לעשות top:50%
    ב-position:absolute, ואז לעשות margin-top שלילי בגודל חצי מה-height של האלמנט

    כרגע רק ב-IE תוכל לעשות זאת באופן דינמי לכל גודל אלמנט בעזרת יכולת ה-expression שלו, אבל אם אתה יודע את הגודל והוא לא דינמי אז פשוט תזין את הערכים המתאימים.

    בהצלחה.

  2. ולגבי הגובה של העמוד…
    צריך להגדיר עבור התג html והתג body שהגובה שלהם יתפוס 100% מגובה החלון, ורק אז האלמנטים שבתוכם יוכלו להיתפרס על 100% גובה.

    הגדרה כזאת תפתור את הבעיה:
    html, body{
    height:100%;
    }


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  3. רונית ש הגיב:

    מעולה, תודה (גם לשפוי) – אבל מה אם
    זה פותר לי את הבעיה עכשיו אבל במקרים אחרים שנגיד אני לא יודעת מה הגובה של ה-DIV מה אני עושה?

    או למשל אם יש לי DIV עם תוכן ואני רוצה למרכז את התוכן שלו אנכית – יש מאפיין מקביל ל- vertical-align שעובד נראה לי רק על TD?

    תודה!  

  4. ניר טייב הגיב:

    עקרונית – בעזרת JS
    כשיגיע בעתיד CSS3 ויתמך בדפדפנים (FF וספארי כבר בכיוון) יהיה אפשרי לבצע חישובים מתמטיים בין הערכים השונים
    בינתיים ב-JS אפשר לעשות דבר כזה:

    var el = document.getElementById("my_element");
    el.style.marginTop = (-el.offsetHeight/2)+"px";

    /* בעתיד ב-CSS */
    margin-top: -(height/2)

שלח תשובה