#html #css #flexbox #footer
#HTML #css #flexbox #нижний колонтитул
Вопрос:
Я пытаюсь выровнять значки социальных сетей по горизонтали в нижнем колонтитуле, но не могу понять это.
@font-face {
font-family: 'free pixel';
src: url(../assets/fontface/FreePixel.ttf);
font-style: normal;
}
body {
background-color: black;
}
a {
text-decoration: none;
}
a:visited{
text-decoration: none;
}
a:hover {
text-decoration: none;
}
li {
list-style: none;
}
h1 {
color: white;
}
/* x Global amp; General x */
nav {
display: flex;
justify-content: space-around;
align-items: center;
min-height: 8vh;
background-color: black;
font-family: 'free pixel';
}
.logo{
color: green;
font-size: 30px;
cursor: pointer;
}
.k-hole-logo{
color: green;
}
.nav-links{
display: flex;
justify-content: space-around;
width: 30%;
}
.nav-links a{
color: green;
text-decoration: none;
letter-spacing: 3px;
font-size: 15px;
}
.nav-links li {
list-style: none;
}
.burger {
display: none;
cursor: pointer;
}
.burger div {
width: 25px;
height: 3px;
margin: 5px;
background-color: green;
transition: all 0.3s ease;
}
@media screen and (max-width: 1024px){
.nav-links{
width: 60%;
}
}
@media screen and (max-width: 768px){
body{
overflow-x: hidden;
}
.nav-links{
position: absolute;
right: 0px;
height: 92vh;
top: 8vh;
background-color: black;
display: flex;
flex-direction: column;
align-items: center;
width: 33%;
transform: translateX(100%);
transition: transform 0.5s ease-in;
}
.nav-links li{
opacity: 0;
}
.burger{
display: block;
}
}
.nav-active{
transform: translateX(0%);
}
@keyframes navLinkFade{
from{
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
.toggle .line1 {
transform: rotate(-45deg) translate(-5px, 6px);
}
.toggle .line2 {
opacity: 0;
}
.toggle .line3 {
transform: rotate(45deg) translate(-5px, -6px);
}
#social-icons {
position: fixed;
bottom: 0;
width: 100%;
}
#social-icons ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
#social-icons ul li a{
display: block;
color: green;
text-align: center;
padding: 16px;
text-decoration: none;
}
Я включил весь CSS на случай, если это какая-то проблема с приоритетом, и я сделал что-то неправильное в предыдущем разделе. Я пытаюсь центрировать значки социальных сетей и выровнять их по горизонтали с небольшим промежутком между ними … раздел HTML, который я пытаюсь изменить, выглядит следующим образом:
<footer>
<div id="social-icons">
<ul>
<li>
<a href="#"><i class="fab fa-twitter-square"></i></a>
</li>
<li>
<a href="#"><i class="fab fa-facebook-square"></i></a>
</li>
<li>
<a href="#"><i class="fab fa-instagram-square"></i></a>
</li>
</div>
</ul>
</div>
</footer>
Спасибо! Я ценю помощь!
Ответ №1:
Во-первых, удалите display: block
из <a>
стиля, который работает против вас.
Во-вторых, вы хотите объявить стиль для каждого <li>
, который говорит, что вы хотите, чтобы они отображались в строке.
В-третьих, вы хотите указать целому #socialicons <div>
отображать текст по центру страницы.
Вот на что я бы изменил CSS:
#social-icons {
position: fixed;
bottom: 0;
width: 100%;
text-align: center;
}
#social-icons ul {
list-style-type: none;
padding: 0;
overflow: hidden;
}
#social-icons li {
display: inline;
}
#social-icons ul li a{
color: green;
text-align: center;
padding: 16px;
text-decoration: none;
}
Ответ №2:
Если вы пытаетесь выровнять элементы с помощью свойств Flexbox CSS, вам необходимо применить display: flex;
в элементе обертку элементов, которые вы хотите выровнять.
В вашем конкретном случае измените значение #social-icons ul
включить display: flex
, и это должно сработать.
#social-icons ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
display: flex;
}