Understanding WCAG 2.0

Skip to Content (Press Enter)

SCR34: A szövegmérettel arányos méret és pozíció kiszámolása

Alkalmazás

Kliens-oldali szkript.

Ez a technika az alábbiakra vonatkozik:

A felhasználói programra és a segítő technológia támogatására vonatkozó megjegyzések

A méret és pozíció kiszámolása bonyolult folyamat lehet, és a különböző böngészők egymástól eltérő eredményeket produkálhatnak. Ez olyan esetben fordulhat elő, amikor a CSS stílus összekeveri egy objektum belső kitöltését, margóit és szélességét, vagy összekeverésre kerülnek az olyan eltolási és síkbeli értékek, mint például az offsetWidth és szélesség. Ezek közül néhányan különbözően viselkednek ráközelítés esetén. Az Internet Explorer 6 és a modernebb verziók, valamint ugyanezen böngésző korábbi verziói közötti különbségekkel kapcsolatos információkért tekintse meg a MSDN: Fix the Box Instead of Thinking Outside It című részt.

Leírás

A technika célja az elemek szövegméretezéssel arányos méret és pozíció értékeinek a meghatározása.

A JavaScriptnek négy tulajdonsága segíti az elemek méretének és pozíciójának meghatározását:

  • offsetHeight (az elem magassága pixelekben megadva)

  • offsetWidth (az elem szélessége pixelekben megadva)

  • offsetLeft (az elem baloldali távolsága a szülőjéhez (offsetParent) viszonyítva pixelekben megadva)

  • offsetTop (az elem távolsága a szülőjének (offsetParent) tetejétől számítva pixelekben megadva)

Az offsetHeight és offsetWidth tulajdonságokkal történő számítás egyszerű, de az elemek baloldali és felső abszolút igazításának értékeihez figyelembe kell venni a szülő elemet is. Az alábbi calculatePosition funkció a végső érték megadása érdekében megismétli az adott elem szülőjének csomópontjait. A funkció két paramétert használ: objElement (a kérdéses elem neve), és az eltolás tulajdonság (offsetLeft vagy offsetTop).

Példák

1. példa

A Javascript funkció:

Példa kód:


function calculatePosition(objElement, strOffset)
{
    var iOffset = 0;
    if (objElement.offsetParent)
    {
        do 
        {
            iOffset += objElement[strOffset];
            objElement = objElement.offsetParent;
        } while (objElement);
    }
    return iOffset;
}


Az alábbi példában egy elem balról mérve ugyanolyan távolságra kerül igazításra a vele együtt szereplő objektumhoz:

Példa kód:


// Get a reference object
var objReference = document.getElementById('refobject');
// Get the object to be aligned
var objAlign = document.getElementById('lineup');
objAlign.style.position = 'absolute';
objAlign.style.left = calculatePosition(objReference, 'offsetLeft') + 'px';
objAlign.style.top = calculatePosition(objReference, 'offsetTop') + objReference.offsetHeight + 'px'; 

Források

A források csak információs célokat szolgálnak, és csak angolul elérhetőek.

Ellenőrzések

Folyamat
  1. Nyisson meg egy olyan lapot, amelyen a dobozok méretei követik a szöveg méreteinek változásait.

  2. A böngésző beállítási lehetőségeinek használatával (és nem a ráközelítéssel) növelje meg a szöveg méretét 200 %-ra.

  3. Vizsgálja meg, hogy a dobozok mérete a szövegek befogadására alkalmas méretűvé változott-e.

  4. Bizonyosodjon meg arról, hogy a méret növelésének következményeként szöveg nem tűnt el, vagy került levágásra.
Elvárható eredmények
  • A 3. és 4. pontok igazak.


Teljesítési feltételek: