css – :在伪元素之前导致边界的差距

前端之家收集整理的这篇文章主要介绍了css – :在伪元素之前导致边界的差距前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这件我想要的 HTML样式.
html是一个表(和实际的表),我想给一个边框.
该元素还有一个:在伪元素之前,我用来在顶角放一个小三角形.

JSFiddle在这里.
我希望这是有道理的.我尽可能地减少了标记和CSS,因为它实际上是一个大型网站的一小部分.

http://jsfiddle.net/GolezTrol/28yDb/2/

现在的问题是,具有2列,具有边框崩溃:崩溃的组合;在表上和:在伪元素之前,导致元素的顶部边框部分消失.只有第一列的长度.

你会假设它是在边框顶部的伪元素,但这个元素很小,据我所知,这不是问题.我增加了可见性:隐藏;到伪元素可以肯定,我可以告诉三角形已经走了,但边框还不完整.

不幸的是,我不能更改标记,因为这是由MediaWiki输出,但我完全控制了CSS.

HTML:

<div id="globalWrapper">
<div id="column-content">
<div class="thumb tright">
<table class="infoBox vcard" style="">
    <tbody>
        <tr>
            <th colspan="2" class="fn org" style=""> Example text</th>
        </tr>
        <tr>
            <th>Row head</th>
            <td>Content</td>
        </tr>

CSS:

/* Generic table styling */
table {
  border-collapse: collapse;
  /*border-spacing: 0;*/ }

/* The Box */
.thumb.tright table.infoBox.vcard {
    border: 3px solid #fae104;
    position: relative;
}

/* Triangle */
  .thumb.tright table.infoBox.vcard:before {
    content: "";
    position: absolute;
    width: 0;
    height: 1px;
    border-top: 5px solid transparent;
    top: -7px;
    border-left: 10px solid #555;
    visibility: hidden;
    right: -1px; }

我已经发现,当我删除边框崩溃时,它可以工作:崩溃,但我不知道这是一个正确的解决方案,即使是这样,我真的想解释发生了什么.

顺便说一句.我在Chrome 29和Internet Explorer 10中都遇到了这个问题.还没有测试过其他浏览器.

更新

而不是使用 – 或者不使用’border-collapse’来解决问题,我发现这也是有效的:

.thumb.tright table.infoBox.vcard tbody {
    display: block;
}

所以表本身仍然是一个表,伪元素仍然在表上,边框,定位等.以前没有进行过的tbody现在是一个块,问题在两个浏览器中都被解决了.我通过反复尝试发现了这一点,仍然不知道它背后的原因.

更新小提琴:http://jsfiddle.net/GolezTrol/28yDb/9/

解决方法

作为一个新手来StackOverflow和jsFiddle我 updated the Fiddle与我认为是解决方案.我没有改变CSS,除了将伪类从表本身移动到表头,并将其更改为:after.适用于Firefox和Chrome!
/* Triangle */ 
.thumb.tright table.infoBox.vcard th:after { }

边框崩溃:IE8不支持单独的,但我认为这将是.

>编辑:nevermind;)

猜你在找的CSS相关文章