Firefox 和 Safari 上的错误下拉箭头样式
Bad dropdown arrow styling on firefox and safari
我的下拉菜单在 Chrome 上看起来像左边,但在 Firefox 和 [=29= 上看起来像右边]野生动物园
我怎样才能使我的下拉菜单看起来像 Safari 和 Firefox 上的 chrome 版本? 我不喜欢显示在火狐浏览器
(我也想将插入符号向左移动一点)
这是我的 css
和 html
下拉列表。你可以在firefox上点击“运行代码片段”,看到它看起来像右边那个。
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding: 0.25rem 0.5rem;
border: 0;
}
select:active, select:focus{
outline: none;
}
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
您应该重置默认样式并添加跨浏览器统一的自定义样式。下面的代码片段应该有所帮助
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-right: 1rem;
padding-left: 0.5rem;
border: 0;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
background-repeat: no-repeat, repeat;
background-position: right .7em top 50%;
background-size: .65em auto;
}
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
阅读此博客的更多内容 post:https://css-tricks.com/styling-a-select-like-its-2019/
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-right: 1.5rem; /* increased to make space for arrow*/
padding-left: 0.5rem;
border: 0;
appearance: none; /* remove default arrow */
outline: none; /* looks better without outline */
}
.custom-select {
position: relative; /* container for pseudo element */
display: inline-block; /* make width to fit content */
}
.custom-select::after {
content: '⌄';
position: absolute;
background: transparent;
right: 10%;
top: -10%;
pointer-events: none; /* let clicks go through */
}
<div class="custom-select">
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
</div>
这是一种非常简单有效的方法,在每个浏览器上都是一致的。
HTML:
- 在 select 元素上添加包装器
CSS:
- 在 select 元素上相应地设置
appearance:none
并增加 padding-right
。
- 设置包装器
position: relative;
和 display: inline-block;
使其成为绝对定位伪元素的容器。
- 根据您的喜好设置
wrapper::after
元素的样式和位置,使用 pointer-events:none
这样您的点击就会通过它,打开 select.
我的下拉菜单在 Chrome 上看起来像左边,但在 Firefox 和 [=29= 上看起来像右边]野生动物园
我怎样才能使我的下拉菜单看起来像 Safari 和 Firefox 上的 chrome 版本? 我不喜欢显示在火狐浏览器 (我也想将插入符号向左移动一点)
这是我的 css
和 html
下拉列表。你可以在firefox上点击“运行代码片段”,看到它看起来像右边那个。
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding: 0.25rem 0.5rem;
border: 0;
}
select:active, select:focus{
outline: none;
}
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
您应该重置默认样式并添加跨浏览器统一的自定义样式。下面的代码片段应该有所帮助
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-right: 1rem;
padding-left: 0.5rem;
border: 0;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
background-repeat: no-repeat, repeat;
background-position: right .7em top 50%;
background-size: .65em auto;
}
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
阅读此博客的更多内容 post:https://css-tricks.com/styling-a-select-like-its-2019/
select{
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.7);
border-radius: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-right: 1.5rem; /* increased to make space for arrow*/
padding-left: 0.5rem;
border: 0;
appearance: none; /* remove default arrow */
outline: none; /* looks better without outline */
}
.custom-select {
position: relative; /* container for pseudo element */
display: inline-block; /* make width to fit content */
}
.custom-select::after {
content: '⌄';
position: absolute;
background: transparent;
right: 10%;
top: -10%;
pointer-events: none; /* let clicks go through */
}
<div class="custom-select">
<select type="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
</div>
这是一种非常简单有效的方法,在每个浏览器上都是一致的。
HTML:
- 在 select 元素上添加包装器
CSS:
- 在 select 元素上相应地设置
appearance:none
并增加padding-right
。 - 设置包装器
position: relative;
和display: inline-block;
使其成为绝对定位伪元素的容器。 - 根据您的喜好设置
wrapper::after
元素的样式和位置,使用pointer-events:none
这样您的点击就会通过它,打开 select.