2015-04-17 1 views
22

Я выполнил описанные здесь шаги - http://materializecss.com/footer.html - чтобы создать липкий нижний колонтитул, но результаты не так ожидаются.Материализовать CSS - Липкий нижний колонтитул

скопировать вставить следующий код в файл materialize.min.css:

body { 
    display: flex; 
    min-height: 100vh; 
    flex-direction: column; 
    } 

    main { 
    flex: 1 0 auto; 
    } 
+0

* но результаты не как ожидалось. * Можете ли вы быть более конкретными и дать нам демо (скрипку возможно)? –

+0

Почему вы копируете uninified css в мини-файл? – ajmajmajma

ответ

44

Вы, вероятно, не используя <main> тег

Примечание: Мы используем Flexbox структурировать наш HTML так что нижний колонтитул всегда находится в нижней части страницы. Важно, чтобы сохранить структуру вашей страницы в тегах 3 HTML5: <header>, <main>, <footer>

+0

Спасибо Kenneth De Win этот исправленный мой вопрос – ZoT

+0

Это исправило мою проблему. –

+1

Как я должен использовать

Я обернул все мое содержимое нижним колонтитулом внутри, и он не работал, поддерживая нижний колонтитул вне основного также не работал // = – kroe

3

просто добавить (#) перед (основной).

body { 
    display: flex; 
    min-height: 100vh; 
    flex-direction: column; 
    } 

    #main { 
    flex: 1 0 auto; 
    } 
+0

Это будет иметь смысл, если вы не используете основной тег, а вместо этого div с классом '.main', который не является тем, что они рекомендуют. – batjko

0

Поместите фоновый цвет как на тело, так и на главные селектора в css и посмотрите на оба элемента. Если один из них не изменил цвет, это может быть проблемой в css, который был до него, т.е. проверьте стили над ним.

3

Если посмотреть на источник примера странице вы можете увидеть, как они делают это: http://materializecss.com/footer.html

Структура ваш HTML, как на примере ниже:

<body> 
    <header></header> 
    <main></main> 
    <footer></footer> 
</body> 
1

Для тех, кто использует Ember. js (v2.14): Вам придется немного изменить инструкции.

Если ваше приложение/шаблон/application.hbs выглядит следующим образом:

<header> 
</header> 

<main> 
{{outlet}} 
</main> 

<footer> 
</footer> 

Тогда ваше приложение/стили/app.js должен выглядеть следующим образом:

.ember-view { 
    display: flex; 
    flex-direction: column; 
} 

main { 
    min-height: 100vh; 
    flex: 1 0 auto; 
} 
+0

Это исправило мою проблему. Спасибо огромное! – Cameron

2

материализовать CSS требует структуру:

<body> 
    <header></header> 
    <main></main> 
    <footer></footer> 
</body> 

для сохранения. Вот как вы можете реализовать его реакции:

index.html

<body id="root"></body> 

index.js

ReactDOM.render(<App/>, document.getElementById('root')) 

App.js

render() { 
return (
    [ 
    <header> 
     ... 
    </header>, 
    <main> 
     ... 
    </main>, 
    <footer> 
     ... 
    </footer> 
    ] 
); 

Обратите внимание, что мы возвращаем массив для рендеринга нескольких элементов на одном уровне.

индекс.CSS

body { 
    display: flex; 
    min-height: 100vh; 
    flex-direction: column; 
} 

main { 
    flex: 1 0 auto; 
}