我正在尝试使用css :after
值transform
将双角括号设置为rotate(90deg)
伪元素中的内容旋转到屏幕顶部的标签。这是相关的代码:
.header {
-moz-transition: top .5s ease;
-webkit-transition: top .5s ease;
-o-transition: top .5s ease;
transition: top .5s ease;
position: absolute;
left: 0;
right: 0;
top: -60px;
height: 80px;
background-color: #2d2;
}
.header.in-top {
top: 0;
}
.header-tab {
position: absolute;
bottom: 0;
width: 100%;
height: 20px;
text-align: center;
color: #000;
-moz-transition: color .5s ease;
-webkit-transition: color .5s ease;
-o-transition: color .5s ease;
transition: color .5s ease;
}
.header-tab:hover {
color: #e22;
}
.header-arrow:after {
font-size: 20px;
line-height: 1;
-moz-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.header .header-arrow:after {
content: "\00bb";
}
.header.in-top .header-arrow:after {
content: "\00ab";
}
<div class="header">
<div class="header-tab" data-toggle="in-top">
<span class="header-arrow"></span>
</div>
</div>
JavaScript中使用data-toggle
属性来切换in-top
类,以便切换双尖括号的方向,以及通过将其降低来显示标题的内容。我指定的transform
属性似乎没有做任何事情。任何解决方案?
答案 0 :(得分:6)
在伪元素上使用display: inline-block
。或者,inline-table
或block
也应该有效。
请参阅jsFiddle。
默认情况下,您的伪元素显示为inline
,这使其成为不可转换的元素。来自CSS Transforms Working Draft specification:
可转换元素
可转换元素是以下类别之一的元素: 一个元素,其布局由CSS框模型控制,该模型是块级或原子内联级元素,或者其“display”属性计算为“table-row”,“table-row-group”,“table- header-group','table-footer-group','table-cell'或'table-caption'
答案 1 :(得分:1)
您需要将伪元素设置为块或内联块元素:
.header-arrow:after {
display: block;
}
specification说旋转应该适用于内联元素,但在基于WebKit的浏览器中,它不起作用:https://www.webkit.org/blog/130/css-transforms/
答案 2 :(得分:0)
仅当您在类或选择器中使用global::Xamarin.Forms.Forms.Init(this, bundle) in android Renderer ?
或display:inline-block;
属性时,旋转属性才适用于伪元素(之前/之后)。
display:inline-block;