IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Vytvoření mezery mezi sloupci

Aktivity
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:22.10.2014 20:36

Zdravím. Z vytvořené databáze jsem si vypsal data a rozdělil je do dvou sloupečků. Jenže ty jsou na sebe příliš nalepené a já bych chtěl, aby mezi nimi bylo místo. Na výstupu to vypadá tak, že je vypsané políčko s rozmezím 2 časů, poté políčko Volno/Obsazeno. Do níže přiloženého kódu vepíši slovo "SEM VLOŽIT MEZERU" na místo, kde chci udělat rozestup buněk na šířku alespoň jednoho stejně velkého políčka:

for($i=0;$i<count($terminy[0]);$i++)
 {

   echo "<tr>";

   echo "<td>".htmlspecialchars($terminy[0][$i]['cas']).
           "</td>";
   if ($terminy[0][$i]['obsazeno']) {
  echo '<td id="full">'. "Obsazeno"."</td>";
}
 if (!$terminy[0][$i]['obsazeno']) {
  echo '<td id="empty">'. "Volno"."</td>";
}
//SEM VLOŽIT MEZERU//
   echo isset($terminy[1][$i]) ? "<td>".htmlspecialchars($terminy[1][$i]['cas'])."</td>" : '';
   if ($terminy[1][$i]['obsazeno']) {
  echo '<td id="full">'. "Obsazeno"."</td>";
}
if (!$terminy[1][$i]['obsazeno']) {
  echo '<td id="empty">'. "Volno"."</td>";
}
   echo "</tr>";

 }
 
Odpovědět
22.10.2014 20:36
Avatar
Odpovídá na Michal Kuba
Martin Konečný (pavelco1998):22.10.2014 20:41

To je spíš záležitost CSS. Já to taky moc neumim, takže ti možná poradím špatně, ale zkus tomu dalšímu <td> hodit nějaký padding-left.
Nebo pokud chceš mezeru u všech sloupců a řádků, můžeš použít atributy cellpadding a cellspacing u <table>.

Nahoru Odpovědět
22.10.2014 20:41
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Michal Kuba:22.10.2014 20:48

padding mi na to vůbec nefunguje. Asi to je tím, že je to z databáze, nebo nevím. Chci právě jen udělat mezeru mezi druhým a třetím sloupcem políček, nikde jinde.. Mám nahrát i obrázek přímo z webu a naznačit, kde a jak to myslím?

 
Nahoru Odpovědět
22.10.2014 20:48
Avatar
Odpovídá na Michal Kuba
Martin Konečný (pavelco1998):22.10.2014 20:56

Je jedno, odkud to je, je to tag jako tag.

<td id="neco" style="padding-left:25px;">

by podle mě fungovat mělo.
Zkus se podívat na google, něco ve smyslu "space between table cells". Určitě najdeš něco na stackoverflow, kde maj podle mě dobré odpovědi.

Nahoru Odpovědět
22.10.2014 20:56
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:22.10.2014 21:02

Možná by bylo lepší dát sem odkaz na tu tvoji problematickou stránku.

 
Nahoru Odpovědět
22.10.2014 21:02
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:22.10.2014 21:10

Tady je přesně ta tabulka, kde chci mít mezeru, mezi Volno a třetím sloupcem:
http://brnenskymikulas.cekuj.net/objednavka.php

 
Nahoru Odpovědět
22.10.2014 21:10
Avatar
Odpovídá na Michal Kuba
Martin Konečný (pavelco1998):22.10.2014 21:20

Nedávej id="odrazeni", ale class="odrazeni" (v CSS místo tečky dej křížek #). Jedno ID lze použít jen jednou.

Nahoru Odpovědět
22.10.2014 21:20
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Richard
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Richard:22.10.2014 21:24

Dle specifikace možná, v praxi je to jedno.
Pokud chceš mít mezeru o velikosti buňky, co tam nacpat rovnou buňku?

Nahoru Odpovědět
22.10.2014 21:24
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Richard
Tonda Kozák:22.10.2014 21:27

Ani v praxi není dobré si na to zvykat. Jak pak budeš odkazovat na kotvu? Jak budeš vybírat JavaScriptem?

Ale myslím, že rada je správná. Dej tam mezi ty dva sloupce novou buňku, která nebude mít ohraničení. Margin na buňky nefunguje a vymýšlet nějaké složitosti nemá asi cenu.

 
Nahoru Odpovědět
22.10.2014 21:27
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Richard
Michal Kuba:22.10.2014 21:27

To jsem se snažil nějak takto:

echo "<td>" "</td>"

Ale nešlo to, NetBeans mi háže chybu syntaxe.

 
Nahoru Odpovědět
22.10.2014 21:27
Avatar
Odpovídá na Michal Kuba
Michal Štěpánek:22.10.2014 21:31

a takto

echo "<td>&nbsp;</td>";

by to nešlo?

Nahoru Odpovědět
22.10.2014 21:31
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:22.10.2014 21:32

Dej to

echo "<td class='mezera'></td>";

Třídu mezera si můžeš naformátovat jak chceš velkou.

To tvoje ti nefungovalo, protože tam máš 2 řetězce jen tak - žádné spojení, žádné středníky.

Editováno 22.10.2014 21:34
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
22.10.2014 21:32
Avatar
Odpovídá na Richard
Martin Konečný (pavelco1998):22.10.2014 21:38

Takže budeme nováčka učit špatné zvyky, aby v příštím vlákně bylo "Proč mi document.getE­lementById('ne­jakyId')" nevrací pole všech elementů :)
Ale je pravda, že jsem si myslel, že se ten styl použije jen jednou, takže se omlouvám, moje neznalost.

Editováno 22.10.2014 21:39
Nahoru Odpovědět
22.10.2014 21:38
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:22.10.2014 22:15

Nechám si to tam takto. Mám akorát nastavený pro CELOU tabulku rámeček, takže i této buňce se to zobrazí, i když jsem v CSS určil:

border: none;

nebo:

border: 2px solid #(barva pozadí);

ale to je už docela drobnost. Lepší prázdné políčko než to mít tak naplácnutý.

 
Nahoru Odpovědět
22.10.2014 22:15
Avatar
Odpovídá na Michal Kuba
Martin Konečný (pavelco1998):22.10.2014 22:35

Zkus styl té buňky napsat jako

border: none !important;
Editováno 22.10.2014 22:36
Nahoru Odpovědět
22.10.2014 22:35
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Richard
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Richard:23.10.2014 0:25

Já mu neříkal ať to použije, jen jsem opravil tvůj výrok, který nebyl pravdivý.

Nahoru Odpovědět
23.10.2014 0:25
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Michal Kuba
Tonda Kozák:23.10.2014 7:06

Nedoporučuji moc používat !important. Většinou je to důsledek špatně napsaného stylu a pak se blbě hledají chyby.

Nefunguje ti to proto, že

#vypis td {
}

přebije

.mezera {
}

protože ten styl definuje konkrétněji.
Když použiješ

#vypis .mezera {
 border: none;
}

bude ti to fungovat jak má.

 
Nahoru Odpovědět
23.10.2014 7:06
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Tonda Kozák
Michal Kuba:23.10.2014 7:50

Díky. Nevěděl jsem, jak přebít právě ten #vypis aniž bych ho musel upravovat.

 
Nahoru Odpovědět
23.10.2014 7:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.