Probleme mit css und Tabellenbreite
am 05.12.2018 - 22:32 Uhr in
Hallo,
ich habe in einem Node eine Tabelle gemacht die per Theme standardmäßig 100% breite hat. Nun muss ich aber auf dem Handy das ganze wegen der Breite anders anzeigen, deshalb habe ich den beiden Sachen eine Klasse zugewiesen und blende per css die Tabelle auf dem Handy aus (display:none;) und auf dem PC ein.
Allerdings habe ich schon alles mögliche probiert, sobald die Tabelle eine Klasse hat ist sie mitmal nicht mehr über die ganze breite, während das Styling vom Theme ansonsten scheinbar erhalten bleibt.
Ich habe es probiert mit allem möglichen wie z.B.:
.showpc {display:block;}
.showpc {display:inline;}
.showpc {display:inline-block;}
.showpc {display:table;}
.showpc table {display:table; width: 100%;}
etc....
Warum passiert das und wie stelle ich die Tabelle auf voller Breite dar?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ohne die Webseite zu sehen,
am 06.12.2018 - 07:19 Uhr
Ohne die Webseite zu sehen, ist schwer zu sagen, woran es hakt.
Ich mache sowas inzwischen nur noch mit DIV-Containern, die ich dann unterschiedlich formatiere.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
ohne quelltext kann natürlich
am 06.12.2018 - 11:46 Uhr
ohne quelltext kann natürlich nicht sagen woran es liegt.
wahrscheinlich ein klener tipfehler...
C.A.W. Webdesign
Es geht um das Drupal 8
am 06.12.2018 - 21:46 Uhr
Es geht um das Drupal 8 Custom Theme von Zymphonies.
Der Quelltext der im Body der Seite steht (Persönliche Daten des Freundes von mir - Adresse - hier durch XXX ersetzt):
<h2 class="text-align-center">Unsere Anschrift</h2>
<p> </p>
<table align="center" border="0" cellpadding="0" cellspacing="0" class="showpc">
<thead>
<tr>
<th colspan="5" scope="col" style="text-align:center;">XXX</th>
</tr>
</thead>
<tbody>
<tr>
<td> </td>
<td style="width: 200px;">XXX</td>
<td style="width: 70px;">Büro:</td>
<td class="text-align-right" style="width: 180px;">XXX</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td style="width: 200px;">XXX</td>
<td style="width: 70px;">Fax:</td>
<td class="text-align-right" style="width: 180px;">XXX</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td style="width: 200px;">XXX</td>
<td style="width: 70px;">Mobil:</td>
<td class="text-align-right" style="width: 180px;">XXX</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td style="width: 200px;"><a href="https://www.google.de/maps" target="_blank">Google Maps</a></td>
<td colspan="2" style="width: 250px;">XXX</td>
<td> </td>
</tr>
</tbody>
</table>
<h4 class="showmobile text-align-center">XXX</h4>
<p class="showmobile text-align-center">XXX<br />
XXX<br />
XXX</p>
<p class="showmobile text-align-center"><a href="https://www.google.de/maps/" target="_blank">Google Maps</a></p>
<p class="showmobile text-align-center">XXX<br />
XXX<br />
XXX<br />
XXX</p>
Dies habe ich ans Ende der custom-media.css gehängt:
@media (min-width: 767px) {
/* Dinge wie Adresstabelle für PC zeigen, auf dem Handy ausblenden */
.showmobile {display:none;}
.showpc {display:block;}
}
Dies habe ich ans Ende der custom-style.css gehängt:
/* Dinge wie Adresstabelle für PC ausblenden, auf dem Handy zeigen */
.showmobile {display:block;}
.showpc {display:none;}
Und wie gesagt ich habe statt display:block; schon alles mögliche probiert.... Ich bin ratlos.
Aus und einblenden tut er alles die tabelle sieht scheinbar auch aus wie sie soll (Zellenbreite nicht überprüft), aber sie ist nun links und nicht mehr 100% Seitenbreite.
Ich vermute der Container ist einfach nicht 100% breit, aber warum?
Ich muss dazu sagen, das letzte mal habe ich vor locker 8 Jahren Drupal benutzt und css geschrieben...... Aber ich seh keinen Fehler.
@media (min-width: 767px) {
am 07.12.2018 - 04:14 Uhr
@media (min-width: 767px) {
/* Dinge wie Adresstabelle für PC zeigen, auf dem Handy ausblenden */
.showmobile {display:none;}
.showpc {display:block;}
}
musss lauten
@media (min-width: 767px) {
/* Dinge wie Adresstabelle für PC zeigen, auf dem Handy ausblenden */
.showmobile {display:none;}
.showpc {widht:100%;}
}
C.A.W. Webdesign
Aber in der ersten CSS wird
am 07.12.2018 - 15:40 Uhr
Aber in der ersten CSS wird es doch auf display none gesetzt, dann nutzt es ja nichts nur die breite zu setzen, sondern muss auch erstmal aktiviert werden bei breiterem Bildschirm.
Deswegen hatte ich
display:table; width:100%;
gemacht aber er zeigt es nur an und ignoriert die Breite.
Vor allem sollte er es doch wenn ich das richtig verstehe mit display:table eh so machen wie die Tabellen im Layout schon definiert sind und das ist in dem Layout schon auf 100%.
Das geht auch problemlos, sobald ich nur die Klasse bei der Tabelle entferne.
mach doch einfach mal einen
am 07.12.2018 - 15:48 Uhr
mach doch einfach mal einen link auf die seite
C.A.W. Webdesign
http://drupal.wtakademieharbu
am 08.12.2018 - 16:09 Uhr
http://drupal.wtakademieharburg.com/ueber-uns
Dazu muss ich sagen, wenn ich dem display:block; noch color: ... folgen lasse wird die Schrift farbig angezeigt. nur die Breite geht nicht auf 100%
Die WingTsun Akademie Harburg
am 08.12.2018 - 17:42 Uhr
Die WingTsun Akademie Harburg Tabelle???
Da sind ja direkt in der Tabelle Formatierungen mit Breite 200px drin....
C.A.W. Webdesign
@caw, so wie ich es verstehe,
am 08.12.2018 - 18:21 Uhr
@caw, so wie ich es verstehe, darf es ja keine Rolle spielen, dass in der Tabelle feste Breiten im Style stehen, weil die eh ausgeblendet wird?
So ganz kapiere ich die Problematik aber auch nicht.
@Gorkde, sieht doch ganz annehmbar aus? hast Du noch was verändert?
Tabellen sind und bleiben im resposniven Zeitalter ein Gekrampfe, das man nur in wirklich begründeten Fällen verwenden sollte.
Im Beispiel gibt es nicht den geringsten Grund, das mit Tabellen zu gestalten.
Wenn Du die in mobiler Ansicht mit display:none ausblendest, wird der Inhalt dennoch zum Client transportiert und kostet 'Transfervolumen, was bei schlechter oder teurer Verbindung nervig sein kann.
Entweder verwendest Du Div Container, die je nach Bildschirmbreite unterschiedlich formatiert werden, oder Du versuchst diesen Trick hier anwenden:
https://blog.kulturbanause.de/2012/06/tabellen-im-responsive-webdesign/
"Tabellen mit CSS umstrukturieren"
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
natürlich speilt es eine
am 09.12.2018 - 06:23 Uhr
natürlich speilt es eine rolle: wenn in der taelle direkt 200px breite angegeben sind, wird die natürlich nicht mit 100% breite angezeigt...
C.A.W. Webdesign
@Caw Die Tabelle wird doch im
am 09.12.2018 - 12:31 Uhr
@Caw Die Tabelle wird doch im mobilen Bereich ausgeblendet, deswegen meine ich, es spielt keine Rolle...oder was verstehe ich falsch?
Naja, vielleicht sehe ich nicht mehr den alten Stand, evt. wurde ja noch was geändert.
Eigentlich Zeitverschwendung, sich damit lange aufzuhalten.
Tabelle ist hier sowieso fehl am Platz...
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Da sind feste BReiten drin
am 09.12.2018 - 14:35 Uhr
Da sind feste Breiten drin und links und rechts je eine Spalte OHNE feste Breite.
Wenn ich die Klasse entferne wird es ja auch korrekt angezeigt.
Es wurde entschieden das mit Tabelle zu machen, weil das vom Design dann später zum Rest passt.
Die Frage ist nur warum sich die Breite nicht auf 100% anpasst sobald es eine CSS Klasse hat und per CSS aus/an geschaltet wird.
Handy aus, PC an. Spalten die sich anpassen können gibt es ja und ohne CSS dispaly geht es ja wie es soll.
Ich hab es jetzt anders
am 09.12.2018 - 14:49 Uhr
Ich hab es jetzt anders gelöst, indem ich ganz darauf verzichte die Tabelle mit display überhaupt wieder zu aktivieren, sondern mit Media Queries min-width und max-width jeweils nur abschalte. Darauf bin ich garnicht gekommen.
Aber trotz allem interessiert es mich, warum es nicht auf 100% Seitenbreite ging wenn ich es mit display anschalte.
Tabellen-Design nutze ich
am 09.12.2018 - 16:04 Uhr
Tabellen-Design nutze ich natürlich auch, nur mache ich es nicht mit Table sondern mit DIV Containern:
https://www.sinnesart-massagen.de/content/anwesenheit
(Design ist nicht von mir - nur technische Umsetzung)
warum es nicht auf 100% Seitenbreite ging wenn ich es mit display anschalte
Meinst Du die Zelle, oder die ganze Tabelle?
Die Tabelle ist ja auf 100%.
Die Zellen können im Tabellenverband nicht mehr als ein Drittel der Breite einnehmen.
Um das zu schaffen, müsstest Du die feste breite-Angaben für td-Elemente mit 100% überschreiben und dazu noch display:block schreiben.
Aber so wie Du es jetzt hast, ist doch OK.
Nur bei großen Datenmengen wäre es nicht so ideal, die Daten redundant auszuliefern.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ja die Tabelle geht sobald
am 09.12.2018 - 16:34 Uhr
Die Tabelle geht eben sobald ich display:table oder block etc. im css auf sie anwende grundsätzlich NICHT über die ganze Seitenbreite.
Also zumindest war sie das ehe ich es anders gelöst habe bei mir nur klein und nicht wie jetzt über die ganze Seite.
Jetzt ist es wie es sollte, aber nur, weil ich display zum wieder anzeigen auf dem PC komplett vermieden und es anders gelöst habe. Ich wüsste halt gern was die Ursache war.