Wie würde ich meine header
davon abhalten, mit dem Rest der Seite zu scrollen? Ich dachte über die Verwendung von frame-sets
und iframes
, frage mich nur, ob es eine einfachere und benutzerfreundlichere Art und Weise, was wäre die beste Praxis dafür?Wie man den Header statisch hält, immer beim Scrollen oben?
Antwort
Verwenden position: fixed
auf dem div
, die Ihren Header enthält, mit so etwas wie
#header {
position: fixed;
}
#content {
margin-top: 100px;
}
In diesem Beispiel, wenn #content
beginnt 100px unter #header
, aber wenn der Benutzer blättert, #header
bleibt an seinem Platz. Natürlich ist es selbstverständlich, dass Sie sicherstellen wollen, dass #header
einen Hintergrund hat, so dass sein Inhalt tatsächlich sichtbar ist, wenn die beiden div
s überlappen. Werfen Sie einen Blick auf die position
Eigenschaft hier: http://reference.sitepoint.com/css/position
je nach der Beziehung zwischen Ihren 'div's, müssen Sie möglicherweise hinzufügen, margin-top: -100px;' 'zu dem' # header' zu bekommen es zurück, wo Sie es wollen. – rymo
Weißt du, wie man scrollen kann, bis es oben angekommen ist und dann "position: fixed"? Wenn deine Kopfzeile unter der Spitze begonnen hat? –
Es ist nicht in der DIV-Breite für mich enthalten. – SearchForKnowledge
hier ist eine mit CSS + jquery (Javascript) -Lösung.
hier ist Demo-Link Demo
//html
<div id="uberbar">
<a href="#top">Top of Page</a>
<a href="#bottom">Bottom of Page</a>
</div>
//css
#uberbar {
border-bottom:1px solid #eb7429;
background:#fc9453;
padding:10px 20px;
position:fixed;
top:0;
left:0;
z-index:2000;
width:100%;
}
//jquery
$(document).ready(function() {
(function() {
//settings
var fadeSpeed = 200, fadeTo = 0.5, topDistance = 30;
var topbarME = function() { $('#uberbar').fadeTo(fadeSpeed,1); }, topbarML = function() { $('#uberbar').fadeTo(fadeSpeed,fadeTo); };
var inside = false;
//do
$(window).scroll(function() {
position = $(window).scrollTop();
if(position > topDistance && !inside) {
//add events
topbarML();
$('#uberbar').bind('mouseenter',topbarME);
$('#uberbar').bind('mouseleave',topbarML);
inside = true;
}
else if (position < topDistance){
topbarME();
$('#uberbar').unbind('mouseenter',topbarME);
$('#uberbar').unbind('mouseleave',topbarML);
inside = false;
}
});
})();
});
Hier ist die DEMO
Html:
<div class="header">
<h1 class="header__content-text">
Header content will come here
</h1>
</div>
<div class="page__content-container">
<div>
<a href="http://imgur.com/k9hz3">
<img src="http://i.imgur.com/k9hz3.jpg" title="Hosted by imgur.com" alt="" />
</a>
</div>
<div>
<a href="http://imgur.com/TXuFQ">
<img src="http://i.imgur.com/TXuFQ.jpg" title="Hosted by imgur.com" alt="" />
</a>
</div>
</div>
CSS:
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 48px;
z-index: 10;
background: #eeeeee;
-webkit-box-shadow: 0 7px 8px rgba(0, 0, 0, 0.12);
-moz-box-shadow: 0 7px 8px rgba(0, 0, 0, 0.12);
box-shadow: 0 7px 8px rgba(0, 0, 0, 0.12);
}
.header__content-text {
text-align: center;
padding: 15px 20px;
}
.page__content-container {
margin: 100px auto;
width: 975px;
padding: 30px;
}
I perso Schließlich brauchte man eine Tabelle, bei der sowohl der linke als auch der obere Header jederzeit sichtbar war. Inspiriert von mehreren Artikeln, denke ich, habe ich eine gute Lösung, die Sie hilfreich finden können. Diese Version hat nicht das Wrapping-Problem, das andere Lösungen mit Floating divs oder flexibler/automatischer Größenanpassung von Spalten und Zeilen haben.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="javascript" type="text/javascript" src="/Scripts/jquery-1.7.2.min.js"></script>
<script language="javascript" type="text/javascript">
// Handler for scrolling events
function scrollFixedHeaderTable() {
var outerPanel = $("#_outerPanel");
var cloneLeft = $("#_cloneLeft");
var cloneTop = $("#_cloneTop");
cloneLeft.css({ 'margin-top': -outerPanel.scrollTop() });
cloneTop.css({ 'margin-left': -outerPanel.scrollLeft() });
}
function initFixedHeaderTable() {
var outerPanel = $("#_outerPanel");
var innerPanel = $("#_innerPanel");
var clonePanel = $("#_clonePanel");
var table = $("#_table");
// We will clone the table 2 times: For the top rowq and the left column.
var cloneLeft = $("#_cloneLeft");
var cloneTop = $("#_cloneTop");
var cloneTop = $("#_cloneTopLeft");
// Time to create the table clones
cloneLeft = table.clone();
cloneTop = table.clone();
cloneTopLeft = table.clone();
cloneLeft.attr('id', '_cloneLeft');
cloneTop.attr('id', '_cloneTop');
cloneTopLeft.attr('id', '_cloneTopLeft');
cloneLeft.css({
position: 'fixed',
'pointer-events': 'none',
top: outerPanel.offset().top,
'z-index': 1 // keep lower than top-left below
});
cloneTop.css({
position: 'fixed',
'pointer-events': 'none',
top: outerPanel.offset().top,
'z-index': 1 // keep lower than top-left below
});
cloneTopLeft.css({
position: 'fixed',
'pointer-events': 'none',
top: outerPanel.offset().top,
'z-index': 2 // higher z-index than the left and top to make the top-left header cell logical
});
// Add the controls to the control-tree
clonePanel.append(cloneLeft);
clonePanel.append(cloneTop);
clonePanel.append(cloneTopLeft);
// Keep all hidden: We will make the individual header cells visible in a moment
cloneLeft.css({ visibility: 'hidden' });
cloneTop.css({ visibility: 'hidden' });
cloneTopLeft.css({ visibility: 'hidden' });
// Make the lef column header cells visible in the left clone
$("#_cloneLeft td._hdr.__row").css({
visibility: 'visible',
});
// Make the top row header cells visible in the top clone
$("#_cloneTop td._hdr.__col").css({
visibility: 'visible',
});
// Make the top-left cell visible in the top-left clone
$("#_cloneTopLeft td._hdr.__col.__row").css({
visibility: 'visible',
});
// Clipping. First get the inner width/height by measuring it (normal innerWidth did not work for me)
var helperDiv = $('<div style="positions: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%;"></div>');
outerPanel.append(helperDiv);
var innerWidth = helperDiv.width();
var innerHeight = helperDiv.height();
helperDiv.remove(); // because we dont need it anymore, do we?
// Make sure all the panels are clipped, or the clones will extend beyond them
outerPanel.css({ clip: 'rect(0px,' + String(outerPanel.width()) + 'px,' + String(outerPanel.height()) + 'px,0px)' });
// Clone panel clipping to prevent the clones from covering the outerPanel's scrollbars (this is why we use a separate div for this)
clonePanel.css({ clip: 'rect(0px,' + String(innerWidth) + 'px,' + String(innerHeight) + 'px,0px)' });
// Subscribe the scrolling of the outer panel to our own handler function to move the clones as needed.
$("#_outerPanel").scroll(scrollFixedHeaderTable);
}
$(document).ready(function() {
initFixedHeaderTable();
});
</script>
<style type="text/css">
* {
clip: rect font-family: Arial;
font-size: 16px;
margin: 0;
padding: 0;
}
#_outerPanel {
margin: 0px;
padding: 0px;
position: absolute;
left: 50px;
top: 50px;
right: 50px;
bottom: 50px;
overflow: auto;
z-index: 1000;
}
#_innerPanel {
overflow: visible;
position: absolute;
}
#_clonePanel {
overflow: visible;
position: fixed;
}
table {
}
td {
white-space: nowrap;
border-right: 1px solid #000;
border-bottom: 1px solid #000;
padding: 2px 2px 2px 2px;
}
td._hdr {
color: Blue;
font-weight: bold;
}
td._hdr.__row {
background-color: #eee;
border-left: 1px solid #000;
}
td._hdr.__col {
background-color: #ddd;
border-top: 1px solid #000;
}
</style>
</head>
<body>
<div id="_outerPanel">
<div id="_innerPanel">
<div id="_clonePanel"></div>
<table id="_table" border="0" cellpadding="0" cellspacing="0">
<thead id="_topHeader" style="background-color: White;">
<tr class="row">
<td class="_hdr __col __row">
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
<td class="_hdr __col">
TOP HEADER
</td>
</tr>
</thead>
<tbody>
<tr class="row">
<td class="_hdr __row">
MY HEADER COLUMN:
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
</tr>
<tr class="row">
<td class="_hdr __row">
MY HEADER COLUMN:
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
<td class="col">
The quick brown fox jumps over the lazy dog.
</td>
</tr>
</tbody>
</table>
</div>
<div id="_bottomAnchor">
</div>
</div>
</body>
</html>
Wenn Sie bootstrap3 dann können Sie CSS verwenden können „navbar-Festplatte“ auch müssen Sie unter CSS legen zum Seiteninhalt nach unten drücken
body{
margin-top:100px;
}
Statt mit der Positionierung der Arbeits und Padding/Margin und ohne die Größe des Headers zu kennen, gibt es eine Möglichkeit, den Header durch Abspielen mit dem Scroll zu fixieren.
Siehe this plunker mit einem festen Header:
<html lang="en" style="height: 100%">
<body style="height: 100%">
<div style="height: 100%; overflow: hidden">
<div>Header</div>
<div style="height: 100%; overflow: scroll">Content - very long Content...
Der Schlüssel hier eine Mischung aus height: 100%
mit overflow
ist.
Siehe eine bestimmte Frage zum Entfernen der Rolle aus der Kopfzeile here und Antwort here.
Eine problematische Lösung. Es scheint, dass der untere Teil des Inhalts unter das Fenster geschoben wird. Sie können es klarer sehen, wenn Sie die Überschrift höher setzen. Irgendeine Idee, wie man das löst? –
Das scheint gut zu funktionieren, aber die Scroll wird auf meinem iPhone5 sehr langsam. –
@AlainZelink - Welche Browser-App verwenden Sie auf einem iPhone5? –
Nachdem all Antworten zu suchen durch, fand ich eine etwas andere Art und Weise mit einem Minimum an CSS und ohne JS, nur die Höhe des Kopfes richtig in diesem Fall in #content
, eingestellt werden muss 60px
CSS:
#header {
position: fixed;
width: 100%;
top: 0;
z-index: 10;
}
#content {
margin-top: 60px;
z-index:1;
}
HTML:
<body>
<div id="header" style="background-color:GRAY; text-align:center; border-bottom:1px SOLID BLACK; color:WHITE; line-height:50px; font-size:40px">
My Large Static Header
</div>
<div id="content">
<!-- All page content here -->
</div>
</body>
- 1. jQuery - Sticky Header, der beim Scrollen schrumpft
- 2. 3 Pane Layout mit Flex CSS mit Header immer oben auf der Seite selbst Scrollen
- 3. UITableView Abschnitt beim Scrollen oben einfügen
- 4. Wie bekomme ich beim Scrollen meine Sidebar nach oben?
- 5. Scrollen nach oben löst sowohl nach oben als auch nach unten beim Scrollen
- 6. Wie man Formular immer oben in Anwendung
- 7. Wie verhindert man ngDialog Scrollen nach oben und unten
- 8. Bottom fixed div hält springen beim Scrollen auf dem iPhone
- 9. Wie man das Fenster oben in tcl hält
- 10. Hält immer den gleichen C++ Fehler
- 11. Nach oben scrollen
- 12. Android WebView requestFocus: Wie verhindert man das Scrollen nach oben?
- 13. fadeIn fadeOut blinkt beim Scrollen nach oben und unten
- 14. TextView zurücksetzen nach oben scrollen
- 15. Nach oben scrollen
- 16. Menü/Topbar ändert sich beim Scrollen nach oben/unten
- 17. Wie man den TEXT-Einblendeffekt beim Scrollen nach unten macht
- 18. LinearLayout nach oben scrollen
- 19. Factory-Erstellungsmethoden immer statisch?
- 20. Header-Layout oben TabLayout
- 21. Fenster immer oben halten?
- 22. Entfernung von oben scrollen von oben jquery
- 23. wie man Fenster mit swift immer an der Spitze hält?
- 24. Stick UITableView Header-Ansicht nach oben beim Erstellen von Header im Storyboard
- 25. Wie man ein Div beim Scrollen festlegt
- 26. Wie kann man div beim Scrollen ausblenden und es dann beim Scrollen anzeigen?
- 27. Ausgewählte Zeile immer beim Scrollen von UITableView anzeigen?
- 28. Corona - Wie aktualisiert man Listenbilder beim Scrollen?
- 29. Wie scrollen WebView nach oben in Android?
- 30. TreeView-Steuerelement nach oben scrollen
Was meinst du mit 'header'? Von einer Seite? Von einem Tisch? – BrunoLM
Related: http://StackOverflow.com/Q/33075195/435605 –