У меня проблема с центрированием списка в нижнем колонтитуле: похоже, что с левой стороны есть отступы, мешающие его центрированию.
footer{
background-color: rgb(35, 18, 61);
}
.footerContainer{
width: 100%;
padding: 20px 30px 20px ;
text-align: center;
}
.footerNav{
margin: 30px 0;
}
.footerNav ul{
display: flex;
justify-content: center;
list-style-type: none;
}
.footerNav ul li a{
margin: 20px;
text-decoration: none;
font-size: 1.2em;
}
@media (max-width: 360px){
.footerNav ul{
flex-direction: column;
}
.footerNav ul li{
text-align: center;
margin: 10px;
}
}
<footer>
<div class = "footerContainer">
<img src = "/images/middle.png" class = "center" style = "width: 100%;">
<div class = "footerNav">
<ul><li><a a target = "###">My Store</a></li>
<li><a href = "#artwork">My Artwork</a></li>
<li><a href = "#webdesigns">My Web designs</a></li>
<li><a href = "#top">Back to top</a></li>
</ul>
</div>
</div>
</footer>
Я пробовал добавить text-align: center;
к каждому элементу нижнего колонтитула, я также пробовал margin: 0 auto;
и просматривал отступы и поля в остальной части моего HTML-файла, но после их удаления ничего не изменилось. Что мне не хватает?
Вот что я изменил и добавил:
footer{
background-color: rgb(35, 18, 61);
}
.footerContainer{
width: auto ;
padding: 20px 30px 20px ;
text-align: center;
}
.footerNav{
margin: 30px 0;
}
.footerNav ul{
display: flex;
justify-content: center;
list-style-type: none;
}
.footerNav ul li a{
margin: 20px;
text-decoration: none;
font-size: 1.2em;
}
ul {
padding-inline-start: 0!important;
}
li {
display: contents!important;
}
@media (max-width: 360px){
.footerNav ul{
flex-direction: column;
}
.footerNav ul li{
align-content: center;
margin: 10px;
}
}
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<footer>
<div class = "footerContainer">
<img src = "/images/middle.png" class = "center" style = "width: 100%;">
<div class = "footerNav">
<ul><li><a a target = "###">My Store</a></li>
<li><a href = "#artwork">My Artwork</a></li>
<li><a href = "#webdesigns">My Web designs</a></li>
<li><a href = "#top">Back to top</a></li>
</ul>
</div>
</div>
</footer>
</body>
</html>
Первая проблема заключается в том, что вы указываете, что ваш footerContainer
имеет ширину 100% (его родительский элемент footer
), но также имеет отступы. Модель бокса по умолчанию заключается в том, что ширина блока равна ширине только его содержимого, без учета отступов и границ. Вот почему контейнер оказывается слишком большим и переполняется вправо. Вы можете установить box-sizing: border-box
на footerContainer
, чтобы использовать альтернативную модель блока, где указанная ширина включает любые отступы и границы. Альтернативно вы можете удалить width: 100%
, как предлагает @franjangonz.
footer {
color: white;
background-color: rgb(35, 18, 61);
}
footer img {
width: 100%;
}
.footerContainer {
width: 100%;
padding: 20px 30px 20px;
text-align: center;
box-sizing: border-box;
}
.footerNav {
margin: 30px 0;
}
.footerNav ul {
display: flex;
justify-content: center;
list-style-type: none;
}
.footerNav ul li a {
margin: 20px;
text-decoration: none;
font-size: 1.2em;
color: inherit;
}
@media (max-width: 360px){
.footerNav ul {
flex-direction: column;
}
.footerNav ul li {
text-align: center;
margin: 10px;
}
}
<footer>
<div class = "footerContainer">
<img src = "http://picsum.photos/500/100">
<div class = "footerNav">
<ul>
<li><a a target = "###">My Store</a></li>
<li><a href = "#artwork">My Artwork</a></li>
<li><a href = "#webdesigns">My Web designs</a></li>
<li><a href = "#top">Back to top</a></li>
</ul>
</div>
</div>
</footer>
Вторая проблема — стиль по умолчанию, применяемый к спискам. @franjangonz предлагает, как это переопределить, но я бы упростил структуру документа, полностью удалив список. Используйте элемент <nav>
для раздела навигации, он не обязательно должен содержать список; он может просто содержать ссылки <a>
. Кроме того, footerContainer не обязателен, вы можете просто стилизовать сам нижний колонтитул. Вот фрагмент того, как я бы это написал:
footer {
color: white;
background-color: rgb(35, 18, 61);
padding: 30px;
text-align: center;
font-size: 1.2em;
}
footer img {
width: 100%;
}
footer nav {
margin-top: 30px;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px 20px;
}
footer nav a {
color: inherit;
text-decoration: none;
}
footer nav a:hover {
color: yellow;
}
<footer>
<img src = "http://picsum.photos/500/100">
<nav>
<a href = "">My Store</a>
<a href = "#artwork">My Artwork</a>
<a href = "#webdesigns">My Web designs</a>
<a href = "#top">Back to top</a>
</nav>
</footer>
Вы имеете в виду, что по ширине происходит переполнение, из-за чего нижний колонтитул перемещается вправо и влево с помощью прокрутки?