如何使用html / css使链接看起来像标签?

时间:2011-10-19 21:21:21

标签: javascript html css

我正在使用这个线框:http://problemio.com/wireframe.pdf

我正在努力使标签式项目看起来像“正在进行的讨论|建议的解决方案|解决方案历史...”,以便在线框上看到标签。

到目前为止,我可以使用JavaScript来显示/隐藏正确的元素,但我不知道该怎么做是突出显示活动的标签,以及如何绘制标签周围的线条。

这是我到目前为止的一个例子: http://www.problemio.com/problems/problem.php?problem_id=179

即使我将每个链接都设为div,如何在这些div的样式之间切换?

谢谢!

3 个答案:

答案 0 :(得分:4)

如果您已经显示并隐藏并正在寻找非jQuery选项,您可以尝试这样的事情:

http://jsfiddle.net/wqEdj/

这是直接锚元素的基本造型。

答案 1 :(得分:3)

您最简单的选择是使用jQueryUI Tabs。示例http://jqueryui.com/demos/tabs/

答案 2 :(得分:0)

这是一个CSS / JS解决方案,您可以在此处运行以查看其运行情况。使用了JQuery,但可以很容易地用标准JS替换。无需图片。

此解决方案的来源: https://css-tricks.com/better-tabs-with-round-out-borders/

可以在此处找到与该行下的标签相关的另一个相关示例:http://codepen.io/chriscoyier/pen/JozNqX



$(function() {
  $("li").click(function(e) {
    e.preventDefault();
    $("li").removeClass("selected");
    $(this).addClass("selected");
  });
});

.tabrow {
  text-align: center;
  list-style: none;
  margin: 20px 0 20px;
  padding: 0;
  line-height: 24px;
  height: 26px;
  overflow: hidden;
  font-size: 12px;
  font-family: verdana;
  position: relative;
}
.tabrow li {
  border: 1px solid #AAA;
  background: #D1D1D1;
  background: -o-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
  background: -ms-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
  background: -moz-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
  background: -webkit-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
  background: linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
  display: inline-block;
  position: relative;
  z-index: 0;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 #FFF;
  text-shadow: 0 1px #FFF;
  margin: 0 -5px;
  padding: 0 20px;
}
.tabrow a {
  color: #555;
  text-decoration: none;
}
.tabrow li.selected {
  background: #FFF;
  color: #333;
  z-index: 2;
  border-bottom-color: #FFF;
}
.tabrow:before {
  position: absolute;
  content: " ";
  width: 100%;
  bottom: 0;
  left: 0;
  border-bottom: 1px solid #AAA;
  z-index: 1;
}
.tabrow li:before,
.tabrow li:after {
  border: 1px solid #AAA;
  position: absolute;
  bottom: -1px;
  width: 5px;
  height: 5px;
  content: " ";
}
.tabrow li:before {
  left: -6px;
  border-bottom-right-radius: 6px;
  border-width: 0 1px 1px 0;
  box-shadow: 2px 2px 0 #D1D1D1;
}
.tabrow li:after {
  right: -6px;
  border-bottom-left-radius: 6px;
  border-width: 0 0 1px 1px;
  box-shadow: -2px 2px 0 #D1D1D1;
}
.tabrow li.selected:before {
  box-shadow: 2px 2px 0 #FFF;
}
.tabrow li.selected:after {
  box-shadow: -2px 2px 0 #FFF;
}

<ul class="tabrow">
  <li><a href="#">Lorem</a></li>
  <li><a href="#">Ipsum</a></li>
  <li class="selected"><a href="#">Sit amet</a></li>
  <li><a href="#">Consectetur adipisicing</a></li>
</ul>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;