2016-09-06 33 views
1

你好,我有一点问题关于我的自定义选择布局。我创建了一个自定义选择,适用于所有浏览器,甚至IE。但是我的自定义选择有问题。首先看一下我的HTML代码:自定义选择与长的选择内容

.select-style { 
 
    padding: 0; 
 
    margin: 0; 
 
    border: 1px solid #ccc; 
 
    width: 120px; 
 
    border-radius: 3px; 
 
    overflow: hidden; 
 
    background-color: #fff; 
 
    background: #fff; 
 
    position: relative; 
 
} 
 
.select-style:after { 
 
    top: 50%; 
 
    left: 85%; 
 
    border: solid transparent; 
 
    content: " "; 
 
    height: 0; 
 
    width: 0; 
 
    position: absolute; 
 
    pointer-events: none; 
 
    border-color: rgba(0, 0, 0, 0); 
 
    border-top-color: #000000; 
 
    border-width: 5px; 
 
    margin-top: -2px; 
 
    z-index: 100; 
 
} 
 
.select-style select { 
 
    padding: 5px 8px; 
 
    width: 130%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background-color: transparent; 
 
    background-image: none; 
 
    -webkit-appearance: none; 
 
    -moz-appearance: none; 
 
    appearance: none; 
 
} 
 
.select-style select:focus { 
 
    outline: none; 
 
}
<div class="select-style"> 
 
    <select> 
 
    <option value="volvo">Volvo</option> 
 
    <option value="saab">Saab</option> 
 
    <option value="mercedes">Mercedes</option> 
 
    <option value="audi">Audi</option> 
 
    <option value="Volkswagon Polo">Volkswagon Polo</option> 
 
    </select> 
 
</div>

的布局设计问题

如果选择了“大众汽车波罗”选项,您看到文本后面的黑色箭头。这看起来不是很好。我尝试了几个选项,但我无法管理它,使它看起来不错。我试图使用text-overflow选项,但没有成功。有谁知道不通过箭头图标显示文本的好方法,而不改变选择的宽度?

+0

嗨,是它好,如果我们去掉下拉箭头选择后? – Manoj

+0

如果你设法让它看起来一样,并且它也适用于所有其他浏览器,特别是在IE中,那么通过删除after select属性,我很好。 @Manoj – Rotan075

+0

希望这将为您的目的http://stackoverflow.com/questions/16603979/select-removing-dropdown-arrow – Manoj

回答

1

我做了一些改进。你的箭想你的填充尊重和选择能够获得比包装纸更大,固定与overflow: hidden; width: 100%;

.select-style { 
 
    padding: 0; 
 
    margin: 0; 
 
    border: 1px solid #ccc; 
 
    width: 130px; 
 
    border-radius: 3px; 
 
    overflow: hidden; 
 
    background-color: #fff; 
 
    background: #fff; 
 
    position: relative; 
 
} 
 

 
.select-style:after { 
 
    top: 50%; 
 
    right: 10px; 
 
    border: solid transparent; 
 
    content: " "; 
 
    height: 0; 
 
    width: 0; 
 
    position: absolute; 
 
    pointer-events: none; 
 
    border-color: rgba(0, 0, 0, 0); 
 
    border-top-color: #000000; 
 
    border-width: 5px; 
 
    margin-top: -2px; 
 
    z-index: 100; 
 
} 
 

 
.select-style select { 
 
    padding: 5px 28px 5px 8px; 
 
    border: none; 
 
    box-shadow: none; 
 
    background-color: transparent; 
 
    background-image: none; 
 
    -webkit-appearance: none; 
 
    -moz-appearance: none; 
 
    appearance: none; 
 
    overflow: hidden; 
 
    width: 100%; 
 
} 
 

 
.select-style select:focus { 
 
    outline: none; 
 
} 
 

 
* { 
 
    box-sizing: border-box; 
 
}
<div class="select-style"> 
 
    <select> 
 
     <option value="volvo">Volvo</option> 
 
     <option value="saab">Saab</option> 
 
     <option value="mercedes">Mercedes</option> 
 
     <option value="audi">Audi</option> 
 
     <option value="Volkswagon Polo">Volkswagon Polo</option> 
 
    </select> 
 
</div>

JSFiddle

浮动您.select-style和拆卸宽度,你可以自动调整其内容。

+0

是的,这是我正在寻找。完美解决方案谢谢! :) – Rotan075

+0

但它可能不适用于IE 10“-webkit-appearance:none; -moz-appearance:none;” – Manoj

+0

@Manoj ['appearance“](http://caniuse.com/#search=appearance)有一些奇怪的支持行为。感谢您的注意!可能看起来像一个默认选择边界和顶部的箭头。无论如何应该是功能性的。 – AlexG

1

试试这个:

.select-style { 
    padding: 0 20px 0 0; 
    margin: 0; 
    border: 1px solid #ccc; 
    width: auto; 
    border-radius: 3px; 
    overflow: hidden; 
    background-color: #fff; 
    background: #fff; 
    position: relative; 
    display: inline-block;} 

这是因为你设置。选择风格宽度固定值。 display:inline-block;防止元素扩展为全宽,填充在箭头附近设置一些空间。现在它看起来不错:)。

我也注意到了,当我从.select-style中选择宽度并添加文本对齐:center时,它看起来甚至是无用的:)。

0

,如果你不想改变你的宽度可以使用

.select-style select { 
    /*for firefox*/ 
    -moz-appearance: none; 
    /*for chrome*/ 
    -webkit-appearance:none; 
    } 

    /*for IE10*/ 
.select-style select::-ms-expand { 
    display: none; 
} 

这将删除下拉箭头

+0

是的!我意识到这一点,但我想要的是有一个自定义箭头。无论如何感谢您的回答。 – Rotan075

+0

自定义箭头将在您选择之前出现,一旦您从下拉菜单中选择 – Manoj