无法在外部样式表中实现flex-wrap、grid

问题描述 投票:0回答:1

--

我有一个作业提供来自 HTML 页面和外部 CSS 样式表的代码,并且我不应该更改 HTML 代码或创建任何新的样式表选择器,只需将属性:值添加到已有的内容中。

我看到的所有使用网格框、将导航栏从垂直更改为水平等的示例都使用了一堆 div,但这些尚未在 HTML 代码中使用。如何在不使用 div 的情况下更改选择器以实现 flex-wrap 和网格选项?

HTML 示例:

  <nav>
    <ul>
      <li>
        <a href="">Home</a>
      </li>
      <li>
        <a href="">Blog</a>
      </li>
      <li>
        <a href="">About us</a>
      </li>
      <li>
        <a href="">Our history</a>
      </li>
      <li>
        <a href="">Contacts</a>
      </li>
    </ul>
  </nav>

CSS 示例:

  nav {
    background-color: #000;
    padding: .5em;
  }
  
  nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  
  nav a {
    color: #fff;
    text-decoration: none;
    padding: .5em 1em;
  }

一项作业指令示例:

--导航栏应随内容一起滚动,然后在到达视口顶部时卡在该位置。

我知道我需要在某个地方使用“position:sticky”,但是如果我只是将它放在“nav {”选择器下,它就不起作用。与 Flexbox、Grid 的类似尝试相同...

html css css-selectors css-position
1个回答
0
投票

使用

position: sticky
时,您还需要定义它应该粘在哪里。如果您想将其粘贴在最顶部并保留在那里,请记住包含
top: 0;

  nav {
    background-color: #000;
    padding: .5em;
    position: sticky;
    top: 0;
  }
  
  nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  
  nav a {
    color: #fff;
    text-decoration: none;
    padding: .5em 1em;
  }
<main>
  <div>Block of text</div>
    <nav>
    <ul>
      <li>
        <a href="">Home</a>
      </li>
      <li>
        <a href="">Blog</a>
      </li>
      <li>
        <a href="">About us</a>
      </li>
      <li>
        <a href="">Our history</a>
      </li>
      <li>
        <a href="">Contacts</a>
      </li>
    </ul>
  </nav>
  <div style="height: 100vh;"></div>
</main>

© www.soinside.com 2019 - 2024. All rights reserved.