Erweitern Sie die Körperelementbreite über die Breite des Fensters hinaus

8

Ich habe eine Seite, die eine dynamisch generierte Tabelle enthält. Die Anzahl der Spalten dieser Tabelle und die Breite ihres Inhalts werden bei der Seitengenerierungszeit bestimmt, können jedoch so groß sein, dass die Tabelle die Breite des Fensters überschreitet.

In diesem Fall wird die Breite des body-Elements nicht erweitert, um den Inhalt zu enthalten, sondern ist auf die Breite des Fensters beschränkt. Daher haben alle anderen untergeordneten Elemente (mit Ausnahme der Tabelle) auch eine maximale Breite, die der Breite des Fensters entspricht:

%Vor%

Dies bedeutet, dass beim horizontalen Bildlauf die anderen Elemente auf Blockebene vorzeitig angehalten werden (ihre Hintergrundfarben werden nicht erweitert, wodurch das Aussehen der Seite beeinträchtigt wird).

Hier ist eine jsFiddle, die das Problem zeigt . Beachten Sie, dass der gelbe Block im Ergebnisfenster nach rechts erweitert wird, aber die braunen, weißen und blauen Blöcke nicht.

Ich suche nach einer reinen CSS-Methode zur Lösung dieses Problems.

Am nächsten kommt ich, ohne die Dokumentstruktur überhaupt zu verändern:

%Vor%

"min-content" wird jedoch von IE überhaupt nicht unterstützt. Hat jemand eine browserübergreifende, reine CSS-Lösung für dieses Problem?

Der Vollständigkeit halber (falls die Leute das jsFiddle nicht sehen können), hier ist ein Code, der das Problem anzeigt:

%Vor%     
megaflop 10.03.2014, 13:29
quelle

4 Antworten

10

Ich habe gerade folgendes CSS hinzugefügt. Und es funktioniert.

%Vor%     
Iqbal 10.03.2014, 14:04
quelle
0

Dies ist keine Lösung für genau die Frage, die Sie gestellt haben, aber eine ordentliche Option wäre das Hinzufügen von Überlauf: auto zu #main, so dass es intern blättern kann, ohne das Layout zu unterbrechen.

%Vor%

Demo: Ссылка

    
Grant Gibson 10.03.2014 13:40
quelle
0
___ qstnhdr ___ Erweitern Sie die Körperelementbreite über die Breite des Fensters hinaus ___ antwort22302042 ___

Dies ist ein Ansatz:

%Vor%

Der wideContent-Teil passt sich an die Breite des Fensters an.

    
___ tag123html ___ HTML (Hyper Text Markup Language) ist die Standard-Auszeichnungssprache, die zum Strukturieren von Webseiten und zum Formatieren von Inhalt verwendet wird. HTML beschreibt die Struktur einer Website semantisch zusammen mit Hinweisen für die Präsentation, wodurch sie eine Markup-Sprache statt einer Programmiersprache wird. Die neueste Revision der HTML-Spezifikation ist HTML5.2. ___ qstntxt ___

Ich habe eine Seite, die eine dynamisch generierte Tabelle enthält. Die Anzahl der Spalten dieser Tabelle und die Breite ihres Inhalts werden bei der Seitengenerierungszeit bestimmt, können jedoch so groß sein, dass die Tabelle die Breite des Fensters überschreitet.

In diesem Fall wird die Breite des body-Elements nicht erweitert, um den Inhalt zu enthalten, sondern ist auf die Breite des Fensters beschränkt. Daher haben alle anderen untergeordneten Elemente (mit Ausnahme der Tabelle) auch eine maximale Breite, die der Breite des Fensters entspricht:

%Vor%

Dies bedeutet, dass beim horizontalen Bildlauf die anderen Elemente auf Blockebene vorzeitig angehalten werden (ihre Hintergrundfarben werden nicht erweitert, wodurch das Aussehen der Seite beeinträchtigt wird).

Hier ist eine jsFiddle, die das Problem zeigt . Beachten Sie, dass der gelbe Block im Ergebnisfenster nach rechts erweitert wird, aber die braunen, weißen und blauen Blöcke nicht.

Ich suche nach einer reinen CSS-Methode zur Lösung dieses Problems.

Am nächsten kommt ich, ohne die Dokumentstruktur überhaupt zu verändern:

%Vor%

"min-content" wird jedoch von IE überhaupt nicht unterstützt. Hat jemand eine browserübergreifende, reine CSS-Lösung für dieses Problem?

Der Vollständigkeit halber (falls die Leute das jsFiddle nicht sehen können), hier ist ein Code, der das Problem anzeigt:

%Vor%     
___ answer22302368 ___

Ich habe gerade folgendes CSS hinzugefügt. Und es funktioniert.

%Vor%     
___ tag123css ___ CSS (Cascading Style Sheets) ist eine Darstellungsstilsprache, die das Aussehen und die Formatierung von HTML (Hyper Text Markup Language), XML-Dokumenten (Extensible Markup Language) und SVG-Elementen einschließlich (aber nicht beschränkt auf) Farben beschreibt. Layout, Schriftarten und Animationen. ___ answer22302296 ___

Nach weiterem Herumspielen habe ich eine Lösung gefunden, die das Hinzufügen eines zusätzlichen Umhüllungselements zu den drei Abschnittselementen beinhaltet. Dies kann für andere mit dem gleichen Problem nützlich sein, jedoch werde ich dies (noch) nicht als akzeptiert markieren, da ich immer noch darauf erpicht bin zu sehen, ob es eine CSS-Lösung gibt, die das HTML überhaupt nicht verändert.

Wie auch immer, diese Lösung besteht darin, die Elemente %code% , %code% und %code% in ein neues Element %code% einzufügen und das folgende CSS hinzuzufügen:

%Vor%

Scheint in Chrome, FF und IE zu funktionieren. Demo hier .

    
___ tag123horizontal scrolling ___ horizontal-scrolling bezieht sich auf eine Benutzeroberfläche, um Offscreen-Inhalte anzuzeigen, die breiter als der Bildschirm sind, indem Steuerelemente auf dem Bildschirm oder ein Eingabegerät zum Ändern des Links / Rechts-Offsets verwendet werden ___ answer22301800 ___

Dies ist keine Lösung für genau die Frage, die Sie gestellt haben, aber eine ordentliche Option wäre das Hinzufügen von Überlauf: auto zu #main, so dass es intern blättern kann, ohne das Layout zu unterbrechen.

%Vor%

Demo: Ссылка

    
___
cbcram 10.03.2014 13:49
quelle
0

Nach weiterem Herumspielen habe ich eine Lösung gefunden, die das Hinzufügen eines zusätzlichen Umhüllungselements zu den drei Abschnittselementen beinhaltet. Dies kann für andere mit dem gleichen Problem nützlich sein, jedoch werde ich dies (noch) nicht als akzeptiert markieren, da ich immer noch darauf erpicht bin zu sehen, ob es eine CSS-Lösung gibt, die das HTML überhaupt nicht verändert.

Wie auch immer, diese Lösung besteht darin, die Elemente header , footer und div#main in ein neues Element div.layout-row einzufügen und das folgende CSS hinzuzufügen:

%Vor%

Scheint in Chrome, FF und IE zu funktionieren. Demo hier .

    
megaflop 10.03.2014 14:01
quelle

Tags und Links