不能水平对齐
Can't Horizontally Align
我正在尝试水平对齐页脚中的社交图标,但我无法弄清楚。
@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 & 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 以防出现优先级问题并且我在上一节中做了一些错误的事情。我正在尝试将社交图标居中并让它们水平对齐,并且它们之间有一点 space...我正在尝试更改的 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>
谢谢!感谢您的帮助!
首先,从 <a>
样式中删除 display: block
,这对您不利。
其次,您想为每个 <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;
}
如果您尝试使用 Flexbox CSS 属性对齐项目,您需要在包含要对齐的项目的元素中应用 display: flex;
。
在您的具体情况下,修改 #social-icons ul
以包含 display: flex
,这应该可以解决问题。
#social-icons ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
display: flex;
}
我正在尝试水平对齐页脚中的社交图标,但我无法弄清楚。
@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 & 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 以防出现优先级问题并且我在上一节中做了一些错误的事情。我正在尝试将社交图标居中并让它们水平对齐,并且它们之间有一点 space...我正在尝试更改的 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>
谢谢!感谢您的帮助!
首先,从 <a>
样式中删除 display: block
,这对您不利。
其次,您想为每个 <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;
}
如果您尝试使用 Flexbox CSS 属性对齐项目,您需要在包含要对齐的项目的元素中应用 display: flex;
。
在您的具体情况下,修改 #social-icons ul
以包含 display: flex
,这应该可以解决问题。
#social-icons ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
display: flex;
}