gpt4 book ai didi

javascript - CSS 转换偏移量随文本长度而变化

转载 作者:搜寻专家 更新时间:2023-10-31 08:56:29 29 4
gpt4 key购买 nike

我已经设置了一个 demo有 5 个 float <div>带有不同长度的旋转文本。我想知道是否有一种 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演示动态转换。在此演示中,用户可以调整 font-size.v_text类并且只要文本的长度不超过.v_text_wrapper高度,文本应垂直居中对齐,但请注意,我必须调整 magicOffset值(value)。

好吧,我刚刚注意到这在 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和动态偏移。您可以设置所有 <div>包含与 wrapper 具有相同宽度和高度的文本,围绕左上角(可以是任何 Angular )旋转它们,然后使用 translateY 将它们定位回 wrapper 内(这假设 wrapper 尺寸始终相同且已知值)。

我添加了额外的 <p>文本周围的元素并使用此方法进行垂直居中: http://css-tricks.com/vertically-center-multi-lined-text/

编辑: 我更新了 case wrapper 中的笔 <div>改变大小。自 <div>的旋转,它们的宽度变为高度,反之亦然,因此如果包装器的尺寸为 100x150,则子级必须为 150x100。

$('.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 转换偏移量随文本长度而变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470192/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com