Как изменить высоту элемента Flexbox? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь установить высоту (100% родительского элемента) для flex-элемента. Это li-тег в навигации. Я получил рамку слева на каждом теге li, но граница не соответствует размеру контейнера. Также лучше щелкнуть в любом месте области, а не на -Tag напрямую, чтобы я мог сделать a-tag навигации также равным 100%.

Я установил минимальную высоту и попыталсяэто с display: block, но это не управляет им.

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

nav {
    background: #100e17;
}

.inline {
    display: inline;
}

.flex {
    display: flex;
    align-items: center;
}

.reset {    
    margin: 0;
    padding: 0;
}

#navLogo {
    display: flex;
    align-items: center;
    margin-left: 1rem;
}

#logoText {
    font-size: 1.5rem;
    color: white;
    margin: 1rem;
    margin-left: 0.3rem;
}

#navLogoImg {
    height: auto;
    width: 2rem;
}

.menuItem {
    font-size: 1.5rem;
    margin: 0rem 1.5rem; 
}

ul.flex li {
    border-left: 1px solid #201c29;
    min-height: 100%;
    }
<!DOCTYPE html>
<html>
<head>
    <title>A Complete Guide to Grid</title>
    <link rel="stylesheet" href="style/style.css">
    <link href="https://fonts.googleapis.com/css?family=Ubuntu:400,700&display=swap" rel="stylesheet">
</head>
<body class="reset">
    <nav cla>
    <ul class="reset flex">
        <li class="inline"><a href="index.html" class="inline" id="navLogo">
            <img class="inline" id="navLogoImg" src="Bilder/CSSTricks_Rad.png">
            <h3 class="inline" id="logoText">CSS-TRICKS</h3>
            </a></li>  
        <li><a href="#" class="menuItem">Articles</a></li>
        <li><a href="#" class="menuItem">Videos</a></li>
        <li><a href="#" class="menuItem">Almanac</a></li>
        <li><a href="#" class="menuItem">Snippets</a></li>
        <li><a href="#" class="menuItem">Newsletter</a></li>
        <li><a href="#" class="menuItem">Jobs</a></li>
        <li><a href="#" class="menuItem">Guides</a></li>
    </ul>
    </nav>
</body>
</html>
```

Вот небольшое изображение границы и навигации в целом (при попытке воссоздать CSS-Tricks.com: Снимок экрана

1 Ответ

0 голосов
/ 07 октября 2019

Используйте align-items: stretch; на flex, чтобы получить их на 100% высоты. Удалите min-height: 100%; в li, а затем задайте стиль анкера, чтобы он был на 100% высотой, согнут и выровнен по центру.

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

nav {
  background: #100e17;
}


.flex {
  display: flex;
    align-items: stretch;
}

.reset {
  margin: 0;
  padding: 0;
}

#navLogo {
  display: flex;
  align-items: center;
  margin-left: 1rem;
}

#logoText {
  font-size: 1.5rem;
  color: white;
  margin: 1rem;
  margin-left: 0.3rem;
}

#navLogoImg {
  height: auto;
  width: 2rem;
}

.menuItem {
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  margin: 0rem 1.5rem;
}

ul.flex li {
  border-left: 1px solid #201c29;
}
<!DOCTYPE html>
<html>

<head>
  <title>A Complete Guide to Grid</title>
  <link rel="stylesheet" href="style/style.css">
  <link href="https://fonts.googleapis.com/css?family=Ubuntu:400,700&display=swap" rel="stylesheet">
</head>

<body class="reset">
  <nav>
    <ul class="reset flex">
      <li>
        <a href="index.html" class="inline" id="navLogo">
          <img id="navLogoImg" src="Bilder/CSSTricks_Rad.png">
          <h3 id="logoText">CSS-TRICKS</h3>
        </a>
      </li>
      <li><a href="#" class="menuItem">Articles</a></li>
      <li><a href="#" class="menuItem">Videos</a></li>
      <li><a href="#" class="menuItem">Almanac</a></li>
      <li><a href="#" class="menuItem">Snippets</a></li>
      <li><a href="#" class="menuItem">Newsletter</a></li>
      <li><a href="#" class="menuItem">Jobs</a></li>
      <li><a href="#" class="menuItem">Guides</a></li>
    </ul>
  </nav>
</body>

</html>
...