Фон нижнего колонтитула должен расшириться на нижнюю часть браузера

Только необходимо волноваться об использовании физически непрерывной памяти, если к буферу получит доступ устройство DMA на физически обращенной шине (как PCI). Проблема состоит в том, что много системных вызовов не имеют никакого способа знать, будет ли их буфер в конечном счете передан устройству DMA: как только Вы передаете буфер другой подсистеме ядра, Вы действительно не можете знать, куда это собирается пойти. Даже если ядро не использует буфер для DMA сегодня, , будущая разработка могла бы сделать так.

vmalloc часто медленнее, чем kmalloc, потому что этому, вероятно, придется повторно отобразить пространство буфера в фактически непрерывный диапазон. kmalloc никогда не повторно отображается, хотя, если не названный с GFP_ATOMIC kmalloc может заблокироваться.

kmalloc ограничен в размере буфера, который это может обеспечить: 128 кбайт *) глоток>. При необходимости в действительно большом буфере необходимо использовать vmalloc или некоторый другой механизм как резервирование верхней памяти при начальной загрузке.

*) глоток> Это было верно для более ранних ядер. На недавних ядрах (я протестировал это на 2.6.33.2), макс. размер единственного kmalloc составляет до 4 МБ! (Я записал справедливо подробное сообщение на этом .) — kaiwan

Для системного вызова, Вы не должны передавать GFP_ATOMIC kmalloc (), можно использовать GFP_KERNEL. Вы не обработчик прерываний: код приложения вводит контекст ядра посредством прерывания, это не прерывание.

18
задан ant 15 December 2009 в 09:12
поделиться

10 ответов

То, что у вас здесь есть, является общей проблемой, на которую нет общего ответа, но что бы я на вашем месте попробовал, так как все эти вышеперечисленные предложения, очевидно, не работают, я бы попытался установить фон контейнера страниц любым цветом, скажем белым (#FFFFFFF), и я бы установил цвет фона тела любым другим цветом, кроме белого, скажем серым (#CCCCCC). И конечное положение сета - относительное, и, конечно, он должен быть расположен после всего, если вы хотите, чтобы он всегда был внизу. Таким образом, вы получите то, что вам нужно, на 100% уверенный, если будете следовать пошаговым инструкциям.

13
ответ дан 30 November 2019 в 08:27
поделиться

Попробуйте установить положение нижнего колонтитула на относительное и поиграйте с отрицательным верхним полем, чтобы получить желаемое это.

1
ответ дан 30 November 2019 в 08:27
поделиться

Обычно вам нужно задать нижнему колонтитулу фиксированную высоту , а для подтолкнуть нижний колонтитул с другим div такой же высоты вниз. Однако есть и другие особенности браузера, которые вам необходимо учитывать:

  1. html и body должны помимо высоты 100% нет (по умолчанию ) margin, чтобы нижний колонтитул не сдвинулся ниже этого значения.
  2. Элементы p и div на всей странице должны иметь no margin- top , чтобы нижний колонтитул не сдвигался ниже этого количества верхних полей в каждом Firefox.
  3. "Контейнер" div должен использовать min- height of 100% вместо height , чтобы нижний колонтитул не перекрывал оставшуюся часть содержимого. . IE6, который не знает min-height , отлично работает с height , поэтому для этого вам нужно добавить хак * html .

В общем, вот SSCCE , просто скопируйте и запустите его:

<!doctype html>
<html lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
        <title>SO question 1900813</title>
        <style>
            html, body {
                margin: 0;
                height: 100%;
            }
            p, div {
                margin-top: 0; /* Fix margin collapsing behaviour in FF. Use padding-top if necessary. */
            }
            #container {
                position: relative;
                min-height: 100%;
            }
            * html #container {
                height: 100%; /* This is actually "min-height" for IE6 and older. */
            }
            #pushfooter {
                height: 50px; /* Must be the same as footer height. */
            }
            #footer {
                position: absolute;
                bottom: 0;
                height: 50px;
            }      
        </style>
    </head>
    <body>
        <div id="container">
            <p>Some content</p>
            <div id="pushfooter"></div>
            <div id="footer">Footer</div>
        </div>
    </body>
</html>

Редактировать : после дополнительных испытаний я понял, что это действительно не работать в IE8 (я все еще считаю его бета-версией, поэтому я не использовал / не тестировал его, извините за это), , если только вы не разрешите ему отображать в режиме совместимости IE7 (вставьте здесь грустный смайлик), добавив следующий метатег к (который я уже добавил в SSCCE здесь выше):

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

или , чтобы он мог отображаться в режиме причуд с использованием «неправильного» типа документа (либо удалите или выберите один из доктипов, связанных с болезненно красными Q полями в IE здесь ). Но я бы не стал этого делать, это также имеет больше негативных побочных эффектов.

И, что удивительно, сайт http://www.cssstickyfooter.com , как кто-то здесь упомянул здесь, который использовал совершенно другой подход также не работал в IE8 (попробуйте изменить размер окна браузера по оси Y, нижний колонтитул не будет перемещаться по нему, в отличие от других браузеров, включая IE6 / 7). Этот браузер меня не перестает удивлять. Действительно.

doctype (удалите или выберите один из доктайпов, связанных с болезненно красными полями Q в IE здесь ). Но я бы не стал этого делать, это также имеет больше негативных побочных эффектов.

И, что удивительно, сайт http://www.cssstickyfooter.com , как кто-то здесь упомянул здесь, который использовал совершенно другой подход также не работал здесь в IE8 (попробуйте изменить размер окна браузера по оси Y, нижний колонтитул не будет перемещаться по нему, в отличие от других браузеров, включая IE6 / 7). Этот браузер меня не перестает удивлять. Действительно.

doctype (удалите или выберите один из доктайпов, связанных с болезненно красными полями Q в IE здесь ). Но я бы не стал этого делать, это также имеет больше негативных побочных эффектов.

И, что удивительно, сайт http://www.cssstickyfooter.com , как кто-то здесь упомянул здесь, который использовал совершенно другой подход также не работал в IE8 (попробуйте изменить размер окна браузера по оси Y, нижний колонтитул не будет перемещаться по нему, в отличие от других браузеров, включая IE6 / 7). Этот браузер меня не перестает удивлять. Действительно.

у которого также есть более отрицательные побочные эффекты.

И, что удивительно, сайт http://www.cssstickyfooter.com , как уже упоминалось здесь кем-то другим, который использовал совершенно другой подход, также сделал ] not здесь работает в IE8 (попробуйте изменить размер окна браузера по оси Y, нижний колонтитул не будет перемещаться по нему, в отличие от других браузеров, включая IE6 / 7). Этот браузер меня не перестает удивлять. Действительно.

у которого также есть более отрицательные побочные эффекты.

И, что удивительно, сайт http://www.cssstickyfooter.com , как здесь упоминал кто-то здесь, который использовал совершенно другой подход, также сделал ] not здесь работает в IE8 (попробуйте изменить размер окна браузера по оси Y, нижний колонтитул не будет перемещаться по нему, в отличие от других браузеров, включая IE6 / 7). Этот браузер меня не перестает удивлять. Действительно.

1
ответ дан 30 November 2019 в 08:27
поделиться

. Зависит от того, что вы хотите сделать. Если вы хотите, чтобы он всегда был виден в нижней части экрана, вам следует использовать

div.footer{
    position: fixed;
    bottom: 0;
}

. Убедитесь, что у вас есть отступ в нижней части вашего тела (или контейнера, чтобы люди действительно могли прокручивать текст до конца) . Основная проблема здесь в том, что при изменении размера все элементы будут перекрываться.

Если вы просто хотите иметь нижний колонтитул с фоновым изображением / цветом, который растягивается до конца (для страниц, высота которых не является полной), вы можно попытаться использовать принцип псевдоколонки или даже попытаться дать своему телу цвет фона нижнего колонтитула и исправить фон заголовка / содержимого.

Сегодня я наткнулся на эту страницу: http://www.xs4all.nl/~peterned/examples/csslayout1.html

Может быть полезно

0
ответ дан 30 November 2019 в 08:27
поделиться

Оформить заказ CSS Sticky Footer для отличного метода кроссбраузерности.

По сути, этот сайт заставляет нижний колонтитул прилипать к краю браузера и дает ему отрицательное поле, которое имеет то же значение, что и высота нижнего колонтитула. Таким образом, нижний колонтитул обязательно будет оставаться внизу.

8
ответ дан 30 November 2019 в 08:27
поделиться

Вы можете добавить push div к последнему элементу перед нижним колонтитулом, чтобы всегда гарантировать, что нижний колонтитул не перекрывает содержимое.

В этом примере :

<html>
  <body>
    <div class="header" />
    <div class="content" />
    <div class="footer_push" />
    <div class="footer" />
  </body>
</html>

Если

3
ответ дан 30 November 2019 в 08:27
поделиться

То, что вы ищете, - это липкий нижний колонтитул, вы можете найти множество ресурсов, подобных этому: http://ryanfait.com/resources/footer-stick-to -bottom-of-page /

0
ответ дан 30 November 2019 в 08:27
поделиться

попробуйте следующее:

#wpr{
    display: table;
    height:  100%;
    width:   100%;
}
.dsp-tr{
    display: table-row;
}
.dsp-tc{
    display: table-cell;
}
#ftr-cnr{
    text-align:     center;
    vertical-align: middle;
}
#ftr{
    background-color: red;
    padding:          10px 0px;
    font-size:        24px;
}


<div id="wpr">
  <div class="dsp-tr">
    <div class="dsp-tc">
      body
    </div>
  </div>
  <div class="dsp-tr">
    <div class="dsp-tc" id="ftr-cnr">
      <div id="ftr">
        footer
      </div>
    </div>
  </div>
</div>

отображение: таблица не делает ее таблицей,

все еще
, она просто говорит браузеру отобразить ее как таблицу. Я протестировал его в хроме и файрфоксе. дай мне знать, если это сработает с тобой.

0
ответ дан 30 November 2019 в 08:27
поделиться

Есть ли у вас DOCTYPE заявление в верхней части HTML?

Если да, есть большая вероятность, что у меня есть решение для вас.

Я пытался сделать height:100% table или div (предполагая, что это базовый краеугольный камень для функции расширяющегося футера)

Независимо от того, что я сделал, 100% height не сработало! элементы просто не растягивались...

Я сузил его до очень базового HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test1</title>
</head>
<body>
<div style="border: 2px solid red; height: 100%">Hello
World</div>
</body>
</html>

но DIV не растягивался до конца вниз (100% было проигнорировано). Это было верно и для таблиц с обычным атрибутом height="100%".

В качестве отчаянной последней догадки я удалил строку DOCTYPE, в результате чего получился этот код

<html>
<head>
<title>Test1</title>
</head>
<body>
<div style="border: 2px solid red; height: 100%">Hello
World</div>
</body>
</html>

И это сработало!

Я уверен, что есть хорошее объяснение, но мне действительно было все равно, так как это решило проблему

Обновление

См. соответствующий вопрос (заданный мной)

.
0
ответ дан 30 November 2019 в 08:27
поделиться

У нас была эта проблема несколько раз. Мы не смогли найти только Cross Browser CSS только для решения. Мы наконец прибегали к jQuery. Мы написали наших собственных (я не могу публиковать), но этот http://www.hardcode.nl/archives_139/article_244-jquery-sticky-footer.htm выглядит многообещающим:

$(function(){
    positionFooter(); 
    function positionFooter(){
        if($(document.body).height() < $(window).height()){
            $("#pageFooterOuter").css({position: "absolute",top:($(window).scrollTop()+$(window).height()-$("#pageFooterOuter").height())+"px"})
        }   
    }

    $(window)
        .scroll(positionFooter)
        .resize(positionFooter)
});
0
ответ дан 30 November 2019 в 08:27
поделиться