我想要在页面左侧而不是顶部选项卡。我已经因为其他原因(效果)加载了JQuery,所以我更喜欢将JQuery用于另一个UI框架。搜索“垂直标签jquery”会产生正在进行中的链接。
让垂直标签在浏览器中运行起来很困难,或者它是如此微不足道,一旦你有了解决方案,发布示例代码似乎不值得吗?
在以下屏幕截图中,垂直标签以红色标出:http://cl.ly/image/2y0t1f1L0u00
#tab li {
cursor: pointer;
font-size: 12px;
line-height: 12px;
background: #fff;
border: 1px solid #000;
padding: 10px;
color: #fff;
font-weight: bold;
font-size: 20px;
width: 140px;
height: 130px;
padding: 0 !important;
-webkit-transform: rotate(-90deg) translate(-30px, 60px);
-moz-transform: rotate(-90deg) translate(-30px, 60px);
-ms-transform: rotate(-90deg) translate(-30px, 60px);
-o-transform: rotate(-90deg) translate(-30px, 60px);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
#tab li a {
display: inline;
margin: 55px 0 0 -25px;
}
答案 0 :(得分:11)
JSFiddle Demo(在IE8 / 9/10,Firefox,Chrome,Safari,Opera中测得很好)
关键点
BasicImage
过滤器和-ms-transform
,因为旋转将在IE9中应用两次。 BasicImage
过滤器适用于IE8 / 9。 -ms-transform
适用于IE9。 transform
适用于IE10。使用BasicImage
过滤器和transform
的组合涵盖了IE8 / 9/10。<强> HTML 强>
<div class="wrapper">
<ul id="tab">
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
<li><a href="#">Four</a></li>
</ul>
</div>
<强> CSS 强>
.wrapper {
position: relative;
width: 488px;
}
#tab {
position: absolute;
height: 52px;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: rotate(-90deg) translate(-488px, 0px);
-moz-transform: rotate(-90deg) translate(-488px, 0px);
-o-transform: rotate(-90deg) translate(-488px, 0px);
transform: rotate(-90deg) translate(-488px, 0px); /* IE10 */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* IE8/9 */
...
}
#tab li {
float: left;
width: 120px;
height: 50px;
border: 1px solid #000;
}
#tab li a {
display: block;
padding: 10px;
...
}
...
答案 1 :(得分:3)
扩展Matt Coughlin的答案,这对我更有用,无需像素长度硬编码,因此标签可以有不同的长度:
#tab {
position: absolute;
-webkit-transform-origin: 100% 0;
-moz-transform-origin: 100% 0;
-o-transform-origin: 100% 0;
transform-origin: 100% 0;
-webkit-transform: translate(-100%, 0) rotate(-90deg);
-moz-transform: translate(-100%, 0) rotate(-90deg);
-o-transform: translate(-100%, 0) rotate(-90deg);
transform: translate(-100%, 0) rotate(-90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
它设置标签条右上角的变换原点,然后首先将整个条带平移100%,最后执行旋转。