造型锚和李元素css

时间:2015-12-16 13:11:04

标签: jquery html css css3

我有一个进度条。它运作良好,但我关注的是风格。显示一些行,我不知道为什么。在下面的屏幕截图中,您可以看到数字之间的线。有什么想法吗?

Screenshot

我的jsfiddle: JSFIDDLE

我的代码:

ol.progtrckr {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

ol.progtrckr li {
    display: inline-block;
    text-align: center;
    line-height: 3em;
}

ol.progtrckr[data-progtrckr-steps="4"] li { width: 15%; }

ol.progtrckr li.progtrckr-done {
    color: black;
    padding-right: 12px;
    border-bottom: 4px solid green;
}
ol.progtrckr li.progtrckr-todo {
    color: silver; 
    padding-right: 12px;
    border-bottom: 4px solid silver;
}

ol.progtrckr li:after {
    content: "\00a0\00a0";
}
ol.progtrckr li:before {
    position: relative;
    bottom: -2.5em;
    float: left;
    left: 50%;
    line-height: 1em;
}
ol.progtrckr li.progtrckr-done:before {
    content: "\2713";
    color: white;
    background-color: green;
    height: 1.2em;
    width: 1.2em;
    line-height: 1.2em;
    border: none;
    border-radius: 1.2em;
}
ol.progtrckr li.progtrckr-todo:before {
    content: "\039F";
    color: silver;
    background-color: white;
    font-size: 1.5em;
    bottom: -1.6em;
}
<ol class="progtrckr" data-progtrckr-steps="">
    <a href="#" >
    <li class="progtrckr-done ">1 </li> </a>
    <a href="#">
    <li  class="progtrckr-done">2 </li> </a>
    <a href="#">
    <li class="progtrckr-done">3 </li> </a>
    <a href="#">
    <li class="progtrckr-todo">4 </li> </a>
  
</ol>

8 个答案:

答案 0 :(得分:3)

请使用text-decoration:none for anchor with class“progtrckr”此行将消失或在样式表文件中添加到css下面 -

ol.progtrckr>a {
text-decoration:none;
}

答案 1 :(得分:2)

您使用“display:inline-block”表示“ol.progtrckr li”,因此这些元素的行为类似于内联元素,但它们具有空格。所以你应该使用“float:left”而不是“display:inline-block”。您还应该为“ol”元素使用“clearfix”。例如:将“.clerfix”类添加到“ol”元素并使用以下css:

.clearfix:after {
content: ".";3
display: block;
height: 0;
clear: both;
visibility: hidden;
}

答案 2 :(得分:1)

你必须把你的&#34; li&#34;你的&#34; a&#34;之前的标签标签,像这样:

<ol class="progtrckr" data-progtrckr-steps="">
    <li class="progtrckr-done"><a href="#">1</a></li>
    <li class="progtrckr-done"><a href="#">2</a></li>
    <li class="progtrckr-done"><a href="#">3</a></li>
    <li class="progtrckr-done"><a href="#">4</a></li>
</ol>

答案 3 :(得分:0)

您正在链接整个<li>元素,而您应该仅链接其中的值:

<ol class="progtrckr" data-progtrckr-steps="">
   <li class="progtrckr-done "><a href="#" >1</a></li>
   <li class="progtrckr-done "><a href="#" >2</a></li>
   <li class="progtrckr-done "><a href="#" >3</a></li>
   <li class="progtrckr-done "><a href="#" >4</a></li> 
</ol>

以下是更新后的JSFiddle我在此处添加了padding:0

ol.progtrckr li.progtrckr-done {
    color: black;
    padding-right: 12px;
    border-bottom: 4px solid green;
    padding: 0;
}

答案 4 :(得分:0)

它是<a>元素的默认文本修饰。

使用:

a{
  text-decoration: none;
}

答案 5 :(得分:0)

添加

a:link {
  text-decoration: none;
}

(许多浏览器默认为链接加下划线)

添加:或者,如果您希望在常规链接中保留下划线,请改为编写,为安全起见,请包含其他链接状态:

.progtrckr-done a:link,
.progtrckr-done a:hover,
.progtrckr-done a:active,
.progtrckr-done a:visited {
   text-decoration: none;
}

答案 6 :(得分:0)

此处更新了小提琴:https://jsfiddle.net/aLwgrym8/63/

您只需要在锚元素中添加text-decoration:none:

ol.progtrckr > a {
  text-decoration: none;
}

或者,你可以在<li>内移动锚元素,而不是你当前正在做的另一种方式。这里更新了小提琴:https://jsfiddle.net/aLwgrym8/65/

HTML:

<ol class="progtrckr" data-progtrckr-steps="">
    <li class="progtrckr-done "><a href="#" >1</a></li> 
    <li  class="progtrckr-done"><a href="#">2</a></li> 
    <li class="progtrckr-done"><a href="#">3</a></li> 
    <li class="progtrckr-todo"><a href="#">4</a></li>
</ol>

<强> CSS:

ol.progtrckr li > a {
  text-decoration: none;
  color: #000;
}

答案 7 :(得分:0)

请注意,您的结束</li>代码与结束</a>代码之间有空格。

<li  class="progtrckr-done">2 </li> </a>

如果删除这些内容,则根本不需要执行上述所有操作,因为链接中没有任何下划线。