javascript – CSS变换偏移量随文本长度而变化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – CSS变换偏移量随文本长度而变化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2777字,纯文字阅读大概需要4分钟。
内容图文
我已经设置了一个具有5个浮动< div>的demo,其旋转文本的长度各不相同.我想知道是否有办法让CSS类可以处理所有文本的居中,无论长度如何.目前,我必须为样式表中的每个字符长度创建一个类.这可能会变得太乱.我还注意到,当我增加或减少包装< div>的大小时,偏移被搞砸了.
我将通过jQuery将这些类添加到div中,但我仍然需要设置每个类以实现跨浏览器兼容性.
.transform3 {
-webkit-transform-origin: 65% 100%;
-moz-transform-origin: 65% 100%;
-ms-transform-origin: 65% 100%;
-o-transform-origin: 65% 100%;
transform-origin: 65% 100%;
}
.transform4 {
-webkit-transform-origin: 70% 110%;
-moz-transform-origin: 70% 110%;
-ms-transform-origin: 70% 110%;
-o-transform-origin: 70% 110%;
transform-origin: 70% 110%;
}
.transform5 {
-webkit-transform-origin: 80% 120%;
-moz-transform-origin: 80% 120%;
-ms-transform-origin: 80% 120%;
-o-transform-origin: 80% 120%;
transform-origin: 80% 120%;
}
.transform6 {
-webkit-transform-origin: 85% 136%;
-moz-transform-origin: 85% 136%;
-ms-transform-origin: 85% 136%;
-o-transform-origin: 85% 136%;
transform-origin: 85% 136%;
}
.transform7 {
-webkit-transform-origin: 90% 150%;
-moz-transform-origin: 90% 150%;
-ms-transform-origin: 90% 150%;
-o-transform-origin: 90% 150%;
transform-origin: 90% 150%;
}
注意:我设置的偏移值是眼球.
更新
虽然我希望用样式表来处理,但我相信我必须在JavaScript中计算CSS的转换.
我创建了以下demo来演示动态转换.在这个演示中,用户可以调整.v_text类的字体大小,只要文本的长度不超过.v_text_wrapper高度,文本应该在中心垂直对齐,但请注意我有调整magicOffset值.
好吧,我只是注意到这在iOS中不起作用…谢谢@Dinesh Kumar DJ
解决方法:
你去:http://codepen.io/teodragovic/pen/fgekh
#output1,
#output2{
margin: 50px;
display: inline-block;
}
.rotate {
//remove this line if using js
transform: translateY(150px) rotate(-90deg);
}
.v_text_wrapper {
float: left;
width: 100px;
height: 150px;
background: #AAA;
border: solid #222 1px;
padding: 0;
margin: 0;
position: relative;
}
#output2 .v_text_wrapper {
height: 170px;
}
.v_text {
color: #444;
font-family: monospace;
font-weight: bold;
font-size: 1em;
width: 150px; //remove this line if using js
height: 100px;
transform-origin: top left;
text-align: center;
position: absolute;
display: table;
}
p {
display: table-cell;
vertical-align: middle;
}
不需要JS和动态的offseting.您可以将包含文本的所有< div>设置为与包装器相同的宽度和高度,将它们围绕左上角旋转(可以是任何角落),然后使用translateY将它们放回到包装器内(这假设包装器尺寸始终是相同和已知的价值).
我添加了额外的< p>文本周围的元素,并使用此方法进行垂直居中:
http://css-tricks.com/vertically-center-multi-lined-text/
编辑:我更新了笔包装盒< div>改变大小.由于< div>的旋转,它们的高度成为高度,反之亦然,因此如果包装的尺寸为100×150,那么子必须为150×100.
$('.v_text_wrapper').each(function(){
var x = $(this).css("height");
var text = $(this).children('.v_text');
text.css({"transform":"translateY("+x+") rotate(-90deg)", "width":x});
});
内容总结
以上是互联网集市为您收集整理的javascript – CSS变换偏移量随文本长度而变化全部内容,希望文章能够帮你解决javascript – CSS变换偏移量随文本长度而变化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。