zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Tabellenspalten entfernen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 29.06.2011, 14:23
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2006
Beiträge: 622
Rico wird schon bald berühmt werden
Standard Tabellenspalten entfernen

Hallo

ich habe nicht gewusst wie problematisch und aufwendig print.css werden können.

Bei Datentabellen habe ich das Problem, dass ich ganze Spalten aus dem Print entfernen möchte, um Platz zu sparen. display:none blendet wohl den Inhalt aus, der Platz bleibt aber erhalten. Die Spalte besteht aus <th> und <td>. Der Trick z.B. width = 1px zu setzen kann natürlich auch nicht funktionieren

Jemand eine Idee ?
Danke und Gruss
Rico
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.06.2011, 14:42
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Rico Beitrag anzeigen
display:none blendet wohl den Inhalt aus, der Platz bleibt aber erhalten.
Das sollte so nicht sein. Wie machst du das denn?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 29.06.2011, 16:57
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2006
Beiträge: 622
Rico wird schon bald berühmt werden
Standard

Es handelt sich immer um Spalten mit einer Überschrift <th> (Text) und in den Zellen nur img. Die <th class="s06"> ist die 6.Spalte
Code:
#bahn .s06 {display : none;}
#bahn td img {display : none;}
Dies ist ein vereinfachtes Beispiel. Es gibt mehrere solcher Spalten auf einer Seite, aber immer nach demselben Muster. Also class="11", class="13", etc.

Gruss Rico
Mit Zitat antworten
  #4 (permalink)  
Alt 29.06.2011, 17:18
{ display: random;}
XHTMLforum-Kenner
 
Registriert seit: 08.09.2004
Ort: Stuttgart
Beiträge: 5.034
andir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblick
Standard

Auch hier gilt das bereits im anderen Thread Gesagte:

Die innere logische (Zu-)Ordnung von th zu td's einer "Spalte" hat nichts mit CSS zu tun. Das CSS richtet sich nach der Elementefolge /-hierarchien etc. und nicht nach für andere Zwecke entworfenen Zuordnungen.

Was Du überlegst, basiert auf einem Mißverständnis.Du kommst so also nicht weiter. Siehe dieses Beispiel - Quelltext ist immer hilfreich.
HTML-Code:
<tr>
        <th align="left" valign="middle">1</th>
        <th align="left" valign="middle">2</th>
        <th align="left" valign="middle">3</th>
        <th class="blabla" align="left" valign="middle">4</th>
        <th align="left" valign="middle">5</th>
    </tr>
    <tr>
        <td align="left" valign="middle">1<img src="blind.gif" /></td>
        <td align="left" valign="middle">2<img src="blind.gif" /></td>
        <td align="left" valign="middle">3<img src="blind.gif" /></td>
        <td align="left" valign="middle">4<img src="blind.gif" /></td>
        <td align="left" valign="middle">5<img src="blind.gif" /></td>
    </tr>
    <tr>
        <td align="left" valign="middle">1</td>
        <td align="left" valign="middle">2</td>
        <td align="left" valign="middle">3</td>
        <td align="left" valign="middle">4</td>
        <td align="left" valign="middle">5</td>
    </tr>
Die Klasse "blabla" hat zunächst einmal nichts mit irgendwelchen td's zu tun, jedenfalls nicht aus der Quelltextsicht des CSS-Parsers.

Edit: Zugegeben, das ist ein bisschen gemein, weil sich zumindest der Hintergrund einer col einfärben läßt und andere Eigenschaften bestimmen lassen. Aber weiter geht die Zuordnung nicht... weil im Quelltext keine Elementehierarchie col>td>img zu finden ist.
__________________
Grüsse Andreas- auch mal wieder da...

Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams)
Wiedergelesen: > hier und hier

[Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte

Geändert von andir (29.06.2011 um 17:29 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 29.06.2011, 18:09
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2006
Beiträge: 622
Rico wird schon bald berühmt werden
Standard

@andir

ich danke dir für die Aufklärung. Man lernt immer wieder etwas dazu. Sehe ich das richtig, dass ich also keine Möglichkeit habe, eine vollständige Spalte zu löschen, ausser ich setze JS ein ?

Es grüsst dich
Rico
Mit Zitat antworten
  #6 (permalink)  
Alt 29.06.2011, 18:23
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Nur mal eben auf die Schnelle zusammengeschustert:

HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
		<title>[ untitled ]</title>
		<style type="text/css">
			table { border: 1px solid #000; }
			.hide { display: none; }
		</style>
	</head>
	<body>
		<table>
			<tr>
				<th>Spalte 1</th>
				<th class="hide">Spalte 2</th>
				<th>Spalte 3</th>
			</tr>
			<tr>
				<td>Spalte 1</td>
				<td class="hide">Spalte 2</td>
				<td>Spalte 3</td>
			</tr>
		</table>
		<table>
			<thead>
				<tr>
					<th>Spalte 1</th>
					<th class="hide">Spalte 2</th>
					<th>Spalte 3</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>Spalte 1</td>
					<td class="hide">Spalte 2</td>
					<td>Spalte 3</td>
				</tr>
			</tbody>
		</table>
		<table>
			<colgroup>
				<col />
				<col class="hide" />
				<col />
			</colgroup>
			<tr>
				<th>Spalte 1</th>
				<th>Spalte 2</th>
				<th>Spalte 3</th>
			</tr>
			<tr>
				<td>Spalte 1</td>
				<td>Spalte 2</td>
				<td>Spalte 3</td>
			</tr>
		</table>
	</body>
</html>
Beim letzten Beispiel war mir schon klar, dass das nicht funktioniert, aber testen wollte ich es trotzdem.
Die anderen beiden Beispiele funktionieren, Du musst die Klasse halt nur wirklich jeder "td" bzw. "th" geben, welche nicht angezeigt werden soll.
Mit Zitat antworten
  #7 (permalink)  
Alt 29.06.2011, 18:25
Standardkatze
XHTMLforum-Kenner
 
Registriert seit: 06.02.2007
Beiträge: 1.820
gato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nettgato ist einfach richtig nett
Standard

Wenn du visibility:collapse; auf eine Tabellenspalte (col) anwendest, erreichst du dein Ziel. HTML sollte euch doch bekannt sein, liebe Leute.

Allerdings gibt es in Abhängigkeit von der restlichen Darstellung der Tabelle ggfs. Probleme in manchen Browsern (Firefox verträgt sich da z.B. nicht mit border-collapse).

@andir: Was sollen die ganzen unsinnigen Attribute in der Tabelle?
__________________
Über Internet Explorer 8:
Noch bis 8. April 2014 wird der Internet Explorer 6 mit Sicherheitsupdates versorgt.
Bereits jetzt kann dieser Browser aber vollständig durch den IE8 ersetzt werden. Ältere Betriebssysteme und Browserversionen werden von Microsoft nicht mehr unterstützt.
Auch Programme, die den IE7 benötigen, sind kein Argument gegen IE8, da dieser über entsprechende Kompatibilitätsschichten verfügt.
Ab sofort gilt daher der Internet Explorer 8 als vorausgesetzer Mindeststandard.

Geändert von gato (29.06.2011 um 18:27 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 29.06.2011, 19:06
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2006
Beiträge: 622
Rico wird schon bald berühmt werden
Standard

@mantiz
dass dein Vorschlag funktionieren würde, ist mir schon klar. 1. Gibt es nicht nur eine Tabelle der Art und 2. sind sie dynamisch. Für ein Printlayout ein nicht zu rechtfertigender Aufwand.

@gato
wenn der Inhalt im folgenden Link stimmt, dann ist visibilty:collapse; ebenfalls nicht zu gebrauchen. Selbst getestet habe ich es noch nicht. Im IE gehts gar nicht, bei den übrigen Browsern in unbrauchbarer Form.
CSS visibility (siehe ganz unten auf der Seite)

Gruss
Rico
Mit Zitat antworten
  #9 (permalink)  
Alt 29.06.2011, 19:23
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2006
Beiträge: 622
Rico wird schon bald berühmt werden
Standard

Nun habe ich in die Trickkiste gegriffen. Für ein Printlayout kann der Aufwand nicht ins Unermesslich führen.
Anstatt :

Code:
#bahn .s06 {display : none;}
#bahn td img {display : none;}
Habe ich nun geschrieben :
Code:
#bahn .s06 {font-size : 0px;}
#bahn td img {display : none;
Jetzt sieht der Print in allen Browsern sauber aus, die Spalten sind zwar immer noch vorhanden, aber den Tabellenausdruck bringe ich nun auf einer A4-Hochformat unter. Zuvor war es nicht einmal auf A4-Quer richtig darzustellen.

Wenn nicht jemand eine blitzsaubere Lösung kennt, bleibe ich bei meiner Version

Ich danke euch allen für neue Erkenntnisse und eure Hilfe
Es grüsst euch
Rico
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 29.06.2011, 19:24
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Zitat:
Zitat von gato Beitrag anzeigen
Wenn du visibility:collapse; auf eine Tabellenspalte (col) anwendest, erreichst du dein Ziel. HTML sollte euch doch bekannt sein, liebe Leute.
Zunächst einmal handelt es sich dabei um CSS, nicht HTML.
Dann war mir der Wert "collapse" für "visibility" bis dato unbekannt, man kann ja nicht alles im Kopf haben.

Zitat:
Zitat von Rico Beitrag anzeigen
@mantiz
dass dein Vorschlag funktionieren würde, ist mir schon klar. 1. Gibt es nicht nur eine Tabelle der Art und 2. sind sie dynamisch. Für ein Printlayout ein nicht zu rechtfertigender Aufwand.
Davon hast Du vorher allerdings nichts geschrieben, dass Dir klar ist, dass es so funktioniert.

Gerade wenn die Tabellen dynamisch erstellt werden sollte dies aber kein Problem darstellen.

Weiter oben hast Du etwas von einer Klasse "s06" geschrieben, woher soll ich wissen, dass Du diese Klasse nur der "th" gibst?
Weiterhin kann man die Zellen allerdings auch z.B. per Nachbarschaftsselektor ansprechen und entsprechend "display:none" setzen (je nachdem welche Browser bzw. -versionen unterstützt werden sollen).

PS: Naja, hast ja jetzt anscheinend eine Lösung für Dich gefunden.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
modrewrite php query entfernen? sepp88 Serveradministration und serverseitige Scripte 10 28.07.2010 11:51
Rahmen um Navigation entfernen hirschMeister CSS 7 02.01.2010 21:53
Entfernen der Inhalte einer Auswahlliste vector Javascript & Ajax 4 19.07.2007 15:31
Copyright Hinweis entfernen trotz OpenSource? Weyoun Offtopic 13 18.07.2006 01:47
Button-Effekt entfernen swiftrock CSS 2 06.10.2005 13:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:45 Uhr.