如何仅使用 CSS 来设置

2024-04-27

注意:这个问题不是关于制作自定义下拉菜单。这只是关于造型的可能性<option>CSS 中 select 元素内的元素

我该如何设计风格<option>s of a <select>具有跨浏览器兼容性的元素?我知道很多 JavaScript 方法可以自定义下拉列表以转换为<li>,我不是在问这个。

<select class="select">
    <option selected>Select</option>
    <option>Blue</option>
    <option >Red</option>
    <option>Green</option>
    <option>Yellow</option>
    <option>Brown</option>
</select>

我问的是,仅使用 CSS 可以实现什么,并且兼容 IE9+、Firefox 和 Chrome。

我想要这样的风格或尽可能接近的风格。

我在这里尝试过http://jsfiddle.net/jitendravyas/juwz3/3/ http://jsfiddle.net/jitendravyas/juwz3/3/,但 Chrome 不显示除字体颜色之外的任何样式,而 Firefox 显示更多样式。如何在 Chrome 中获得边框和填充功能?


编辑 2015 年 5 月

免责声明:我从下面链接的答案中摘取了片段:

重要更新!

除了 WebKit 之外,截至火狐35 http://jsfiddle.net/Etr4F/我们将能够使用appearance财产:

Using -moz-appearancenone组合框上的值现在删除 下拉按钮

因此,现在为了隐藏默认样式,只需在我们的 select 元素上添加以下规则即可:

select {
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
}

对于 IE 11 支持,您可以使用 [::-ms-expand][15].

select::-ms-expand { /* for IE 11 */
    display: none;
}

旧答案

不幸的是,使用纯 CSS 是不可能实现您所要求的。但是,您可以选择以下类似的解决方法。检查下面的实时代码。

div { 
  margin: 10px;
  padding: 10px; 
  border: 2px solid purple; 
  width: 200px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}
div > ul { display: none; }
div:hover > ul {display: block; background: #f9f9f9; border-top: 1px solid purple;}
div:hover > ul > li { padding: 5px; border-bottom: 1px solid #4f4f4f;}
div:hover > ul > li:hover { background: white;}
div:hover > ul > li:hover > a { color: red; }
<div>
  Select
  <ul>
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
  </ul>
</div>

EDIT

这是您不久前问过的问题。如何仅使用 CSS 而不使用 JavaScript 来设置 下拉菜单的样式? https://stackoverflow.com/questions/1895476/how-to-style-select-dropdown-with-css-only-without-javascript正如它所说,只有在 Chrome 中以及在某种程度上在 Firefox 中你才能实现你想要的。否则,不幸的是,没有跨浏览器的纯 CSS 解决方案来设置选择样式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅使用 CSS 来设置

  • 如何隐藏按钮元素的值?

    如何隐藏按钮的值 同时仍然显示按钮 我使用的颜色 透明 但这行不通 我想隐藏按钮的值 但不是所有按钮的值 我需要将 value 属性保留在按钮中 我只是不想让它被看见 如果您只想显示按钮而不显示任何文本 请将值设置为空字符串 然后手动设置按
  • rgb() 和 rgba() 不透明度有什么区别?

    我发现另一个关于 rgb 与 rgba 的问题非常相似 但它缺少关于使用的答案RGB 不透明度 我知道两者之间的区别 rgba 只是 rgb 但带有 alpha 不透明度 问题是 我使用带有不透明度值的 RGB 已经有几个月甚至几年了 它一
  • jQuery / CSS3 动画阴影效果

    所以这个问题可能会被否决 但我认为有人可能会提供帮助 我正在寻找的效果是蓝色块像气球一样上下盘旋 当块上 下移动时 阴影在其下方不断增大和缩小 关于如何编程的任何想法 或者有人知道可以完成的教程 插件吗 你可以使用 jQuery 来完成 或
  • 将一个 div 垂直居中对齐到另一个 div 中

    说我有 div class outer div class inner some stuff div div 内部 div 具有动态高度 它根据 div 内部的内容而变化 外部 div 只是一个容器 设置为具有窗口的高度 我想将其设置为使内
  • 使用 Javascript/jQuery 和 CSS 更改 PNG 颜色

    我有一个黑色的心 PNG http 1 bp blogspot com yq ZSKg39Tk TOvzVx9sC5I AAAAAAAAAb0 GcN4O Ciq3s s1600 black heart png我想用不同的颜色显示 如何使用
  • 允许指针(单击)事件穿过元素,同时保持滚动功能

    我的目标是拥有一个允许 下面要点击 交互的元素 滚动 众所周知 1 的解是pointer events none 这正如中所描述的单击 DIV 到底层元素 https stackoverflow com questions 3680429
  • 在引导程序中使用容器流体会导致水平滚动条

    这是一个简单的例子 div class container fluid div class row div class col lg 12 DUMMY CONTENT div div div Fiddle 演示 http jsfiddle
  • 具有固定高度、自动宽度并保持比例的图像

    我有一个反应灵敏的ul列表 其中每个li是 50 ul宽度 每一个li 我有一个图像 我想要固定的高度和 100 的宽度 保持图像的比例 例如通过缩放 请问我该怎么做 ul width 100 li width 50 float left
  • 当我“显示:无”一个 SVG 时,另一个(独立的)SVG 会以不同的方式呈现

    我已经伤透了几个小时了 这没有任何意义 我将遇到的问题减少到这个codepen https codepen io Octopous pen OJORpJQ https codepen io Octopous pen OJORpJQ HTML
  • 如何更改引导弹出窗口箭头边框颜色而不填充它?

    我想更改弹出箭头的边框颜色 当我应用边框颜色时 箭头本身填充了颜色 我只想为弹出框主体的箭头边框提供颜色 p Click on button to see Popover p a href class btn btn primary pop
  • 如何使用 CSS 将 div 置于表格中心?

    我正在尝试向我的网站之一添加幻灯片 整个页面布局在一个 HTML 表格中 我非常讨厌它并且没有选择 我想将我的幻灯片放在该特定列的中心 我的 CSS 如下所示 slideshow position relative slideshow IM
  • 转换 SVG 过滤器

    我正在尝试创建一个像 SVG 圆圈上的阴影这样的材质设计 我希望当您单击圆圈时 这个阴影能够以良好的过渡来增长 但目前我正在努力弄清楚是否可以为这种过渡设置动画 所以我希望有人能够提供帮助 我添加了一个到目前为止所得到的小例子 一个带有阴影
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • 如何排除CSS伪类选择器中的最后一个子元素

    我想为从 4 到 n 1 的子 div 应用特定样式 我能够从 4 到 n 执行此操作 但无法排除最后一个 div 这是 jsfiddlehttp jsfiddle net 8WLXX http jsfiddle net 8WLXX con
  • 在CSS中,有什么比使其成为块元素更好的强制元素换行的方法呢?

    我有一个 H3 标题 我想将其样式设置为具有特定的背景颜色 但不让元素的背景占据父元素的整个宽度 鉴于 H3 默认情况下是块元素 我的样式需要将该元素更改为内联块元素 或者只是内联内联元素 如下所示 h3 background color
  • Bootstrap 列中的标题高度相同

    我有这样的 html bootstrap css div class container div class row div class col xs 6 col div class block div class title strong
  • 等宽字体中的字体大小和字符宽度之间有什么依赖关系?

    等宽字体中的字体大小和字符宽度之间有什么依赖关系 在我的网络应用程序中 我使用 courier new 字体 我想知道 字符串的实际长度 以像素为单位 是多少 如果我知道CSS font size属性 它如何帮助我知道字符串的实际长度 谢谢
  • CSS 无法与 CodeIgniter 一起使用

    这是我的 CI 代码的一部分 class page extends CI Controller var Page public function construct parent construct this gt Page 1 this
  • 如何中和 CSS 定义而不覆盖

    有没有一种方法可以中和元素的 CSS 规则而不覆盖所有内容 例如 我正在使用 Twitter Bootstrap 它有许多预定义的 CSS 定义table 在某些地方 我不想要它们 对某些table元素 我想知道我是否可以做这样的事情 ta
  • 从 3.1 返回后加载 Rails 3(服务器)时出现问题

    Rails 完全菜鸟 我正在使用 Hartl 教程 到了第 4 章 CSS 4 1 2 一切看起来都很顺利 但遇到了一个问题 使页面上的文字看起来

随机推荐