| Autor | Zpráva | ||
|---|---|---|---|
| Wladimir Čert Profil * |
#1 · Zasláno: 31. 3. 2013, 17:08:22
Zdravím,
jde řešit skrze JS aby byl text v první buňce v každém řádku zarovnán v pravo? Řešení skrze CSS umím, nicméně RS, který používám má těchto tabulek mnoho a nechci zasahovat do kódu. Díky |
||
| margin Profil * |
#2 · Zasláno: 31. 3. 2013, 17:26:44
Pokud znáš CSS řešení, tak ho použij, nechápu, proč by to měl být problém. Pokud chceš nastylovat použít jen na některé tabulky, tak jim dej třídu.
V každém případě, přehlednější a efektivnější řešení je použít CSS. |
||
| Wladimir Čert Profil * |
#3 · Zasláno: 31. 3. 2013, 23:36:55
Problém to je z toho důvodu, že systém používá mnoho tabulek, to zaprvý a za druhý, při aktualizaci RS musím dávat třídy do tabulek znova...
|
||
| margin Profil * |
#4 · Zasláno: 1. 4. 2013, 00:06:33
Wladimir Čert:
„musím dávat třídy do tabulek“ Pokud chceš ostylovat první sloupec všech tabulek, tak žádné třídy do tabulek nepotřebuješ. Pokud chceš ostylovat první sloupec pouze některých tabulek, tak stačí dát takovým tabulkám třídu. Možná by šlo tabulky zaměřit jiným kontextem, to nevím, protože jsem kód lezoucí ze zmíněného RS neviděl. |
||
| Wladimir Čert Profil * |
#5 · Zasláno: 1. 4. 2013, 13:54:34
Uvedu příklad.
<table> <tr><td>horní levá buňka</td><td>horní pravá</td></tr> <tr><td>dolní levá</td><td>dolní pravá</td></tr> </table> a potřebuji aby horní levá a dolní levá byla zarovnaná v pravo... můžu dát třídu buňkám align="right" ale bohužel ke spoustě tabulek a problémy s updaty to moc smysl nemá. |
||
| Someone Profil |
#6 · Zasláno: 1. 4. 2013, 14:13:17
Pokud to chceš opravdu řešit v JavaScriptu tak:
HTML <table id="myTable"> <tr><td>horní levá buňka</td><td>horní pravá</td></tr> <tr><td>dolní levá</td><td>dolní pravá</td></tr> </table> var t = document.getElementById("myTable");
var trs = t.getElementsByTagName("tr");
for(var a=0;a<trs.length;a++) {
trs[a].childNodes[0].style.textAlign = "right";
} |
||
| Wladimir Čert Profil * |
#7 · Zasláno: 1. 4. 2013, 15:54:57
Díky, ale má to chybu. Tabulky nemají žádný identifikátor ani třídu... :(
|
||
| Someone Profil |
#8 · Zasláno: 1. 4. 2013, 16:07:56
Wladimir Čert:
Jestli to má být naprosto pro všechny tabulky tak takhle... var tables = document.getElementsByTagName("table");
for(var b=0;b<tables.length;b++) {
var t = tables[b];
var trs = t.getElementsByTagName("tr");
for(var a=0;a<trs.length;a++) {
trs[a].childNodes[0].style.textAlign = "right";
}
} |
||
| Chamurappi Profil |
#9 · Zasláno: 1. 4. 2013, 16:52:38
Reaguji na Someone:
„ trs[a].childNodes[0]“
První uzel v řádku nemusí být <td>, může to být i textový uzel s mezerami a ten nemá vlastnost style (=> vznikla by výjimka).
Nebylo by lepší použít normální HTML DOM? Řádky zjistit z kolekce rows, buňky z řádků z kolekce cells?
Reaguji na Wladimira Čerta: „Problém to je z toho důvodu, že systém používá mnoho tabulek“ A to je problém, protože nechceš stylovat všechny? Zatím jsi ani nenaznačil, podle čeho se pozná ta tabulka (nebo ty tabulky), které chceš zarovnání změnit. Není tedy jasné, proč to nejde vyřešit v CSS a proč by to v JS jít mělo. |
||
| Wladimir Čert Profil * |
#10 · Zasláno: 1. 4. 2013, 17:11:18
Chamurappi:
Ano všechny (resp. v divu #content). V CSS to nejde z toho důvodu, že nemám jak přidat třídu či identifikátor tabulky. Kdybych mohl zasáhnout do kódu, co generuje RS tak to udělám, nicméně při častém updatu je to na bednu... |
||
| margin Profil * |
#11 · Zasláno: 1. 4. 2013, 17:18:06
CSS řešení (nefunguje v IE6 a starších, ale tyto prohlížeče už téměř vymizely):
#content td:first-child {text-align: right;} |
||
| Wladimir Čert Profil * |
#12 · Zasláno: 1. 4. 2013, 17:29:39
margin:
Díky. O té třídě jsem nevěděl. |
||
|
Časová prodleva: 13 let
|
|||
0