Javascript 响应地将文本输入内容向右对齐

Javascript 响应地将文本输入内容向右对齐,javascript,html,css,media-queries,Javascript,Html,Css,Media Queries,我正在创建一个自定义输入选择器。它使用文本输入来显示选择,并使用按钮供用户进行选择。它类似于下面的代码片段: inputDisplay=document.getElementById(“inputDisp”); 选择路径=()=>{ const newpath=prompt(“输入新的长路径”,“a/long/long/long/long/long/verylong/long/long/long/long/long/long/long/verylong/long/path/to/folder/

我正在创建一个自定义输入选择器。它使用文本输入来显示选择,并使用按钮供用户进行选择。它类似于下面的代码片段:

inputDisplay=document.getElementById(“inputDisp”);
选择路径=()=>{
const newpath=prompt(“输入新的长路径”,“a/long/long/long/long/long/verylong/long/long/long/long/long/long/long/verylong/long/path/to/folder/”;
inputDisplay.value=新路径;
}
document.getElementById(“btnSel”).addEventListener(“单击”,选择路径
);
输入{
宽度:100%;
}
@媒体屏幕和屏幕(最大宽度:640像素){
输入{
文本对齐:右对齐;
}
}


据我所知,选择path(路径)
,而不是使用纯css,使用javascript,您可以钩住几个事件,对照输入元素的宽度检查输入字符串的长度,如果字符串长于其长度,则将后者的内容向右对齐。(窗口大小调整,输入更改)

据我所知,使用纯css和javascript,您可以钩住几个事件,对照输入元素的宽度检查输入字符串的长度,如果字符串长于其长度,则将后者的内容向右对齐。(窗口大小调整、输入更改)

您可以使用
方向rtl/ltr
来解决此问题:

inputDisplay=document.getElementById(“inputDisp”);
选择路径=()=>{
const newpath=prompt(“输入新的长路径”,“a/long/long/long/long/long/verylong/long/long/long/long/long/long/long/verylong/long/path/to/folder/”;
inputDisplay.value=新路径;
}
document.getElementById(“btnSel”).addEventListener(“单击”,选择路径
);
输入{
方向:ltr;
}
@媒体屏幕和屏幕(最大宽度:640像素){
输入{
方向:rtl;
}
}


选择路径
您可以使用方向rtl/ltr
解决此问题:

inputDisplay=document.getElementById(“inputDisp”);
选择路径=()=>{
const newpath=prompt(“输入新的长路径”,“a/long/long/long/long/long/verylong/long/long/long/long/long/long/long/verylong/long/path/to/folder/”;
inputDisplay.value=新路径;
}
document.getElementById(“btnSel”).addEventListener(“单击”,选择路径
);
输入{
方向:ltr;
}
@媒体屏幕和屏幕(最大宽度:640像素){
输入{
方向:rtl;
}
}


选择路径
没有css方法可以实现您的目标,因为这需要访问功能层而不是演示层。您仍然可以通过使用一些javascript事件处理程序来做到这一点

只需注册一个函数,该函数检查输入的实际包含的文本长度,并使用
text align:right切换css类
进入窗口的
resize
事件和输入元素的
keydown
事件

有关事件的更多信息,请参阅w3school上的DOM事件文档:

您可以检查输入中的当前文本长度,如下所示:

 var value = document.getElementById('inputDisp').value;
 if (value.length > 20 && window.innerWidth <= 640) {
   // Toggle CSS class with text alignment right
 } else {
   // Toggle CSS class with text alignment left
 }
var value=document.getElementById('inputDisp').value;

如果(value.length>20&&window.innerWidth没有css方法来实现您的目标,因为这需要访问功能层而不是表示层。您仍然可以通过使用一些javascript事件处理程序来实现这一点

只需注册一个函数,该函数检查输入的实际包含的文本长度,并使用
text align:right;
将css类切换到窗口的
resize
事件和输入元素的
keydown
事件

有关事件的更多信息,请参阅w3school上的DOM事件文档:

您可以检查输入中的当前文本长度,如下所示:

 var value = document.getElementById('inputDisp').value;
 if (value.length > 20 && window.innerWidth <= 640) {
   // Toggle CSS class with text alignment right
 } else {
   // Toggle CSS class with text alignment left
 }
var value=document.getElementById('inputDisp').value;

如果(value.length>20&&window.innerWidth您是否可以使用
float:right
而不是
text align
:right`@Akshay,我正在尝试对齐输入框的内容,而不是输入框本身?您是否可以使用
float:right
而不是
text align
:right`@Akshay,我正在尝试对齐输入框的内容而不是输入框本身输入框本身不正确,op只想在输入值实际大于输入宽度时将其向右对齐,为什么不使用文本对齐:右而不是更改其读取方向..不正确,op只想在输入值实际大于输入宽度时将其向右对齐nput的宽度,为什么不使用文本对齐:右,而不是更改其读取方向。。