首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Navbar:三角形的位置和背景颜色(CSS)

Navbar:三角形的位置和背景颜色(CSS)
EN

Stack Overflow用户
提问于 2017-04-30 21:58:07
回答 2查看 49关注 0票数 0

Navbar:三角形的位置和背景颜色(CSS)

好的,我正在尝试创建一个导航,如页面底部的图像所示。我怎样才能达到这个结果?在此之前,非常感谢您。

代码语言:javascript
复制
* {
  margin: 0;
  padding: 0;
}

nav {
  height: 100%;
  width: 100%;
  background-color: yellow;
}

li {
  display: block;
  border-bottom: 1px solid grey;
  line-height: 50px;
}

a {
  text-decoration: none;
}

.dropdown {
  display: none;
}

.label {
  border: solid blue;
  border-width: 0 3px 3px 0;
  padding: 3px;
  transform: rotate(45deg);
  position: relative;
  display: inline-block;
  float: right;
  margin: 1px;
}

@media all and (min-width: 800px) {
  li {
    display: inline-block;
    border-bottom: none;
  }
}
代码语言:javascript
复制
<nav>
  <ul>
    <li><a href="#">Page 1</a></li>
    <li><a href="#">Page 2</a>
      <input type="checkbox" id="dd-1" class="dropdown" />
      <label for="dd-1" class="label"></label>
    </li>
    <li><a href="#">Page 3</a>
      <input type="checkbox" id="dd-2" class="dropdown" />
      <label for="dd-2" class="label"></label>
    </li>
    <li><a href="#">Page 4</a></li>
    <li><a href="#">Page 5</a>
      <input type="checkbox" id="dd-3" class="dropdown" />
      <label for="dd-3" class="label"></label>
    </li>
  </ul>
</nav>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-01 01:14:34

在当前代码库的基础上,可以将position: relative应用于<li>,将position: absolute应用于<label>以实现这一点。此外,您需要定位您的<label>使用right: 2.5%水平定位和top: 50%;transform: translateY (-125%);垂直对中。

代码语言:javascript
复制
* {
  margin: 0;
  padding: 0;
}

nav {
  height: 100%;
  width: 100%;
  background-color: yellow;
}

li {
  display: block;
  border-bottom: 1px solid grey;
  line-height: 50px;
  position: relative;
  padding-left: 1%;
  padding-right: 1%;
}

a {
  text-decoration: none;
}

.dropdown {
  display: none;
}

.label {
  border: solid blue;
  border-width: 0 3px 3px 0;
  padding: 3px;
  transform: rotate(45deg) translateY(-125%);
  position: absolute;
  display: inline-block;
  top: 50%;
  right: 2.5%;
  margin: 1px;
}

@media all and (min-width: 800px) {
  li {
    display: inline-block;
    border-bottom: none;
  }
}
代码语言:javascript
复制
<nav>
  <ul>
    <li><a href="#">Page 1</a></li>
    <li><a href="#">Page 2</a>
      <input type="checkbox" id="dd-1" class="dropdown" />
      <label for="dd-1" class="label"></label>
    </li>
    <li><a href="#">Page 3</a>
      <input type="checkbox" id="dd-2" class="dropdown" />
      <label for="dd-2" class="label"></label>
    </li>
    <li><a href="#">Page 4</a></li>
    <li><a href="#">Page 5</a>
      <input type="checkbox" id="dd-3" class="dropdown" />
      <label for="dd-3" class="label"></label>
    </li>
  </ul>
</nav>

票数 1
EN

Stack Overflow用户

发布于 2017-04-30 23:46:18

我认为最干净的方法是把你的雪佛龙包在一个包含的div和位置,绝对相对于每一行。

所以每一行都需要:

代码语言:javascript
复制
display: flex;
position: relative;

然后,您可以轻松地定位您的包含的div和中心的雪佛龙:

代码语言:javascript
复制
align-items: center;
display: flex;
justify-content: center;
position: absolute;
right: 0;

这是一支笔让你开始:https://codepen.io/anon/pen/qmmPGy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43711774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档