johngaltisdead Ответов: 2

Как создать границы между вертикальными элементами навигационной панели? [РЕШЕННЫЙ]


I'm creating a vertical navbar using HTML and vanilla CSS. So I've tried setting the border for each list item individually and it is just limited to  the text. What should I do in a different way?


Что я уже пробовал:

<ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Settings</a></li>
    <li><a href="#">Logout</a></li>
</ul>




*, html {
    margin:0;
    padding:0;  
}

ul {
    background: #596275;
    height: 10vh;
}

li {
    display: inline;
    border-right: 3px solid #1e272e;
}

a {
    color: white;
    text-decoration: none;
}

2 Ответов

Рейтинг:
20

Richard Deeming

Самое простое решение состоит в том, чтобы изменить li к display: inline-block, и установите его высоту на 100%:

li {
    display: inline-block;
    border-right: 3px solid #1e272e;
    height: 100%;
}
Демонстрация[^]

Если вы можете отказаться от поддержки для старые браузеры[^], вы могли бы использовать На основе адаптируемых блоков[^] вместо:
ul {
    background: #596275;
    height: 10vh;
    display: flex;
    list-style-type: none;
}

li {
    border-right: 3px solid #1e272e;
}
Демонстрация[^]


Рейтинг:
12

Harsh.Shah.ifour

попробовать это.


<!DOCTYPE html>
<html>
<head>
<style>
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 200px;
  background-color: #f1f1f1;
}
li{
	margin:10px;
	border: 1px solid black;
}
li a {
  display: block;
  color: #000;
  padding: 8px 16px;
  text-decoration: none;
}

/* Change the link color on hover */
li a:hover {
  background-color: #555;
  color: white;
}
</style>
</head>
<body>

<h2>Vertical Navigation Bar</h2>

<ul>
  <li><a href="#home">Home</a></li>
  <li><a href="#news">About</a></li>
  <li><a href="#contact">Setting</a></li>
  <li><a href="#about">Logout</a></li>
</ul>

</body>
</html>