Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在HTML5数据列表选项上应用CSS样式?_Css_Html_Option_Html Datalist - Fatal编程技术网

有没有办法在HTML5数据列表选项上应用CSS样式?

有没有办法在HTML5数据列表选项上应用CSS样式?,css,html,option,html-datalist,Css,Html,Option,Html Datalist,我想修改数据列表不同选项列表的显示方式。是否可以在其上应用一些CSS属性 <input list="languages" id="language_id"> <datalist id="languages"> <option value="html">HTML</option> <option value="java">Java</option> <option value="per

我想修改数据列表不同选项列表的显示方式。是否可以在其上应用一些CSS属性

<input list="languages" id="language_id">
<datalist id="languages">
      <option value="html">HTML</option>
      <option value="java">Java</option>
      <option value="perl">Perl</option>
      <option value="php">PHP</option>
      <option value="ruby-on-rails">Ruby on Rails</option>
</datalist>
但是它似乎不起作用。

与select元素一样,datalist元素在样式设计上几乎没有灵活性。如果你的问题是这样的,你就不能对任何建议的术语进行风格化

浏览器为这些元素定义自己的样式。

试试:

input[list]
{
  background: red;
}

您可以使用Jquery创建替代数据列表

$(文档).on('dblclick','input[list]',函数(事件){
event.preventDefault();
var str=$(this.val();
$('div[list='+$(this).attr('list'+']span')。每个(函数(k,obj){
if($(this.html().toLowerCase().indexOf(str.toLowerCase())<0){
$(this.hide();
}
})
$('div[list='+$(this.attr('list')+']')).toggle(100);
$(this.focus();
})
$(文档).on('blur','input[list]',函数(事件){
event.preventDefault();
var list=$(this.attr('list');
setTimeout(函数(){
$('div[list='+list+']')。隐藏(100);
}, 100);
})
$(文档)。在('click','div[list]span',函数(事件){
event.preventDefault();
var list=$(this.parent().attr('list');
var item=$(this.html();
$('input[list='+list+']').val(item);
$('div[list='+list+']')。隐藏(100);
})
$(文档).on('keyup','input[list]',函数(事件){
event.preventDefault();
var list=$(this.attr('list');
var divList=$('div[list='+$(this.attr('list')+']);
如果(event.which==27){//esc
$(divList).hide(200);
$(this.focus();
}
如果(event.which==13){//输入
如果($('div[list='+list+']span:visible')。长度==1){
var str=$('div[list='+list+']span:visible').html();
$('input[list='+list+']').val(str);
$('div[list='+list+']')。隐藏(100);
}
}
如果(event.which==9){//tab
$('div[list]')。hide();
}
否则{
$('div[list='+list+']')。show(100);
var str=$(this.val();
$('div[list='+$(this).attr('list'+']span')。each(function(){
if($(this.html().toLowerCase().indexOf(str.toLowerCase())<0){
$(此).hide(200);
}
否则{
元(此),show(200);;
}
})
}
})
*{
滚动条宽度:薄;
滚动条颜色:#BBB#EEE;
}
*:-webkit滚动条{
宽度:10px;
}
*:-webkit滚动条轨迹{
背景:#C0C3C6;
}
*:-webkit滚动条拇指{
背景色:#888;
边界半径:10px;
边框:3px实心#C0C3C6;
}
桌子{
宽度:400px;
保证金:0自动;
背景:#EEE;
字体系列:Arial;
填充:10px 30px;
边界半径:5px;
盒影:0 5px 5px-5px#000;
--边框:1px实心#ABC;
}
表td{
垫底:10px;
}
表h4{
文本对齐:居中;
颜色:#567;
边框:1px实心#567;
边界半径:3px;
填充:15px0;
}
输入{
填充:10px;
字号:1em;
宽度:计算(100%-20px);
边框:var(--边框);
边界半径:3px;
}
输入[列表]:焦点{
大纲:无;
}
输入[列表]+div[列表]{
显示:无;
位置:绝对位置;
宽度:100%;
最大高度:164像素;
溢出y:自动;
最大宽度:330px;
背景:#FFF;
边框:var(--边框);
边界顶部:无;
边界半径:0 0 5px 5px;
盒影:0 3px 3px-3px#333;
z指数:100;
}
输入[列表]+div[列表]范围{
显示:块;
填充:7px 5px 7px 20px;
颜色:#069;
文字装饰:无;
光标:指针;
}
输入[列表]+div[列表]范围:非(:最后一个子项){
边框底部:1px实心#EEE;
}
输入[列表]+div[列表]范围:悬停{
背景:rgba(100120140.2);
}
表2.说明{
字体大小:.9em;
颜色:#900;
}
表.说明b{
颜色:#123;
}

数据列表样式选择
程序设计语言
CSharp
德尔菲
颤振
JAVA
Java脚本
PHP
python
红宝石
液
Visual Basic
城市
雅典
北京
柏林
开罗
里斯本
伦敦
墨西哥城
莫斯科
纽约
里约热内卢
罗马
东京
说明:
双击输入:
显示/隐藏数据列表

按esc键输入:
隐藏数据列表(如果可见)

输入中的Onkeypress:
根据输入的字符串显示数据列表过滤

按enter键时:
Ff数据列表中只有1个元素,此值将加载到输入中

编辑:
在查看了其他几个库之后,我发现它提供了在react、样式和功能方面与数据列表交互的最简单方法

您可以通过以下方式访问样式:

.datalist-input  
下面是一个简单的代码片段:

const DataListWrapper = styled.div`
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 6px;

    .datalist-input {
        width: 50%;
        color: black;
    }
`;

const SomeComponent = () => {
    return (
        <DataListWrapper>
            <ReactDataList
                forcePoly
                placeholder="Search Something..."
                list="my_list"
                options={options}
                onOptionSelected={(e) => foo(e)}
            />
        </DataListWrapper>
    );
};

您可以使用CSS或样式化组件访问这些组件

.react-datalist  
.react-datalist-option
下面是一个使用样式化组件的简单代码段:

    const DataListWrapper = styled.div`
          display: flex;
          justify-content: center;
          align-items: center;
          margin-top: 6px;
    
          .datalist-input {
              width: 50%;
              color: black;
          }
    `;
    
    const SomeComponent = () => {
        return (
            <>
                <DataListWrapper>
                    <DataListInput
                        placeholder="Search Something..."
                        items={items}
                        onSelect={DoSomething}
                    />
                </DataListWrapper>
            </>
        );
    };
const DataListWrapper=styled.div`
显示器:flex;
证明内容:中心;
对齐项目:居中;
边缘顶部:6px;
.数据列表输入{
宽度:50%;
颜色:黑色;
}
`;
常量SomeComponent=()=>{
返回(
);
};
Releva
    const DataListWrapper = styled.div`
          display: flex;
          justify-content: center;
          align-items: center;
          margin-top: 6px;
    
          .datalist-input {
              width: 50%;
              color: black;
          }
    `;
    
    const SomeComponent = () => {
        return (
            <>
                <DataListWrapper>
                    <DataListInput
                        placeholder="Search Something..."
                        items={items}
                        onSelect={DoSomething}
                    />
                </DataListWrapper>
            </>
        );
    };