提示:这里简述项目相关背景:
layui的select下拉框的文本内容过长,导致选择器文本超出页面
问题描述
直接在select中用修改select的样式是没有用的
原因分析:
layui的select选择器的样式由css控制
layui默认的样式如下
.layui-form-select dl {
display: none;
position: absolute;
left: 0;
top: 42px;
padding: 5px 0;
z-index: 899;
min-width: 100%;
border: 1px solid #d2d2d2;
max-height: 300px;
overflow-y: auto;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 2px 4px rgba(0, 0, 0, .12);
box-sizing: border-box
}
.layui-form-select dl dd, .layui-form-select dl dt {
padding: 0 10px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}
解决方案:
在该页面加上该段样式修改,可以实现最大宽度和折行显示
下面说明一下white-space、over-flow和 text-overflow的作用
white-space: 用来设置如何处理元素内的空白,也可以来规定段落中
的文本是否换行,当它的值设置为nowrap时text-overflow属性
才会生效
| 值 | 属性 |
|---|---|
| normal | 默认。空白会被浏览器忽略 |
| pre | 空白会被浏览器保留,其行为类似HTML中的< pre >标签 |
| nowrap | 文本不会换行,文本会在在同一行上继续,直到遇到< br >标签为止 |
| pre-wrap | 保留空白符序列,但是正常地进行换行 |
| pre-line | 合并空白符序列,但是保留换行符 |
| inherit | 规定应该从父元素继承white-space属性的值 |
over-flow:规定当内容溢出元素框时发生的事情
| 值 | 属性 |
|---|---|
| visible | 默认值。内容不会被修剪 ,会呈现在元表框之外 |
| hidden | 内容会被修剪,并且其余内容是不可见的 |
| scroll | 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容 |
| auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容 |
| inherit | 规定应该从父元表继承overflow属性的值 |
text-overflow:规定了当文本溢出包含元素时所发生的情况
| 值 | 属性 |
|---|---|
| clip | 修剪文本 |
| elipsis | 显示省略符号来代表被修剪的文本 |
| string | 使用给定的字符串来代表被修剪的文本 |
如果想要修改选择器t的宽度直接在选择器的上层div中修改样式,
如:style=“width: 60%;”



