Сделать контейнер немного выше нижнего колонтитула

У меня есть контейнер со всем содержимым страницы фиксированной ширины (то есть не 100%), а внизу есть нижний колонтитул width:100%.

Я хочу, чтобы эта часть контейнера находилась над нижним колонтитулом, и вот что у меня получилось:
https://jsfiddle.net/84weu9nz/

При этом, как вы можете заметить, содержимое нижнего колонтитула больше нельзя щелкнуть или выбрать из-за z-index. Я мог бы установить относительное положение контейнера, например https://jsfiddle.net/rLmuq2of/, но проблема этого решения в том, что я не могу сделать все содержимое страницы внутри элемента position:relative, некоторые всплывающие окна или некоторые функции внутри этого элемента могут иметь неожиданное поведение. , поэтому я не думаю, что это хорошая практика.

Любое решение? Спасибо.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Одно из решений, которое я могу придумать, - это использовать правило css для событий указателя, если у вас нет кликабельного содержимого в основном элементе:

main {
  pointer-events: none;
}

Если у вас есть интерактивные элементы внутри вашего основного элемента, вы должны расширить правила:

main {
  pointer-events: none;
}
main * {
  pointer-events: all;
}

Пример

main {
  position: relative;
  background-color: red;
  width: 400px;
  margin: 0 auto;
  pointer-events: none;
}

main * {
  pointer-events: all;
}

footer {
  background-color: green;
  padding-top: 20px;
  margin-top: -20px;
}
<main>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore <a href = "#">clickable element</a> et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</main>
<footer>
  <li><a href = "#">#1</a></li>
  <li><a href = "#">#2</a></li>
  <li><a href = "#">#3</a></li>
</footer>

Мне удалось сделать это, используя силу flex, но я не уверен, что это действительно лучшее решение.

Я изменил порядок столбцов/элементов, используя css flex-direction: column-reverse, затем снова поместил основной div, используя порядок, на первую позицию order: 1 (порядок по умолчанию равен 0).

.app {
  display: flex;
  flex-direction: column-reverse;
}

main {
  background-color: red;
  width: 400px;
  margin: 0 auto;
  order: 1;
}

footer {
  background-color: green;
  padding-top: 20px;
  margin-top: -20px;
}
<div class = "app">
  <main>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
  </main>
  <footer>
    <li><a href = "#">#1</a></li>
    <li><a href = "#">#2</a></li>
    <li><a href = "#">#3</a></li>
  </footer>
</div>

Другие вопросы по теме