Ich erstelle eine Web-App mit Bootstrap 4 und stoße auf einige seltsame Probleme. Ich möchte die auf Tabellen reagierende Klasse von Bootstrap verwenden, um ein horizontales Scrollen der Tabellen auf Mobilgeräten zu ermöglichen. Auf Desktop-Geräten sollte die Tabelle 100% der Breite des enthaltenen DIV einnehmen.
Sobald ich die auf .table reagierende Klasse auf meine Tabelle anwende, wird die Tabelle horizontal verkleinert und nimmt nicht mehr 100% der Breite ein. Irgendwelche Ideen?
Hier ist mein Markup:
<!DOCTYPE html>
<html lang="en" class="mdl-js">
<head>
<title></title>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="application-name" content="">
<meta name="theme-color" content="#000000">
<link rel="stylesheet" href="/css/bundle.min.css">
</head>
<body>
<div class="container-fluid no-padding">
<div class="row">
<div class="col-md-12">
<table class="table table-responsive" id="Queue">
<thead>
<tr>
<th><span span="sr-only">Priority</span></th>
<th>Origin</th>
<th>Destination</th>
<th>Mode</th>
<th>Date</th>
<th><span span="sr-only">Action</span></th>
</tr>
</thead>
<tbody>
<tr class="trip-container" id="row-6681470c-91ce-eb96-c9be-8e89ca941e9d" data-id="6681470c-91ce-eb96-c9be-8e89ca941e9d">
<td>0</td>
<td>PHOENIX, AZ</td>
<td>SAN DIEGO, CA</td>
<td>DRIVING</td>
<td><time datetime="2017-01-15T13:59">2017-01-15 13:59:00</time></td>
<td><span class="trip-status-toggle fa fa-stop" data-id="6681470c-91ce-eb96-c9be-8e89ca941e9d" data-trip-status="1"></span></td>
</tr>
<tr class="steps-container" data-steps-for="6681470c-91ce-eb96-c9be-8e89ca941e9d" style="display: none;">
<td colspan="6" class="no-padding"></td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
</div>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="/js/bundle.min.js"></script>
</body>
</html>
Wenn ich auf die auf .table reagierende Klasse eine Breite von 100% anwende, wird die Tabelle selbst zu 100% breit, aber die untergeordneten Elemente (TBODY, TR usw.) sind immer noch schmal.
quelle
table-responsive
Klasse als Wrapper greift auf Bootstrap 3 zurück ...? Ich bin froh, dass es vorerst eine Lösung gibt! Bootstrap 4 Alpha ;-)Diese Lösung hat bei mir funktioniert:
Fügen Sie einfach eine weitere Klasse zu Ihrem Tabellenelement hinzu:
w-100 d-block d-md-table
so wäre es:
<table class="table table-responsive w-100 d-block d-md-table">
Stellen Sie für Bootstrap 4
w-100
die Breite auf 100% eind-block
(Anzeige: Block) undd-md-table
(Anzeige: Tabelle auf Mindestbreite: 576 Pixel).Bootstrap 4-Anzeigedokumente
quelle
<table class="table table-responsive-md">
?Wenn Sie V4.1 verwenden und den entsprechenden Dokumenten entsprechen, weisen Sie .table-responsive nicht direkt der Tabelle zu. Die Tabelle sollte .table sein, und wenn Sie möchten, dass sie horizontal scrollbar (reaktionsfähig) ist, fügen Sie sie in einen auf .table reagierenden Container (
<div>
z. B. a) ein.Dabei wird kein zusätzliches CSS benötigt.
Im OP-Code kann .table-responsive neben dem .col-md-12 auf der Außenseite verwendet werden.
quelle
Aus irgendeinem Grund verhält sich insbesondere die Reaktionstabelle nicht so, wie sie sollte. Sie können es patchen, indem Sie es loswerden
display:block;
Ich kann einen Fehlerbericht einreichen.
Bearbeiten:
Es ist ein vorhandener Fehler.
quelle
Keine dieser Antworten funktioniert (Datum heute, 9. Dezember 2018). Die richtige Auflösung besteht darin, Ihrer Tabelle .table-responsive-sm hinzuzufügen:
Dies gilt nur für die SM-Ansicht (mobil). In der mobilen Ansicht erhalten Sie also den gewünschten Bildlauf, und in größeren Ansichten reagiert die Tabelle nicht und wird daher wie gewünscht in voller Breite angezeigt.
Dokumente: https://getbootstrap.com/docs/4.0/content/tables/#breakpoint-specific
quelle
Die mit v4 des Frameworks kompatible Lösung besteht darin, den richtigen Haltepunkt festzulegen. Anstatt .table-responsive zu verwenden, sollten Sie in der Lage sein, .table-responsive-sm zu verwenden (um nur auf kleinen Geräten zu reagieren)
Sie können einen der verfügbaren Endpunkte verwenden: table-responsive {-sm | -md | -lg | -xl}
quelle
Dies liegt daran, dass die
.table-responsive
Klasse die Eigenschaftdisplay: block
zu Ihrem Element hinzufügt , wodurch sie gegenüber der vorherigen geändert wirddisplay: table
.Überschreiben Sie diese Eigenschaft
display: table
in Ihrem eigenen StylesheetHinweis: Stellen Sie sicher, dass dieser Stil nach Ihrem Bootstrap-Code ausgeführt wird, damit er überschrieben wird.
quelle
Dies wird dadurch verursacht, dass die
table-responsive
Klasse der Tabelle eine Eigenschaft von gibtdisplay:block
, was seltsam ist, da dies dastable
Original der Klasse überschreibtdisplay:table
und die Tabelle beim Hinzufügen verkleinert wirdtable-responsive
.Höchstwahrscheinlich ist Bootstrap 4 noch in der Entwicklung. Sie können diese Eigenschaft sicher mit Ihrer eigenen Klasse überschreiben,
display:table
die die Reaktionsfähigkeit der Tabelle nicht beeinträchtigt.z.B
quelle
Unter Berücksichtigung der anderen Antworten würde ich so etwas tun, danke!
quelle
Wickeln Sie die Tabelle einfach mit .table-responsive {-sm | -md | -lg | -xl} ein
beispielsweise
Bootstrap 4 Tabellen
quelle
Ich habe festgestellt, dass die Verwendung der empfohlenen Klasse, die auf Tabellen reagiert, in einem Wrapper immer noch dazu führt, dass reaktionsfähige Tabellen (überraschenderweise) horizontal schrumpfen:
Die Lösung für mich bestand darin, die folgenden Medien-Haltepunkte und -Klassen zu erstellen, um dies zu verhindern:
Dann kann ich meinem Tabellenelement die entsprechende Klasse hinzufügen. Beispielsweise:
Hier setzt der Wrapper die Breite auf 100% für groß und größer pro Bootstrap. Mit der auf das Tabellenelement angewendeten table-lg-Klasse wird die Tabellenbreite für große und größere ebenfalls auf 100%, für mittlere und kleinere auf 992px festgelegt. Die Klassen table-xs, table-sm, table-md und table-xl funktionieren auf die gleiche Weise.
quelle
Verwenden Sie für Bootstrap 4.x Anzeige-Dienstprogramme:
w-100 d-print-block d-print-table
Verwendung :
quelle
Es scheint, als ob das "sr-only" -Element und seine Stile in der Tabelle diesen Fehler verursachen. Zumindest hatte ich das gleiche Problem und nachdem wir monatelang unseren Kopf gegen die Wand geschlagen hatten, stellten wir fest, dass dies die Ursache war, obwohl ich immer noch nicht verstehe, warum. Das Hinzufügen
left:0
zu den "nur sr" -Stilen hat das Problem behoben.quelle