Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态截断<;选项>;适合的文本<;选择>;列表_Javascript_Html_Css_Html Select - Fatal编程技术网

Javascript 动态截断<;选项>;适合的文本<;选择>;列表

Javascript 动态截断<;选项>;适合的文本<;选择>;列表,javascript,html,css,html-select,Javascript,Html,Css,Html Select,默认情况下,为元素显示的选择器列表将与其包含的最宽的子元素一样宽。如果我用CSS硬编码select标记的宽度,使其更窄,则显示中最宽的选项将被截断 我想缩小选项文本以适应选择列表,并附加。。。(省略号)显示选中该选项时它被截断,但是,当我展开下拉列表时,我希望下拉列表中的文本为全宽,不带尾随省略号 我该如何做到这一点呢?我相信您想要的是: option { width: 200px; // Adjustable white-space: nowrap; overflow: hidde

默认情况下,为
元素显示的选择器列表将与其包含的最宽的
子元素一样宽。如果我用CSS硬编码select标记的宽度,使其更窄,则显示中最宽的选项将被截断

我想缩小选项文本以适应选择列表,并附加。。。(省略号)显示选中该选项时它被截断,但是,当我展开下拉列表时,我希望下拉列表中的文本为全宽,不带尾随省略号


我该如何做到这一点呢?

我相信您想要的是:

option {
  width: 200px; // Adjustable
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
这将自动强制选择选项为指定的宽度,并将任何“溢出”文本转换为保留在边界内的省略号:)


希望这有帮助

我相信你要找的是:

option {
  width: 200px; // Adjustable
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
这将自动强制选择选项为指定的宽度,并将任何“溢出”文本转换为保留在边界内的省略号:)


希望这有帮助

使用
css
jQuery

$('select')。在('change',function()上{
$(this).find('option').removeClass('selected');
$(this).find('option:selected').addClass('selected');
});
select,
选项。已选定{
宽度:100px;
溢出:隐藏;
空白:nowrap;
文本溢出:省略号;
}

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

使用
css
jQuery

$('select')。在('change',function()上{
$(this).find('option').removeClass('selected');
$(this).find('option:selected').addClass('selected');
});
select,
选项。已选定{
宽度:100px;
溢出:隐藏;
空白:nowrap;
文本溢出:省略号;
}

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

我在这里找到了chrome的解决方案:


使用这种方法,选择标签中的插入符号图标将消失,因此您可能需要使用背景图像。我在这里找到了chrome的解决方案:


使用这种方法,select标记中的插入符号图标将消失,因此您可能需要为其使用背景图像。

@clearlight我不确定新标题是否符合我的要求。我需要的选项标签的宽度是固定的,文本要修剪down@clearlight我不确定这个新的头衔是不是我想要的。我需要的选项标签的宽度是固定的,文本将被修剪downsuperb解决方案,afaictI同意,这是一个极好的解决方案。不过,要扩展这一点,您只需使用
选项:选中
而不是
选项。选中
,并完全避免jQuery:)@obsidiange是它的真值,但它也会在
悬停时更改,而不仅仅是选中;在Chrome/Mac中,只有设置select元素的宽度才有任何效果。所有其他css属性和javascript都不起任何作用。@Doamon.s非常感谢,但我看不到您的演示中的省略号。极好的解决方案,afaictI同意这是一个极好的解决方案。不过,要扩展这一点,您只需使用
选项:选中
而不是
选项。选中
,并完全避免jQuery:)@obsidiange是它的真值,但它也会在
悬停时更改,而不仅仅是选中;在Chrome/Mac中,只有设置select元素的宽度才有任何效果。所有其他css属性和javascript都不起作用。@Doamon.s非常感谢,但我看不到您的演示中的省略号。Chrome/Mac中没有关系Chrome/Mac中没有关系