2016-01-23 41 views
3

我的主页上有一个左右两个可滚动的表格,其中包含两行和三十多个以及不断增加的列。它看起来像这样:表格元素左上角的标记

enter image description here

但我想补充的“标志”像这样一些头衔:

enter image description here

我怎么能添加“标志”,而无需绘制透明PNG并将其放在顶层。我正在考虑使用画布,但我怎么能画出那些不是正方形的“旗帜”,并将它们放在每张桌子的右上角?


ADD

我喜欢@里克 - 希区柯克的答案,看起来真的很简单,我想实现它变成我的网页。但“旗帜”似乎不会呈现。

这里是我是如何实现它:

table.index{ 
 
    table-layout: fixed; 
 
    border-spacing: 20px; 
 
} 
 
table.index td { 
 
    height: 190px; /*iz tega se preračuna višina slike v %*/ 
 
    width: 190px; /*iz tega se preračuna širina slike v %*/ 
 
    min-width: 190px; /*ne smejo biti manjši - tabela se širi*/ 
 
    position: relative; /*da deluje spodnja vrstica*/ 
 
    overflow: hidden; 
 
    border-radius: 5px; 
 
    border: 1px solid #1A1A1A; 
 
    background-color: rgba(0, 0, 0, 0.90); 
 
    box-shadow: 0px 0px 8px #000000; 
 
    -moz-box-shadow: 0px 0px 8px #000000; 
 
    -webkit-box-shadow: 0px 0px 8px #000000; 
 
    vertical-align: middle; 
 
    text-align: center; 
 
    padding: 5px 5px 5px 5px; 
 
} 
 
table.index td img { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    height: auto; 
 
    width: 100%; 
 
    z-index: -1; 
 
    -webkit-transition: all 1.5s ease; 
 
    -moz-transition: all 1.5s ease; 
 
    -o-transition: all 1.5s ease; 
 
    -ms-transition: all 1.5s ease; 
 
    transition: all 1.5s ease; 
 
} 
 
table.index td a{ 
 
    color: #FF3C3F; 
 
} 
 
table.index td p.napis{ 
 
    opacity: 0.0; 
 
    color: white; 
 
    text-shadow: 0px 0px 2px #555555; 
 
    font-size: 14px; 
 
    font-family: ss9; 
 
    -webkit-transition: all 1.5s ease; 
 
    -moz-transition: all 1.5s ease; 
 
    -o-transition: all 1.5s ease; 
 
    -ms-transition: all 1.5s ease; 
 
    transition: all 1.5s ease; 
 
} 
 
table.index td:hover p.napis{ 
 
    opacity: 1.0; 
 
} 
 
table.index td:hover{ 
 
    box-shadow: 0px 0px 15px #000000; 
 
    -moz-box-shadow: 0px 0px 15px #000000; 
 
    -webkit-box-shadow: 0px 0px 15px #000000; 
 
} 
 
table.index td:hover img { 
 
    -webkit-filter: blur(2px) opacity(20%); 
 
    -o-filter: blur(2px) opacity(20%); 
 
    -ms-filter: blur(2px) opacity(20%); 
 
    filter: blur(2px) opacity(20%); 
 
} 
 
div.index { 
 
    width: 100%; 
 
    overflow-x: auto; 
 
    overflow-y: hidden; 
 
    -ms-overflow-y: hidden; 
 
} 
 

 

 
<!-- THE CODE YOU PROVIDED--> 
 

 
.container { 
 
    position: relative; 
 
    overflow: hidden; 
 
    display: inline-block; 
 
} 
 

 
.discount, .event { 
 
    position: absolute; 
 
    top: 0; 
 
    transform: rotate(-45deg); 
 
    transform-origin: 50% 250%; 
 
    width: 10em; 
 
    padding: 0.3em 0; 
 
    text-align: center; 
 
    border: 1px solid #333; 
 
    font: 14px verdana; 
 
} 
 

 
.discount { 
 
    background: #cfc; 
 
} 
 

 
.event { 
 
    background: yellow; 
 
}
<section class="index"> 
 
    <div class="index"> 
 
    <table class="index"> 
 
     <tr> 
 
     <td> 
 
      <div class="container"> 
 
      <div class="discount">Discount</div> 
 
      <img src="../slike/index/2016-01-18-embedded_world.jpg"/> 
 
      <p class="napis"> 
 
       Obiskali bomo sejem <a href="https://www.embedded-world.de/en" target="_blank">Embedded world</a> v Nürnbergu, kjer si bomo ogledali najnovejšo tehnologijo na področju vgrajenih sistemov. Dijaki ŠC Kranj lahko pri meni prevzamete štiri brezplačne karte z vključenim prevozom! 
 
      </p> 
 
      </div> 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 
</section>

出于某种原因,它不会呈现为“标记”,但只有为文本。通常情况下,它看起来像这样:

Image of a single tile

和鼠标胡佛它看起来像:

The same tile in it's hovered state (a text overlay) but it's missing the all important banner

这是我webpage,如果你想看看。

+1

您提供的代码有效,也许您需要等待新代码上传到您的网站才能看到结果。 – jaunt

回答

4

您可以使用CSS3 transform旋转包含该标志的DIV。

为了让徘徊在表格单元格当标志消失了,你可以这样做:

td:hover .discount, td:hover .event { 
    display: none; 
} 

这使得它消失/重新出现,立即,这可能有点不和谐。或者,你可以转换其不透明度是这样的:

.discount, .event { 
    transition: 0.5s; 
} 

td:hover .discount, td:hover .event { 
    opacity: 0; 
} 

段:

.index td { 
 
    position: relative;   /* make the flags relative to their parent td */ 
 
    overflow: hidden;   /* prevent the flags from overflowing the cell */ 
 
} 
 

 
.discount, .event { 
 
    position: absolute;   /* position the flag absolutely within container */ 
 
    top: 0;      /* top of container */ 
 
    transform: rotate(-45deg); /* rotate counterclockwise 45 degrees */ 
 
    transform-origin: 50% 250%; /* experiment to find best placement */ 
 
    width: 10em;     /* width of flag */ 
 
    text-align: center;   /* center the flag's text */ 
 
    padding: 0.3em 0;   /* top and bottom padding */ 
 
    border: 1px solid #333;  /* dark border */ 
 
    transition: 0.5s;   /* transition changed styles in half a second */ 
 
    font: 14px verdana; 
 
} 
 

 
.discount { 
 
    background: #cfc;   /* light green */ 
 
} 
 

 
.event { 
 
    background: yellow; 
 
} 
 

 
.index img { 
 
    width: 150px; 
 
    border: 1px solid black; 
 
} 
 

 
td:hover .discount, td:hover .event { 
 
    opacity: 0; 
 
}
<table class="index"> 
 
    <td> 
 
    <div class="discount">Discount</div> 
 
    <img src="http://ziga-lausegger.com/slike/index/2016-01-18-embedded_world.jpg"/> 
 
    <td> 
 
    <div class="event">Event</div> 
 
    <img src="http://ziga-lausegger.com/slike/index/2015-12-06-comptech.png"> 
 
</table>

+0

我试图实现这个到我的网页,但它不呈现标志。你可以看看我的问题添加。我的桌子有可能干扰你提供的代码吗? – 71GA

+0

这可能是有矛盾的风格。如果你在网站上提供了一个显示行为的测试页面,我很乐意看看它。 –

+0

我已经更新了我的答案,并考虑了您的表格布局。 –

1

我认为你正在寻找的东西是这样的:https://jsfiddle.net/DIRTY_SMITH/hywos6cx/

.wrapper { 
    margin: 50px auto; 
    width: 150px; 
    height: 150px; 
    background: white; 
    border-radius: 10px; 
    -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); 
    -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); 
    box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); 
    position: relative; 
    z-index: 90; 
} 

.ribbon-wrapper-green { 
    width: 85px; 
    height: 88px; 
    overflow: hidden; 
    position: absolute; 
    top: -3px; 
    right: -3px; 
} 

.ribbon-green { 
    font: bold 15px Sans-Serif; 
    color: #333; 
    text-align: center; 
    text-shadow: rgba(255, 255, 255, 0.5) 0px 1px 0px; 
    -webkit-transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    -ms-transform: rotate(45deg); 
    -o-transform: rotate(45deg); 
    position: relative; 
    padding: 7px 0; 
    left: -5px; 
    top: 15px; 
    width: 120px; 
    background-color: #BFDC7A; 
    background-image: -webkit-gradient(linear, left top, left bottom, from(#BFDC7A), to(#8EBF45)); 
    background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); 
    background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); 
    background-image: -ms-linear-gradient(top, #BFDC7A, #8EBF45); 
    background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); 
    color: #6a6340; 
    -webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); 
    -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); 
    box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); 
} 

.ribbon-green:before, 
.ribbon-green:after { 
    content: ""; 
    border-top: 3px solid #6e8900; 
    border-left: 3px solid transparent; 
    border-right: 3px solid transparent; 
    position: absolute; 
    bottom: -3px; 
} 

.ribbon-green:before { 
    left: 0; 
} 

.ribbon-green:after { 
    right: 0; 
} 
+0

这个anwser看起来更漂亮,但我觉得会更难实现。 – 71GA

相关问题