html - Css输入HTML,为什么更新宽度时绝对位置会改变
问题描述
为什么输入元素的位置在改变keyup
,在我css
已经将 div 设置为position:absolute
并且只改变width
onkeyup
函数,我只想要width
改变的输入不包括位置
$('.test').keydown(function(){
var contents = $(this).val();
var charlength = contents.length;
newwidth = charlength*9;
$(this).css({width:newwidth});
});
#parent {
position: relative;
width: 400px;
}
#parent div {
position: absolute;
left: 5px;
right: 5px;
top:300px;
}
#parent div input {
position: relative;
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
width: 100%;
}
<!DOCTYPE html>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="parent">
<div class='yyy'><input class='test' type="text" value='jjjj'></div>
</div>
</body>
</html>
解决方案
这是因为transform: rotate(...)
默认情况下该属性会围绕其中心旋转元素。更改元素的宽度会使其中心移动,因此转换后的元素似乎会更改位置。为了防止它,改变transform-origin
元素的,例如到它的左上角(0 0
):
$('.test').keydown(function(){
var contents = $(this).val();
var charlength = contents.length;
newwidth = charlength*9;
$(this).css({width:newwidth});
});
#parent {
position: relative;
width: 400px;
}
#parent div {
position: absolute;
left: 5px;
right: 5px;
top:300px;
}
#parent div input {
position: relative;
/* and please use the standard CSS instead of old prefixed junk! */
transform: rotate(-90deg);
transform-origin: 0 0;
width: 100%;
}
<!DOCTYPE html>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="parent">
<div class='yyy'><input class='test' type="text" value='jjjj'></div>
</div>
</body>
</html>
PS 请使用标准的无前缀 CSS 属性(transform
等),而不是他们古老的实验性前缀版本!不支持标准语法的浏览器实际上已经灭绝多年。如果您确实需要,您可以使用 Autoprefixer 等自动工具来仅生成您的受众真正需要的前缀。
推荐阅读
- model-view-controller - 无法下载 PDF 文件,从 Sql 数据库中获取。已获取字节值,函数未出现任何错误,但未下载 PDF
- java - 如何在android中将任何类型的日期转换为特定格式?
- excel - 将VB的特定行复制到其他行
- python - 从 python 脚本更改目录以调用 shell
- javascript - 无法将 jwt 令牌添加到 node.js 响应
- uwp - 无法从密码库中检索存储的密码
- kotlin - moshi 自定义限定符注释仅在一个属性上序列化 null
- android - 无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception
- android - 在蓝牙耳机上接听 VoIP 电话
- python - python数据帧计数出现