提问者:小点点

CSS为菜单中的一个元素添加边距


我想知道如何在这样的代码中为菜单中最右边的元素添加左页边距:

header.html

<header>
  <div class="main">
    <ul>
      <li><a href="/home">Home</a></li>
      <li><a href="/projects/endlessblow">EndlessBlow</a></li>
      <li><a href="https://play.google.com/store/apps/dev?id=6173561253714763017">My projects</a></li>
      <li><a href="/about">About</a></li>
      <li *ngIf="!isLogged"><input type="submit" class="a-login" value="Login" (click)="navigateToLogin()"></li>
      <li *ngIf="isLogged"><input type="submit" class="a-login" value="Logout" (click)="doLogout()"></li>
    </ul>
  </div>
</header>

header.css

ul {
  float: right;
  list-style-type: none;
  margin-top: 25px;
  margin-right: 115px;

}

ul li {
  display: inline-block;
}

ul li a {
  text-decoration: none !important;
  padding: 5px 20px;
  border: 1px solid #000;
  color: #000;
  transition: 0.4s ease;
  font-size: 20px !important;
}

ul li a.li-login {
  text-decoration: none !important;
  position: relative;
  margin-left: 10px;
  padding: 5px 10px;
  color: #000;
  transition: 0.4s ease;
  font-size: 16px !important;
  border: none;
}

是什么产生了这样的效果:

在此处输入图像说明

但我想要的是:

在此处输入图像说明

如何实现这一点?


共3个答案

匿名用户

您可以使用名为的伪类,通过这个类,您可以根据数字选择一个子元素,在下面的代码中,您可以选择五个元素,它是一个子元素,并为它添加一个边距,现在您可以只向5元素添加样式。

null

ul {
  float: right;
  list-style-type: none;
  margin-top: 25px;
  margin-right: 115px;
}

ul li {
  display: inline-block;
}

ul li a {
  text-decoration: none !important;
  padding: 5px 20px;
  border: 1px solid #000;
  color: #000;
  transition: 0.4s ease;
  font-size: 20px !important;
}

ul li a.li-login {
  text-decoration: none !important;
  position: relative;
  margin-left: 10px;
  padding: 5px 10px;
  color: #000;
  transition: 0.4s ease;
  font-size: 16px !important;
  border: none;
}
ul li:nth-child(5){
  margin-left: 20px;
}
<header>
  <div class="main">
    <ul>
      <li><a href="/home">Home</a></li>
      
      <li><a href="/projects/endlessblow">EndlessBlow</a></li>
      
      <li><a href="https://play.google.com/store/apps/dev?id=6173561253714763017">My projects</a></li>
      
      <li><a href="/about">About</a></li>
      
      <li *ngIf="!isLogged"><input type="submit" class="a-login" value="Login" (click)="navigateToLogin()"></li>
      
      <li *ngIf="isLogged"><input type="submit" class="a-login" value="Logout" (click)="doLogout()"></li>
    </ul>
  </div>
</header>

匿名用户

好的,这个题目的问题解决了。但我还有一个。如何将第五个元素垂直居中,因为现在位于底部一点到多

匿名用户

你有很多选择,但我的选择是第一个:

1

ul li:last-child {
  margin-left: 30px;
}

2

ul li:nth-last-child(2) {
  margin-right: 30px;
}

3

ul li a[href="/about"] {
  margin-right: 30px;
}

4

ul li:nth-child(4) {
  margin-right: 30px;
}

5

ul li:nth-child(5) {
  margin-left: 30px;
}