Html 样式选择文本溢出
正在尝试找出样式化选择框的问题。它被包装在一个具有背景的div中,以创建它的遮罩外观 当输入中有太多文本时,它将溢出到按钮中 HTML:Html 样式选择文本溢出,html,css,twitter-bootstrap-3,Html,Css,Twitter Bootstrap 3,正在尝试找出样式化选择框的问题。它被包装在一个具有背景的div中,以创建它的遮罩外观 当输入中有太多文本时,它将溢出到按钮中 HTML: 有人能解决这个问题吗?问题是,您使用的是正确填充:10%
有人能解决这个问题吗?问题是,您使用的是
正确填充:10%在css中的上选择本身。测量图像-选择的宽度约为270px
,使宽度的10%
仅为27px
,根据我的测量,这是正确的
为了解决这个问题,箭头的背景图像似乎是60px
宽的,所以使用右填充:78px
(即背景图像的宽度为60px
,18px
,以尊重您之前设置的移动媒体查询中的填充)。尝试以下操作:
.styled-select select {
white-space: nowrap;
width: 10em;
overflow: hidden;
text-overflow: ellipsis;
}
您好:
这是我的解决方案,您应该接受一个变量,它将是“向下箭头”的BG大小。在本例中,60px,因此如下所示:
.styled-select select{
width: calc( 100% - 60px / 2); //before was width: 100%;
text-overflow: ellipsis;
}
@media (min-width: 768px) {
.styled-select select {
width:100%; //remove it, only one in the mobile first declarationis needed
}
}
保持所有其他CSS相同,仅更改上述CSS希望这有帮助在没有看到任何代码的情况下,很难判断如何设置HTML的结构。但你可以做的一件事就是捏造它。让它看起来好像这就是正在发生的事情。假设下拉箭头与选择项是一个单独的元素,您可以给它一些以下代码。(.select button是我在下拉列表中为您的按钮指定的类)
}
基本上,这是把它放在输入文本元素的前面,然后框阴影会逐渐覆盖额外的文本
如果您需要在不改变原始元素的情况下对其进行篡改,请在其内部创建一个包含div或其他内容的父包装器,并使select元素成为同级元素,然后为其提供指针事件样式:none;为了防止它被点击,但仍然会有你想要的外观
有些人可能会说这是一种不好的做法,但鉴于目前的情况,这是你能做的最好的事情。非常简单,非常轻,比提供的许多选项更实用
如果你有任何问题,就喊一声
祝你好运,伙计
评论后
根据评论中的信息尝试此css。最好创建一个带有背景色、bg图像和方框阴影的psuedo元素,其z索引高于选择,以创建一个仍然可以单击选择的假按钮
.styled-select {
/*have this create the size of the select*/
width: 100%;
overflow: hidden;
background-repeat: no-repeat;
-webkit-background-size: 80% 80%;
background-size: 80% 80%;
height: 50px;
position: relative;
}
.style-select::before {
content: '';
display: block;
position: absolute;
right: 0;
background-color: $blue;
top: 50%;
transform: translateY(-50%);
width: 60px;
height: 100%;
background: url(../images/bg/down-arrow.jpg);
/* ^^^^ use this as just the white arrow png ^^^ */
box-shadow: -24px 0px 30px rgba(255, 255, 255, 1);
pointer-events: none;
}
您正在使用百分比值(10%)作为select
元素在两个不同位置的padding right
。但是,对于.styled select
元素的背景大小
属性,您使用的是固定像素值(60px)
这意味着,当.styled select
元素的宽度正好为600px时,子select
元素的文本将在背景图像开始处被剪裁-越大,您将开始看到文本和图像之间出现空白,越小,文本将开始与图像重叠
因此,要解决这个问题,您应该将右填充
更改为一个固定的像素值,该值等于背景大小
值加上几个额外的像素,以便文本不会直接运行到背景图像
我还冒昧地清理了一下你的CSS;您不需要重新声明媒体查询中的所有样式,只需声明您希望覆盖或更改的样式
.styled选择{
背景:#fff线性梯度(0度,#00f,#00f)右/60px重复-y;
/**删除上面的行,取消下面的行注释**/
/*背景:#fff url(../images/bg/down arrow.jpg)右中/60px不重复*/
边界半径:10px;
高度:50px;
溢出:隐藏;
宽度:100%;
}
.样式选择{
-webkit外观:无;
背景:透明;
边界:0;
边界半径:10px;
字体系列:圆形、Helvetica、Arial、无衬线;
字体大小:16px;
高度:50px;
线高:1;
填充:15px 75px 15px 15px;
宽度:100%;
}
@介质(最小宽度:768px){
.样式选择{
高度:55px;
}
.样式选择{
字号:18px;
高度:55px;
线高:1;
右边填充:78px;
}
}
身体{
背景:#003;
}
请选择地址
见此
.styled选择{
字体系列:“圆形”,Helvetica,Arial,无衬线;
字号:18px;
背景:透明;
宽度:100%;
填充:15px;
字体大小:16px;
线高:1;
边界:0;
高度:50px;
边框:1px实心#0082ff;/*仅用于查看白色背景中的窗体区域*/
边界半径:10px;
-webkit外观:无;
右边填充:55px;
框大小:边框框;
}
.styled选择{
宽度:200px;
溢出:隐藏;
背景:url(http://emojipop.net/data/images/emoji_set_651.png)无重复右#FFF;
背景尺寸:50px;
高度:50px;
边界半径:10px;
文本溢出:省略号;
}
@介质(最小宽度:768px){
.样式选择{
字体系列:“圆形”,Helvetica,Arial,无衬线;
字号:18px;
背景:透明;
宽度:100%;
填充:18px;
字号:18px;
线高:1;
边界:0;
高度:55px;
边界半径:10px;
-webkit外观:无;
右:10%;
}
.styled选择{
宽度:100%;
溢出:隐藏;
背景:url(http://emojipop.net/data/images/emoji_set_651.png)无重复右#FFF;
背景尺寸:60px;
高度:55px;
边界半径:10px;
}
请选择地址
请选择地址2
请选择地址3
如果文本太多,您希望发生什么-隐藏ove
.styled-select select{
width: calc( 100% - 60px / 2); //before was width: 100%;
text-overflow: ellipsis;
}
@media (min-width: 768px) {
.styled-select select {
width:100%; //remove it, only one in the mobile first declarationis needed
}
}
.selectButton {
display: block;
position: absolute;
height: 100%;
width: 20%;
max-width: 40px;
background: blue;
z-index: 12;
right: 0;
top: 0;
box-shadow: -24px 0px 30px rgba(255, 255, 255, 1);
.styled-select {
/*have this create the size of the select*/
width: 100%;
overflow: hidden;
background-repeat: no-repeat;
-webkit-background-size: 80% 80%;
background-size: 80% 80%;
height: 50px;
position: relative;
}
.style-select::before {
content: '';
display: block;
position: absolute;
right: 0;
background-color: $blue;
top: 50%;
transform: translateY(-50%);
width: 60px;
height: 100%;
background: url(../images/bg/down-arrow.jpg);
/* ^^^^ use this as just the white arrow png ^^^ */
box-shadow: -24px 0px 30px rgba(255, 255, 255, 1);
pointer-events: none;
}